2010-08-15 72 views
1

我想爲我的應用程序創建一個「新項目」嚮導。此嚮導的第一頁僅是org.eclipse.ui.dialogs.WizardNewProjectCreationPage的實例。我想在第二個嚮導頁面中將一些系統文件導入當前項目。我發現org.eclipse.ui.dialogs.WizardResourceImportPage是非常接近我的thougts,但我不能找出如何繼承這個類,併產生一個簡單的文件導入頁面。如何繼承類WizardResourceImportPage?

任何人都可以提供一個這樣做的例子嗎?謝謝!

我也試過像下面那樣測試它(也覆蓋getFileProvider),但文件樹只顯示覆選框但沒有文件名。

protected ITreeContentProvider getFolderProvider() 
{ 
    // TODO Auto-generated method stub 
    return new WorkbenchContentProvider() 
    { 
    public Object[] getChildren(Object o) 
    { 
     if (o instanceof java.io.File) 
     return FileSystemStructureProvider.INSTANCE.getChildren(o).toArray(); 
     else 
     return new Object[]{new java.io.File("C:\\temp")}; 
    } 

    public boolean hasChildren(Object o) 
    { 
     if (o instanceof java.io.File) 
     return FileSystemStructureProvider.INSTANCE.isFolder(o); 
     else 
     return false; 
    } 

    }; 
} 

回答

1

WizardResourceImportPage是抽象的,您可以擴展它並實現三個抽象方法。我想看看WizardFileSystemResourceImportPage1這是WizardResourceImportPage的工作實現,並研究該代碼或從該類複製和粘貼源到我自己的。


編輯

你是例如從上面只顯示空白標籤,因爲WizardResourceImportPage使用WorkbenchLabelProvider而且這個標籤供應商將返回""如果「內容」對象(File你的情況)不適應性強。

看看createFileSelectionGroup方法。也許這足以實現您自己的LabelProvider對象File對象並呼叫selectionGroup.setTreeProviders(ITreeContentProvider, ILabelProvider)使其與樹中的File項目一起工作。標準實現似乎只適用於(eclipse)文件資源。

+0

謝謝,但我認爲WizardFileSystemResourceImportPage1有點太複雜,並使用一些我不能直接使用的內部類。我更喜歡簡單的一個。 – solotim 2010-08-15 09:03:38

+0

只要我調用selectionGroup的方法,eclipse就會這樣說:阻止訪問:由於對所需庫C:\ Programs \ eclipse \ plugins \ org.eclipse.ui.ide_3的限制,ResourceTreeAndListGroup類型的方法setRoot(Object)不可訪問。 6.0.I20100601-0800.jar – solotim 2010-08-15 14:03:47

+0

是的,這是內部類的一般問題。這就是爲什麼我通常將內部類的代碼複製到我自己的項目中的原因...... – 2010-08-15 14:17:48