2011-02-04 9 views
4

独自のプロジェクトファイル形式をサポートするEclipseプラグインを作成しようとしています。私の目標は、プロジェクトエクスプローラ(任意のタイプのファイル)にファイルをドラッグ&ドロップしてにタイプIのファイルをサポートし、独自ファイルの末尾にドラッグされるファイルの名前を追加することです。Eclipse内でのファイルのドラッグアンドドロップの処理パッケージエクスプローラー

今、私は管理可能な方法で既存のファイルからいくつかのデータを解析できるカスタムエディタを持っています。つまり、ファイルタイプに関連付けられたエディタがあり、特別なアイコンがその隣に表示されます。それが適切かどうかはわかりません。

拡張ポイント "org.eclipse.ui.dropActions"を使用しようとしていますが、DropActionDelegate(org.eclipse.ui.part.IDropActionDelegateを実装)を登録する方法がわかりませんファイルがプロジェクトエクスプローラ内にドロップされたときに呼び出されます。

誰もが考えている?私はDropActionDelegateで正しい軌道にいるのでしょうか?

答えて

2

あなたはIDropActionDelegateを実装する正しい軌道に乗っている:

class DropActionDelegate implements IDropActionDelegate { 

    @Override 
    public boolean run(Object source, Object target) { 
     String transferredData (String) target; // whatever type is needed 
     return true; // if drop successful 
    } 
} 

拡張ポイントorg.eclipse.ui.dropActionsの目的は、あなたが(プロジェクトエクスプローラのように)自分で定義されていませんビューにドロップ動作を提供することです。

あなたはこのようなdrop action extension登録:

<extension point="org.eclipse.ui.dropActions"> 
     <action 
      id="my_drop_action" 
      class="com.xyz.DropActionDelegate"> 
     </action> 
</extension> 

は、あなたのプラグインのコードであなたのエディタに十分なリスナーを添付することを忘れないでください:

class DragListener implements DragSourceListener { 

@Override 
public void dragStart(DragSourceEvent event) { 
} 

@Override 
public void dragSetData(DragSourceEvent event) { 
    PluginTransferData p; 
    p = new PluginTransferData(
     "my_drop_action", // must be id of registered drop action 
     "some_data" // may be of arbitrary type 
     ); 
    event.data = p; 
} 

@Override 
public void dragFinished(DragSourceEvent event) { 
} 

} 
+1

私は長い間、この特定のプロジェクトを放棄しました、あなたの答えに感謝します。それは完全に見え、従うのが簡単なので、私はあなたに疑念の恩恵を与えるつもりです! :) –

+0

私は、同様の要件を持つプロジェクトで作業していました。このように実装しました。どこかでメソッドを文書化することにしました。これは良い場所のようです: – mtsz

+0

[IDropActionDelegate documentation]へのリンクを更新しました。(http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc .isv%2Freference%2Fextension-points%2Forg_eclipse_ui_dropActions.html&resultof =%22IDropActionDelegate%22%20%22idropactiondeleg%22) –

関連する問題