Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java eclipse插件开发--在选择向导时在项目中添加预定义的子文件夹_Java_Eclipse Plugin - Fatal编程技术网

Java eclipse插件开发--在选择向导时在项目中添加预定义的子文件夹

Java eclipse插件开发--在选择向导时在项目中添加预定义的子文件夹,java,eclipse-plugin,Java,Eclipse Plugin,我是eclipse插件开发的初学者。实际上,我正试图在NEW->OTHERS中创建一个向导。说NEW->OTHERS->XYZenterprise(分类)和其中的向导XYZproject。我已经完成了 我正在努力解决的是,当我单击XYZproject时,会打开一个页面,它会询问项目名称,当你单击finish时,它会在工作区中添加具有指定名称的项目。我通过创建一个类并使用BasicNewProjectResourceWizard扩展它来实现这一点 像这样:- 导入org.eclipse.ui.wi

我是eclipse插件开发的初学者。实际上,我正试图在NEW->OTHERS中创建一个向导。说NEW->OTHERS->XYZenterprise(分类)和其中的向导XYZproject。我已经完成了

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

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

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

使用
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;
}

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

谢谢,greg它非常有效。但是,如果您能告诉我正确的方法,我将不胜感激,因为使用BasicNewProjectResourceWizard可能并不方便。正确地操作是非常必要的非常复杂,需要查看BasicNewProjectResourceWizard源代码。好的,还有什么其他方法可以实现这一切。如果不使用BasicNewProjectResourceWizard,则无法直接调用抽象方法performFinish()对于类型向导!很抱歉,如果您只是扩展向导,您不需要超级调用,那么是的。此代码基于扩展基本项目创建的基本EWProjectResourceWizard。