eclipse插件开发(1)-获取工程对象

当从导航视图或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对象。

 

你可能感兴趣的:(eclipse插件开发(1)-获取工程对象)