当前位置: 首页 > 知识库问答 >
问题:

e4 RCP:在新窗口中以编程方式打开零件

华星剑
2023-03-14

我想在新的mWindows中以编程方式打开MPart。类似于我在现有窗口的某个地方创建partstack中的零件,然后用鼠标手动将其拖走。

因此,一种方法是创建包含此部分的未渲染窗口。一旦显示出来,我们就可以将其设置为正在渲染。但是:一旦我们关上这扇窗户,我们就不能把它带回来?!

共有1个答案

卫甫
2023-03-14

这种方法对我有效:

  • 在e4xmi中定义一个设置为不渲染的空窗口
  • 一旦我们想要显示零件,我们就创建它(如果它还没有打开)并将其添加到窗口
    MUIElement window = modelService.find(myWindowId, app);
    MPart part = (MPart) modelService.find(myPartId, application);
    if (part == null) {
        part = MBasicFactory.INSTANCE.createPart();
        part.setLabel(ProcedureFlowChartPart.PART_TITLE);
        part.setContributionURI("bundleclass://MyPartPath");
        part.setElementId(myPartId);
        ((MWindow) window).getChildren().add(part);
    }
    partService.showPart(part, PartState.ACTIVATE);
    window.setToBeRendered(true);
    modelService.bringToTop(window);
 类似资料:
  • 我尝试了各种方法来打开在.js文件中导入的.ftl文件中的新窗口中的链接,但都不成功。 下面是.js中的代码

  • 查看这段代码,它们展示了一种在登录后显示新窗口的方法。当用户名和密码是正确的,它打开新的对话框。我想要一个按钮点击打开新的对话框,而不检查用户名和密码。

  • 编辑4: 编辑2 上面的代码为父窗口或子窗口提供了相同的标题。

  • 问题内容: 我正在尝试“强制” Safari或IE7 使用新标签 打开新页面。 以编程方式,我的意思是: 问题答案: 您不能直接控制它,因为它是由Internet Explorer用户控制的选项。 使用Window.open用不同的窗口名称打开页面会像一个弹出窗口,一个新的浏览器窗口中打开 或 在新标签页中打开,如果用户配置的浏览器这样做。

  • 我正在尝试为具有特定扩展名的文件在“打开”菜单中添加eclipse编辑器。我在org.eclipse.ui.editors扩展点中使用launcher实现了这一点,在launcher中我使用了“open editor”方法,它需要传递编辑器ID。有没有什么方法可以让我们以编程方式打开一个编辑器,而不需要传递编辑器ID呢?我们可以通过传递实现编辑器的类的实例以编程方式打开编辑器吗?..

  • 问题内容: 当用户单击它时,如何在新窗口中将其设置为一定的宽度和高度?在firefox中,当前代码只会打开一个新标签页(而不是一个新窗口) 问题答案: 要在包含尺寸和所有内容的新窗口中打开,您将需要调用JavaScript函数,因为target =“ _ blank”不允许您调整尺寸。一个例子是: 希望这对您有所帮助。