怎么样通过开发eclipseeclipse获取工程对象?
当从导航视图或jdt的package explorer视图选中一个元素,可以对其进行打开编辑器、打开视图、执行右键菜单中的action等等操作,这时在编写相应的编辑器、视图或action插件时,可能会需要获取到当前所选择的元素及其所在的工程对象。本文以执行action为例说明获取方法。
1.为action对象(实现IObjectActionDelegate)增加IStructuredSelection的私有属性selection,并实现selectionChanged方法如下:
public void selectionChanged(IAction action, ISelection selection) {
this.selection = (IStructuredSelection)selection;
processSelection();
}
2.实现processSelection()方法,从selection对象中获取所选择的元素,并从中获取工程对象,如下:
private void processSelection(){
Iterator it = selection.iterator();
if (it.hasNext()) {
Object next = it.next();
if (next instanceof Resource) {
proj = ((Resource) next).getProject();
} else if (next instanceof IJavaElement) {//若是一个IJavaElement对象,则先获取JavaProject对象。
proj = ((IJavaElement) next).getJavaProject().getProject();
}
}
3.获取IJavaProject()对象的方法。
若所选择的元素是一个IJavaElement对象,则可以直接获取到IJavaProject对象。
若所选择的元素只是一个Resource,则可先获取IProject对象,然后再调用:
IJavaProject javaPro = JavaCore.create(proj);
获取IJavaProject对象。
本文地址:http://www.45fan.com/dnjc/67480.html