【问题标题】:Eclipse plugin: New file wizard extending INewWizard, how to get selected project to create in itEclipse 插件:扩展 INewWizard 的新文件向导,如何在其中创建选定的项目
【发布时间】:2018-01-24 23:33:10
【问题描述】:

我目前正在编写一个 eclipse 插件,在其中,我有一个新项目创建和一个新文件创建向导。

在新项目向导中,我创建了它,因此获取它并在其中创建新文件没有问题。 (例如为您的项目创建 Main 类)

但是当我在我的新建文件向导中时,我真的不知道如何选择正确的项目,我需要一些帮助。 由于它是一个向导,我想避免需要打开的编辑器,而且由于它是一个新向导,它没有处理程序,所以我无法从那里得到它...

提前谢谢你, 诚挚的,

【问题讨论】:

  • 标准的新建文件和类似的向导在向导的第一页显示一个树,让您选择新文件的位置 - 这是您想要的吗?
  • 我不需要树,因为我想在根文件夹中创建它,但我会研究它。毕竟有这种可能也没有什么坏处,谢谢

标签: java eclipse-plugin wizard


【解决方案1】:

好吧,我换个角度看,现在感觉挺傻的。

当您初始化您的向导时,您会获得一个包含工作台和选择的 init 方法,因此您可以保留它。

private IWorkbench wb;
private IStructuredSelection sel;
@Override
public void init(IWorkbench workbench, IStructuredSelection selection) {
    wb = workbench;
    sel = selection;
}

然后,我之前在 Eclipse 网站上找到了一个代码 sn-p,链接在此处,我必须对其进行一些更改,它可以满足我的需求。

// Get selected resource (can get project from it)
// https://wiki.eclipse.org/FAQ_How_do_I_access_the_active_project%3F
private IResource extractSelection() {
    Object element = sel.getFirstElement();
    if (element instanceof IResource)
        return (IResource) element;
    if (!(element instanceof IAdaptable))
        return null;
    IAdaptable adaptable = (IAdaptable)element;
    Object adapter = adaptable.getAdapter(IResource.class);
    return (IResource) adapter;
}

有了这个,我可以在我的向导中得到我的项目

IProject project = extractSelection().getProject();

【讨论】:

  • 您不会总是得到选择。有时向导启动时没有选择任何内容。
猜你喜欢
  • 1970-01-01
  • 2014-04-12
  • 2012-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-18
  • 1970-01-01
  • 2012-01-26
相关资源
最近更新 更多