Java 添加拖动&;在Eclipse视图上放置侦听器

Java 添加拖动&;在Eclipse视图上放置侦听器,java,eclipse,plugins,listener,Java,Eclipse,Plugins,Listener,我目前正在开发一个RCP插件,试图在Eclipse的PackageExplorer视图中添加一个DragAndDrop侦听器。 我所有的尝试都失败了,原因有几个: 我无法从我的工作区获得TreeViewer(我认为这是我需要的) 我可以获得“视图”,但不能在其上添加D&D侦听器 我的主要目的是能够知道用户何时将文件移动到另一个文件夹中,并获取由包资源管理器触发的拖放事件的源/目标文件夹 以下是我迄今为止尝试过的一个例子: for (IViewPart v : PlatformUI.get

我目前正在开发一个RCP插件,试图在Eclipse的PackageExplorer视图中添加一个DragAndDrop侦听器。 我所有的尝试都失败了,原因有几个:

  • 我无法从我的工作区获得TreeViewer(我认为这是我需要的)
  • 我可以获得“视图”,但不能在其上添加D&D侦听器
  • 我的主要目的是能够知道用户何时将文件移动到另一个文件夹中,并获取由包资源管理器触发的拖放事件的源/目标文件夹

    以下是我迄今为止尝试过的一个例子:

        for (IViewPart v : PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getViews()) {
            if (v.getTitle().equals("Project Explorer")){
                System.out.println("##Found PE");
                //Add listener here ?
            }
        }
    
    此代码显示“Found PE”字符串,但不允许添加侦听器

    精度:此代码在继承自AbstrachHandler的类中运行,而不是在UI线程中运行。如果你认为有必要的话,我会考虑移动代码。


    感谢阅读。

    使用重构参与者可能会更好,因为重构参与者为您提供了大量有关各地所做更改的信息。请参阅
    org.eclipse.ltk.core.refactoring.renameParticipants
    org.eclipse.ltk.core.refactoring.copyParticipants
    org.eclipse.ltk.core.refactoring.deleteAmpendents
    org.eclipse.ltk.core.refactoring.moveAttendents
    扩展点。在过去的两个小时里,我搜索了参与者是什么以及我应该如何使用他们,但我应该承认,我并不真正了解整个事情。特别是关于我必须提供的参数/参数类型,例如,对于扩展重构修改的类