私もこれで周り台無しとしばらく前に、この小さな事を制作しました:私はFocusPanelに必要なものは何でも
http://alpha2.colorboxthing.appspot.com/#/
私は基本的に包まれました。私の場合、それはFlowPanelでした。私UiBinderサンプルメッセージで、そのプログラムから
:
私は(ちょうど上記FocusPanelを取得し、下に見display.getBoxFocus())フォーカスパネルを使用する方法
<g:FocusPanel ui:field="boxFocus" styleName="{style.boxFocus}">
<g:FlowPanel ui:field="boxPanel" styleName="{style.boxFocus}"></g:FlowPanel>
</g:FocusPanel>
:
display.getBoxFocus().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
}
});
display.getBoxFocus().addMouseDownHandler(new MouseDownHandler() {
@Override
public void onMouseDown(MouseDownEvent event) {
}
});
display.getBoxFocus().addMouseMoveHandler(new MouseMoveHandler() {
@Override
public void onMouseMove(MouseMoveEvent event) {
}
});
display.getBoxFocus().addMouseUpHandler(new MouseUpHandler() {
@Override
public void onMouseUp(MouseUpEvent event) {
}
});
// etc!
あなたの質問に答えるためにどのハンドラが「ドラッグ」のために使うべきかについて私はハンドラが私のためにそれをするのを見つけませんでした。代わりに私はMouseDownHandler
,MouseMoveHandler
、およびMouseUpHandler
を使用しました。
MouseDownHandler
を使用して、ユーザーのマウスがいつダウンしたかを決定するフラグを設定します。私はこれを行うので、MouseMoveHandler
が呼び出されたとき、それは何かをするべきかどうかを知っています。最後に、MouseUpHandler
を使用して、ユーザーがマウスを押し下げた場合にそのフラグを切り替えます。
あり(ユーザーがFocusPanelの外にマウスをドラッグした場合)、この方法では、いくつかの欠点でしたが、私のアプリケーションは、私はあまりそれを自分自身を心配していないだけで楽しいサイドプロジェクトだったのでしています。他のハンドラを追加して、それが大きな問題になる場合は修正してください。
GWT 2.6.0では 'mouseMove.remove()'は 'mouseMove.removeHandler();です(以前のバージョンについてはわかりません) – Aerus