【问题标题】:View does not displayed视图不显示
【发布时间】:2017-05-21 16:16:48
【问题描述】:

我做了Hello World RCP应用,得到如下类结构:

ApplicationActionBarAdvisor.java 
ApplicationWorkbenchAdvisor.java
ApplicationWorkbenchWindowAdvisor.java
Application.java
Perspective.java

我还尝试向透视图添加一些视图。

将扩展点添加到我的 plugin.xml:

<extension point="org.eclipse.ui.views">
  <view
     class="first.rcp.application.MainView"
     id="first.rcp.application.MainView"
     name="name"
     restorable="true">
  </view>
</extension>

并创建了 MainView.java 类。

向 Perspective.createInitialLayout() 添加附加代码:

layout.addStandaloneView(MainView.ID, true, IPageLayout.LEFT, 1.0f, layout.getEditorArea());
IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
try {
   activePage.showView(MainView.ID);
} catch (PartInitException e) {
   e.printStackTrace();
}

但视图不显示。

我在Perspective.createInitialLayout()中设置断点,发现没有执行。

我尝试将 showPerspective() 方法添加到 ApplicationWorkbenchWindowAdvisor() 并将 ApplicationWorkbenchAdvisor 中的 PERSPECTIVE_ID 设置为我的透视图的 id。

但是 Perspective.createInitialLayout() 中的代码仍然没有执行。

应该从哪个点调用它?

Eclipse IDE 具有默认打开的视图数量的 Java 透视图。 IE。 Java 透视图的 createInitialLayout() 在 eclipse IDE 启动期间被调用。它是如何实施的?可能有一些配置文件?

我的观点声明是:

<extension point="org.eclipse.ui.perspectives">
  <perspective 
      name="RCP Perspective"
      class="first.rcp.application.Perspective"
      id="first.rcp.application.Perspective">
  </perspective>
</extension>

ApplicationWorkbenchAdvisor.getInitialWindowPerspectiveId()中的代码是:

public String getInitialWindowPerspectiveId() {
   return PERSPECTIVE_ID;
}

private static final String PERSPECTIVE_ID = "first.rcp.application.Perspective";

【问题讨论】:

  • 您在 plugin.xml 中的org.eclipse.ui.perspectives 声明是什么?您在应用程序工作台顾问中的getInitialWindowPerspectiveId 代码是什么?您是否使用 -clean 选项启动 Eclipse 以确保您的更改被拾取?
  • 还要注意在透视工厂中调用showView是不正确的,会报错。您在工厂中定义的视图将自动显示。
  • @greg-449 感谢您的回答。我删除了 showView 并使用 -clean 选项启动应用程序。但是视图仍然没有显示。我已经编辑了初始帖子并在 plugin.xml 和 getInitialPerspectiveId 代码中添加了透视声明。
  • 我的eclipse版本是Luna SR2 (4.4.2)。
  • 我看不出有什么明显的错误,但有很多小事情必须完全正确。 Eclipse 实际上可以生成一个示例 RCP 执行此操作 - 通过新建插件项目向导,确保将“您要创建富客户端应用程序”设置为“是”,然后选择“带有视图的 RCP 3.x 应用程序” ' 在可用模板页面上。

标签: eclipse-rcp perspective


【解决方案1】:

解决方案№1。

  1. 通过新建插件项目向导,确保“是否要创建富客户端应用程序”设置为是,确保 '生成一个激活器,一个控制插件生命周期' 被选中并在可用模板页面上选择“Hello RCP”。

  2. 转到 MANIFEST.MF,扩展。添加新的扩展 'org.eclipse.ui.views',添加适当的类。

  3. 在视图中添加新的扩展“org.eclipse.ui.perspectiveExtensions”。将视图 id 指定为之前创建的视图的 id。

解决方案№2。

通过新建插件项目向导,确保“是否要创建富客户端应用程序”设置为“是”,确保“生成激活器,控制插件生命周期的 Java 类”为检查并在可用模板页面上选择“带有视图的 RCP 应用程序”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多