【问题标题】:eclipse plugin development --add predefined sub folders in a Project when selecting a wizardeclipse插件开发——选择向导时在项目中添加预定义的子文件夹
【发布时间】:2015-03-18 07:51:42
【问题描述】:

我是 Eclipse 插件开发的初学者。实际上我正在尝试在 NEW->OTHERS 中创建一个向导。说 NEW->OTHERS->XYZenterprise(类别)和其中的向导 XYZproject。我已经这样做了。

我正在苦苦挣扎的是,当我单击 XYZproject 时,会打开一个页面并询问项目名称,当您单击完成时,它会在工作区中添加具有指定名称的项目。我通过创建一个类并扩展它来实现这一点使用 BasicNewProjectResourceWizard。

像这样:- 导入 org.eclipse.ui.wizards.newresource.*; "公共类 NewWizard1 扩展 BasicNewProjectResourceWizard {"

到目前为止,我能够实现所需的目标。 我想要的是当我单击完成时,它会添加具有在工作区中指定的名称的项目,但也会添加一些具有预定义名称的文件夹作为项目中的子文件夹。

【问题讨论】:

    标签: java eclipse-plugin


    【解决方案1】:

    使用BasicNewProjectResourceWizard 的一个问题是performFinish 创建项目并在您有机会添加额外文件夹之前立即显示它。不幸的是,这并不容易更改,因此许多新向导不使用它。

    如果您确实使用此向导,您可以覆盖 performFinish 并添加在那里创建的文件夹:

    @Override
    public boolean performFinish()
    {
      if (!super.performFinish())
        return false;
    
      IProject newProject = getNewProject();
    
      IFolder newFolder = newProject.getFolder(new Path("relative path for folder"));
    
      newFolder.create(false, true, progress monitor);
    
      return true;
    }
    

    如果您要创建大量文件夹,您可能需要使用WorkspaceModifyOperationWorkspaceJob 来显示创建过程中的进度。

    【讨论】:

    • 谢谢 greg 它非常有效。但如果你能告诉我正确的方法,我将不胜感激,因为使用 BasicNewProjectResourceWizard 可能不方便。
    • 正确操作是漫长而复杂的,需要查看 BasicNewProjectResourceWizard 源代码。
    • 好的,我还有什么其他方法可以实现这一切。如果我不使用 BasicNewProjectResourceWizard
    • 不能直接调用类型Wizard的抽象方法performFinish()!?
    • 抱歉,是的,如果您只是扩展 Wizard,您不需要超级调用。这段代码基于扩展 BasicNewProjectResourceWizard 的东西,它完成了基本的项目创建。
    猜你喜欢
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多