为现有Gui添加新视角

时间:2014-07-10 14:29:09

标签: eclipse user-interface plugins view perspective

所以我一直在使用具有不同视图的单一视角的GUI。但现在我们需要另一种具有不同观点的新视角。我一直在寻找有关添加视角的在线示例和教程,但没有找到我正在寻找的内容。

附图显示了我的GUI。在"示例菜单"我想要一个菜单​​项来打开我的新视角。

我尝试解决这个问题的方法是在原始视图旁添加另一个视角,但没有任何反应。 我的下一个想法是从第一个视角的菜单中添加第二个视角的开头作为动作。但我不知道如何去做或者根本不是正确的做法。插件的片段如下所示。

Perspective with different views

  <perspective
        name="RCP Perspective"
        class="chipcoach.Perspective"
        id="ChipCoach.perspective">
  </perspective>

  <perspective
        class="chipcoach.Perspective2"
        id="ChipCoach.perspective2"
        name="PopupPerspective">
  </perspective>

<extension
     point="org.eclipse.ui.perspectiveExtensions">
  <perspectiveExtension
        targetID="ChipCoach.perspective">
  </perspectiveExtension>
  <perspectiveExtension
        targetID="ChipCoach.perspective2">
  </perspectiveExtension>
</extension>

   <extension
     point="org.eclipse.ui.actionSets">
  <actionSet
        id="ChipCoach.actionSet"
        label="Sample Action Set"
        visible="true">
     <menu
           id="sampleMenu"
           label="Sample &amp;Menu">
        <separator
              name="sampleGroup">
        </separator>
     </menu>
     <action
           class="chipcoach.actions.SampleAction"
           icon="icons/sample.gif"
           id="chipcoach.actions.SampleAction"
           label="&amp;Sample Action"
           menubarPath="sampleMenu/sampleGroup"
           toolbarPath="sampleGroup"
           tooltip="Hello, Eclipse world">
     </action>
     <action
           class="chipcoach.actions.OpenPerspective1"
           icon="icons/sample.gif"
           id="chipcoach.actions.openPerspective1"
           label="&amp;Open Perspective"
           menubarPath="sampleMenu/sampleGroup"
           style="push"
           toolbarPath="sampleGroup">
     </action>
  </actionSet>

1 个答案:

答案 0 :(得分:0)

您需要添加菜单项以打开新透视图。这个代码类似于Eclipse ShowPerspectiveHandler

IWorkbench workbench = PlatformUI.getWorkbench();

IWorkbenchWindow activeWorkbenchWindow = workbench.getActiveWorkbenchWindow();

IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();

IPerspectiveDescriptor desc = workbench.getPerspectiveRegistry().findPerspectiveWithId(perspectiveId);

activePage.setPerspective(desc);

(为清楚起见,省略了许多错误检查)