0

自分のビューで貼り付け操作を実行して、Eclipse パッケージ エクスプローラーでCtrl+を使用して選択してクリップボードにコピーしたクラス ファイルを追加したいと考えています。C

私の(おそらく素朴な)試みは、ビューにドロップリスナーを追加することでしたが、残念ながら、ビューにフォーカスを合わせてCtrl+を押しても何も起こりません。V私はGUI、SWT、およびEclipseにまったく慣れていないので、非常に重要なものが欠けている可能性があります...

パッケージ エクスプローラーのクリップボードにアクセスするにはどうすればよいですか? または、クリップボード内のものを自分のビューに「ドロップ」するにはどうすればよいですか?

4

1 に答える 1

0

コマンドのハンドラー拡張機能を定義する必要があります(詳細については、プラットフォーム コマンド フレームワークorg.eclipse.ui.edit.pasteを確認してください)。

  <handler
        class="com.example.PasteHandler"
        commandId="org.eclipse.ui.edit.paste">
     <activeWhen>
        <with variable="activePartId">
           <equals value="com.example.MyView"></equals>
        </with>
     </activeWhen>
  </handler>

Clipboardクラスを使用してシステム クリップボードにアクセスできます。クリップボードの内容はさまざまなタイプである可能性があるため、期待しているタイプが特定の時点でサポートされているかどうかを確認する必要があります。のサブクラスはByteArrayTransfer、クリップボードの内容を適切な Java オブジェクトに変換するために使用されます。あなたの場合、最善の選択肢はJavaCoreResourceTransferを使用して Java 要素を使用および作成することだと思います。

Clipboard cb = new Clipboard(Display.getCurrent());
ResourceTransfer ft = ResourceTransfer.getInstance();
IResource[] classFiles = (IResource[]) cb.getContents(ft);
if (classFiles != null)
    for (IResource file : classFiles) {
        IJavaElement je = JavaCore.create(file);
        ...
    }
于 2011-12-11T19:36:26.877 に答える