TreeViewer
tableViewer からテキストをドラッグし、にドロップして、ドラッグしたテキストを選択したツリー項目に入力したいと考えています。ドラッグ元とドロップ先を設定します。最初に遭遇した問題は、 の項目がDropTargetEvent
であるnull
ため、どのツリー項目のテキストがドロップされたのかわかりません。
ドロップ ターゲットからのドロップ メソッドのコードは次のとおりです。
public void drop(DropTargetEvent event) {
System.out.println("Droped" + event);
if (event.data == null) {
event.detail = DND.DROP_NONE;
}
//TreeItem item = (TreeItem) event.item;
Tree xmlTree = xmlVisualEditor.getTree(); //to get the target tree
Point selectedPoint = new Point(event.x, event.y);
TreeItem item = xmlTree.getItem(selectedPoint); #<----- Null pointer exception
if (TextTransfer.getInstance().isSupportedType(event.currentDataType)) {
String dropedData = (String) event.data;
System.out.println("Dropped Data:" + dropedData);
item.setText(dropedData);
}
}
ドロップ ターゲット イベントの内容を出力すると、次のように表示されます。
DropTargetEvent{DropTarget {} time=141201730 data=生徒名 x=861 y=393 item=null operations=3 operation=1 feedback=1 dataTypes={ 13 1 } currentDataType=13}
ご覧のとおり、商品はnull
です。
次に行うことについて、私はする必要があります
ドロップされたツリーアイテムを取得します。
ドロップされたツリー項目の 1 つの列にドラッグされたテキストを入力します
解決策へのアプローチに関するコメントは大歓迎です。どうもありがとう。