2016-06-13 60 views
0

我正在開發一個實現導入文件嚮導的Eclipse插件項目,該項目專爲與自定義項目類型相關的文件而設計。嚮導的其中一個頁面是WizardNewFileCreationPage頁面,其中顯示了項目瀏覽器自動(據我所知)。該項目瀏覽器顯示工作區中可用的所有項目。但是,正如我所說的,由於該向導處理的文件對於一個特定的項目類型非常有用,因此我想限制該瀏覽器並僅顯示該自定義類型的項目。如何以編程方式定義項目瀏覽器在WizardNewFileCreationPage中將顯示的項目類型

我知道如何選擇一個自定義類型的項目:

List<IProject> projectList = new LinkedList<IProject>(); 
    try { 
    IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); 
    IProject[] projects = workspaceRoot.getProjects(); 
    for(int i = 0; i < projects.length; i++) { 
     IProject project = projects[i]; 
     if(project.hasNature("com.example.www.myNature")) { 
      projectList.add(project); 
     } 
    } 
    } 
    catch(CoreException ce) { 
    ce.printStackTrace(); 
    } 

在這個環節發現:Get a list of all java projects open in an Eclipse workspace

我假設WizardNewFileCreationPage類包括,在幕後,一個TreeViewer或類似的東西。無論如何,我如何過濾此嚮導頁面中項目資源管理器的內容? 我看了一下以下問題:How to programmatically change the selection within package explorer,但在我的情況下,activePart變量是

org.eclipse.ui.navigator.resources.ProjectExplorer 

類型不具有getTreeViewer()方法。它有一個createPartControl()方法:

public void createPartControl(Composite aParent); 

這對我想要的有用嗎?或者是使用擴展點的情況?

非常感謝您的回答。

回答

0

沒有辦法做到這一點。

儘管WizardNewFileCreationPage中顯示的樹與項目瀏覽器看起來很相似,但它並不基於該代碼。

用於顯示樹的代碼是org.eclipse.ui.internal.ide.misc.ContainerSelectionGroup,它本身包含在org.eclipse.ui.internal.ide.misc.ResourceAndContainerGroup中。這些類不支持太多的定製,並且在任何情況下都不能在WizardNewFileCreationPage之外訪問。

+0

謝謝Greg,我很害怕這個。我會等一會兒,但我懷疑這是你的答案,我會接受。 – zerzevul

相關問題