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