4

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

現在、既存のファイルからいくつかのデータを管理しやすい方法で解析できるカスタム エディターがあります。これは、そのファイル タイプに関連付けられたエディタがあり、その横に特別なアイコンが表示されることを意味します。それが関連しているかどうかはわかりません。

拡張ポイント「org.eclipse.ui.dropActions」を使用しようとしていますが、DropActionDelegate (org.eclipse.ui.part.IDropActionDelegate を実装) を登録して、ファイルがProject Explorer の私のタイプの 1 つにドロップされます。

誰にもアイデアはありますか?私は DropActionDelegate で正しい軌道に乗っていますか?

4

1 に答える 1

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自分で定義していないビュー (Project Explorer など) にドロップ動作を提供することです。

次のようにドロップ アクション拡張を登録します。

<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) {
}

}
于 2012-03-12T16:12:25.403 に答える