【问题标题】:Eclipse: How to open an editor programmaticallyEclipse:如何以编程方式打开编辑器
【发布时间】:2013-11-18 00:34:52
【问题描述】:

我想知道如何以编程方式打开编辑器。我首先创建了适当的文件,然后我想为这种类型的文件打开编辑器。但是我无法打开编辑器。

...
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
PlcEditor editor = new PlcEditor(emfResource);
page.openEditor(editor, "test");
...

我已经有了以下解决方案(可行),但在这里我无法调用我的编辑器的构造函数:

....
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IEditorPart openEditor = IDE.openEditor(page, plcFile);
....

【问题讨论】:

    标签: java eclipse ide editor


    【解决方案1】:

    首先,您必须使用 org.eclipse.ui.editors 扩展点将编辑器定义为 Eclipse:

    <extension
         point="org.eclipse.ui.editors">
      <editor
            name="Sample Multi-page Editor"
            extensions="mpe"
            icon="icons/sample.gif"
            contributorClass="tested.editors.MultiPageEditorContributor"
            class="tested.editors.MultiPageEditor"
            id="tested.editors.MultiPageEditor">
      </editor>
    </extension>
    

    (以上是由提供的多页编辑器示例创建的)。

    然后您可以使用:

    IDE.openEditor(page, file, "tested.editors.MultiPageEditor");
    

    在IFile 上打开编辑器,指定你的编辑器ID,或者extension 指定的编辑器将是默认的,你可以使用

    IDE.openEditor(page, file);
    

    您还可以使用editor 的contentTypeBinding 子元素来指定内容类型,然后编辑器将处理。

    【讨论】:

    • 嗨,格雷格,我已经这样做了。我只是想知道如何使用 IDE.openEditor(..) 并为我的编辑器的构造函数提供参数。使用上面的一个,使用不带参数的构造函数: public PlcEditor() {...}
    • 不,你不能为构造函数指定参数。
    • 那么我自己创建编辑器(就像我在我的问题中所做的那样)然后以某种方式打开它呢?这可能吗?不能怀疑没有办法做到这一点。
    • 对不起,不,刚刚检查过,实现 IWorkbenchPage 的 org.eclipse.ui.internal.WorkbenchPage 不支持以前构建的编辑器。您可以使用纯 Eclipse e4 RCP 应用程序,您可以在其中以任何您喜欢的方式创建编辑器,但这是一个非常大的变化。
    • 好吧,还是谢谢..这太糟糕了,因为我现在很难在多页编辑器中建立一棵树
    猜你喜欢
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 2011-08-18
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    相关资源
    最近更新 更多