今天在做插件開發的時,在工程視圖中需要判斷工程的類型。當工程關閉時候。eclipse以Project類對象管理工程。開始以爲Project .getNature(String natureid)可以解決問題。但是一直報工程未打開的錯誤。所以換一種思路。
1、通過Project.getWorkspace獲取 Workspace 然後再獲取NatureManager
2、通過 NatureManager.isNatureEnable(Project,Natureid)判斷工程的類型。
3、一下是具體代碼
//當工程已經關閉,需要通過workspace中的NatureManager判斷
if (element instanceof Project) {
Project project = (Project) element;
try {
Workspace workspace = (Workspace) project.getWorkspace();
if (workspace.getNatureManager().isNatureEnabled(project,
natureString)) {
return true;
} else {
return false;
}
} catch (Exception e) {
e.printStackTrace();
}
}
問題補充:代碼還有一個bug 就是當eclipse關閉,再打開時候,eclipse不會自動去加載.project文件。所以需要我們手動調用workspace.loadProjectDescription()方法加載.project 方法。才能判斷工程類型。