2

Windowsエクスプローラーからドラッグアンドドロップでファイルを開く必要があるEclipse RCPアプリケーションがあります。だから私はこれを実装しました:

public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {

    @Override
    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
        configurer.addEditorAreaTransfer(FileTransfer.getInstance());
        configurer.configureEditorAreaDropListener(editorDropListener);
        return new ApplicationWorkbenchWindowAdvisor(configurer);
    }
[...]
}

editorDropListenerタイプDropTargetAdapterであり、メソッドを実装しdrop()ます。

エクスプローラーからアプリケーションにファイルをドラッグすると、「Windows Unavailable」マウス アイコンが表示され、ドロップが機能しません。はeditorDropListener.drop()呼び出されません。

CTRLキーを押したままファイルをドラッグするとALT、「Windows コピー」マウス アイコンが表示されます。ドロップeditorDropListener.drop()は機能し、正常に呼び出されます。

どこで設定できますか、どの種類のドロップが許可されていますか?

4

3 に答える 3

0

このコードをリスナーで使用します。それが動作します。

                @Override
        public void dragEnter(final DropTargetEvent event) {

            if (event.detail == DND.DROP_DEFAULT) {
                if ((event.operations & DND.DROP_COPY) != 0) {
                    event.detail = DND.DROP_COPY;
                } else {
                    event.detail = DND.DROP_NONE;
                }
            }
        }
于 2016-03-23T07:54:38.213 に答える
0

エディター領域は MOVE DND 要求を受け入れないため、それよりも少し複雑です。

詳細はこちらをご覧くださいorg.eclipse.ui.internal.ide.EditorAreaDropAdapter

于 2012-04-21T09:36:24.423 に答える