如何继承类WizardResourceImportPage?

时间:2010-08-15 08:33:37

标签: java eclipse eclipse-rcp

我想为我的应用程序创建一个“新项目”向导。该向导的第一页只是org.eclipse.ui.dialogs.WizardNewProjectCreationPage的实例。我想在第二个向导页面中将一些系统文件导入当前项目。我发现org.eclipse.ui.dialogs.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 个答案:

答案 0 :(得分:1)

WizardResourceImportPage是抽象的,您可以扩展它并实现三个抽象方法。我要查看WizardFileSystemResourceImportPage1正在实施WizardResourceImportPage的工作,并研究该代码或将该类的源代码复制并粘贴到我自己的代码中。


修改

您上面的示例仅显示空白标签,因为WizardResourceImportPage使用WorkbenchLabelProvider,如果'content'对象("" in,则此标签提供商将返回File你的情况)不适应。

查看createFileSelectionGroup方法。也许它足以为LabelProvider对象实现您自己的File并调用selectionGroup.setTreeProviders(ITreeContentProvider, ILabelProvider)以使其与树中的File项一起使用。标准实现似乎只适用于(eclipse)文件资源。