2016-12-14 62 views
0

我正在開發一個Eclipse插件,在工作中需要創建一個自定義導入功能,將現有項目添加到項目資源管理器樹中,而不需要將文件複製到工作區中。理想情況下,用戶可以通過自定義導入嚮導向項目目錄提供項目目錄,從而將現有項目導入到Project Explorer樹中。我可以使用jface AbstractTreeViewer訪問Project Explorer樹,但是我很難用'add()'函數添加它。具體而言,我不確定需要提供哪些信息到'parentElementOrTreePath'和'childElement'字段中。Eclipse:以編程方式添加到項目資源管理器樹查看器

我目前正在使用的代碼是這樣的:

final IWorkbenchPart activePart = getActivePart(); 
    if (activePart != null && activePart instanceof IPackagesViewPart) { 
     AbstractTreeViewer tree = ((IPackagesViewPart) activePart).getTreeViewer(); 
     tree.add(parentElementOrTreePath, childElement); 
    } 
+0

這樣的代碼只是不起作用。樹查看器將使用內容提供者,許多操作將刷新提供者的視圖,從而失去您所做的任何更改。此外,IPackagesViewPart是Packages Explorer視圖,而不是Project Explorer視圖。 –

+0

哦,我的錯誤,我把他們弄混了,但想法是一樣的。在Eclipse中是不可能的? –

回答

0

代碼一樣,只是沒有去上班。樹查看器將使用內容提供者,許多操作將刷新提供者的視圖,從而失去您所做的任何更改。另外IPackagesViewPart是Packages Explorer視圖,而不是Project Explorer視圖。

您只能使用Eclipse提供的適當接口和擴展點來添加類似的視圖。你不能只嘗試和破解東西。您不會將不在工作區中的東西顯示在Packages/Project視圖中 - 這些視圖確實需要適當的工作區對象。

可以使用IFolder.createLinkIFile.createLink方法創建到工作區外的對象的鏈接。

+0

啊我以前嘗試過使用createLink但無濟於事,我會嘗試從那裏重新開始。我非常感謝答案,因爲我不能100%確定Eclipse能做什麼/不能做什麼。 –

相關問題