當工程關閉時候如何判斷工程類型

      今天在做插件開發的時,在工程視圖中需要判斷工程的類型。當工程關閉時候。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();
workspace.loadProjectDescription(project.getLocation().append(".project"));
				if (workspace.getNatureManager().isNatureEnabled(project,
						natureString)) {
					return true;
				} else {
					return false;
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}

 問題補充:代碼還有一個bug 就是當eclipse關閉,再打開時候,eclipse不會自動去加載.project文件。所以需要我們手動調用workspace.loadProjectDescription()方法加載.project 方法。才能判斷工程類型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章