现在有这么个需求, 开发的插件需要对既存的 project explorer 或者navigator 视图中的文件移动进行相关操作
比如, 我要将A工程下w/m.xml 移动到p/m.xml, 从w移动到p文件夹下时,需要做一个必要的check
即如果m.xml文件是打开状态,我需要弹出个自定义的对话框, 还有其他的逻辑操作。
问题是,
我怎么写代码去监听捕捉这个移动文件的事件,并且能够得到所移动的目标文件(可能是多个文件)
求提示~~~ 我的想法是扩展 project explorer 或者navigator 视图但是没有找到方法
------解决方案--------------------
这两个扩展点能满足你的要求: 拖 org.eclipse.ui.navigator.viewer/dragAssistant ; 放 org.eclipse.ui.navigator.navigatorContent/navigatorContent/dropAssistant。
怎么用可以看org.eclipse.ui.navigator.resources的源码
------解决方案--------------------
在你插件的Activator类的start(BundleContext context)方法中为Workspace注册资源变更监听【ResourcesPlugin.getWorkspace().addResourceChangeListener(IResourceChangeListener listener)】,监听程序内部通过【event.getDelta().accept(IResourceDeltaVisitor visitor)】处理,记得在Activator类的stop(BundleContext context)方法中移除监听
------解决方案--------------------
资源监听估计没办法实现你的需求, 这个只是发送事件让你处理,但并没有提供中断操作的机制。