我现在想做这样的1个功能,在eclipse的工具条上加1个按钮,如上图这2个按钮,点击按钮可以获取在工作空间中所选择文件的一些信息,比如文件所在的路径,Action实现了IWorkbenchWindowActionDelegate,当点击按钮时获取的selection是TreeSelection,FirstElement是PackageFragmentRoot,不知道这个怎么用
如何从TreeSelection来获取到选择的文件呢
plugin.xml配置的是 <extension point="org.eclipse.ui.actionSets">
或者有其他的方法能指点下么,呵呵,小白,刚接触插件
再多问一个,如果是<extension point="org.eclipse.ui.popupMenus">
可以实现在工具条上添加按钮么,试了半天总是不成,显示不出来
代码如下:
public class DownLoadAction implements IWorkbenchWindowActionDelegate {
private ISelection selection;
public void run(IAction action) {
TreeSelection tSelection = (TreeSelection)selection;
Object obj = tSelection.getFirstElement();
}
public void selectionChanged(IAction action, ISelection selection) {
this.selection = selection;
}
public void dispose() {}
public void init(IWorkbenchWindow window) {}
}
------最佳解决方案--------------------
我不熟悉写这个插件。 但是我看到过,也用过 同行写的插件。 那个源码, 我下到过。 csdn资源库中找找? 就是选中一个文件夹, 打开选中目录 这么一个插件
------其他解决方案--------------------
网上有很多人家写好的插件,可以参考一下。
------其他解决方案--------------------
eclipse 插件 百度
------其他解决方案--------------------
eclipse的插件开发。网上找找看。
------其他解决方案--------------------
来这提问之前我肯定是查找过的,但是都没什么资料,popmenu的自己已经试出来了,这个没头绪啊。。
------其他解决方案--------------------
终于是找到解决办法了,不容易啊
TreeSelection tSelection = (TreeSelection) selection;
TreePath[] paths = tSelection.getPaths();
for (int i = 0; i < paths.length; i++) {
TreePath path = paths[i];
IResource resource = null;
Object segment = path.getLastSegment();
if ((segment instanceof IResource))
resource = (IResource) segment;
else if ((segment instanceof IJavaElement)) {
resource = ((IJavaElement) segment).getResource();
}
if (resource != null) {
String location = resource.getLocation().toOSString();
File file = new File(location);
}
}
}
------其他解决方案--------------------
楼主不错啊。。