0
我正在使用ISelection來獲取選定的項目名稱。每次選擇項目時獲取選定的項目名稱
public static IProject getCurrentProject() {
IProject project = null;
ISelectionService selectionService = Workbench.getInstance().getActiveWorkbenchWindow().getSelectionService();
ISelection selection = selectionService.getSelection();
if(selection instanceof IStructuredSelection) {
Object element = ((IStructuredSelection)selection).getFirstElement();
if (element instanceof IResource) {
project= ((IResource)element).getProject();
}
else if (element instanceof IJavaElement) {
IJavaProject jProject= ((IJavaElement)element).getJavaProject();
project = jProject.getProject();
}
}
return project;
}
問題是該函數僅在第一次執行時才返回項目名稱。
當我在按鈕事件上調用它時,我得到一個空指針異常,看起來這個元素爲空。
我必須改變以獲得所選的項目名稱,我每次調用此函數?
我正在開發一個插件,這就是爲什麼我使用Workbench的原因,我嘗試在運行插件的位置獲取選定的項目名稱,我的函數返回選定的項目名稱,但僅在第一次執行時(當插件中的視圖加載)....我需要解決這個問題.... – 2014-10-09 08:05:50
工作臺是不可接受的核心Eclipse代碼之外的任何地方。這是一個內部課程,可以在沒有通知的情況下更改。 – 2014-10-09 08:24:17
可能您第一次運行代碼時,Package Explorer是活動部分,您將獲得選擇。在另一個運行中,其他運行是活動部分,它有一個空的選擇。每個部分都有自己獨立的選擇。 – 2014-10-09 08:31:02