White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

gwt-dnd使ってみた

http://code.google.com/p/gwt-dnd/
これのgwt1.3.3-dragdrop-2007-07-13.jarを使ってみた。

まあへたれなんでサンプルちょこっといじったくらいなのだけど。
日本語でこれについて解説してるのがなさそうなのでちょっとメモっとく。

環境

  • All In One Eclipse 3.01
  • GWT-1.3.3
  • Googlipse(バージョン忘れた)

入れ方

http://code.google.com/p/gwt-dnd/wiki/GettingStartedを参考に

  1. 新しくGWTのプロジェクトを作る(http://allabout.co.jp/internet/java/closeup/CU20060703A/index.htm参照)
  2. 作った「プロジェクト」の「プロパティ」を開いて、「Javaのビルドパス」の「ライブラリー」にgwt1.3.3-dragdrop-2007-07-13.jarを突っ込む
  3. 自分のプロジェクトのgwt.xml

って入れておく

軽くサンプルの解説

http://code.google.com/p/gwt-dnd/wiki/GettingStarted

DragController dragController = new PickupDragController(boundaryPanel, true);

ドラッグを制御するものを作る。二つ目の引数はこの領域でドロップを可能にするかどうか。trueでドロップできる。

DropController dropController = new AbsolutePositionDropController(targetPanel);

ドロップを制御するものを作る。
サンプルではAbsolutePanelを使っているのでAbsolutePosionDropControllerを使っている。他のWidgetなり使うなら他のDropController使うのかな?

dragController.registerDropController(dropController);

DragControllerにDropControllerを登録する。
ちなみにDrop対象が二つある場合は、

AbsolutePanel targetPanel2 = new AbsolutePanel();
DropController dropController2 = new AbsolutePositionDropController(targetPanel2);
dragController.registerDropController(dropController2);

っていう感じに、既存のDragControllerに登録してやればいいっぽいです。