1. 程式人生 > >eclipse外掛開發(1)-獲取工程物件

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物件。