【发布时间】: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 应用程序” ' 在可用模板页面上。