【问题标题】:Override builtin perspective layout in Eclipse-RCP product覆盖 Eclipse-RCP 产品中的内置透视布局
【发布时间】:2013-01-24 20:05:11
【问题描述】:

是否可以在我的 Eclipse-RCP 产品中覆盖内置透视图的布局?

特别是,我希望添加一个自定义视图并更改 Debug 透视图的布局。我知道如何使用自定义透视图 (IPerspectiveFactory.createInitialLayout())。我希望我的自定义布局是永久的 - 在“重置透视图”命令中幸存下来。

【问题讨论】:

    标签: eclipse-rcp


    【解决方案1】:

    创建一个实现IPerspectiveFactory的类。

    将透视扩展添加到您的plugin.xml。这是我的一个。

       <extension point="org.eclipse.ui.perspectives">
           <perspective
               class="gov.bop.cobolsupport.perspectives.CobolPerspectiveFactory"
               icon="icons/ispf_editor.gif"
               id="gov.bop.cobolsupport.CobolPerspective"
               name="Cobol"/>     
       </extension>
    

    您的用户可以更改您的观点,并根据需要保存更改。这是 Eclipse 内置的。

    但是,当您扩展透视图时,Reset Perspective 命令会将透视图重置为您在 Perspectivefactory 类中定义的透视图。

    【讨论】:

    • 但是我不想在这里创建一个新的透视图,我想修改一个内置的透视图(Debug 透视图)。
    • 您可以尝试修改 Eclipse RCP 上的 Debug 透视图,在保存时给它一个不同的名称,并查看在构建时是否将新透视图传递给您的 RCP 产品。否则,您将不得不创建自己的视角。
    【解决方案2】:

    使用扩展点org.eclipse.ui.perspectiveExtensions 可以扩展视角。

    插件可以添加自己的操作集、视图和各种快捷方式 通过贡献于现有的观点 org.eclipse.ui.perspectiveExtensions 扩展点。

    要扩展默认调试透视图,请将以下代码粘贴到您的 plugin.xml

       <extension
             point="org.eclipse.ui.perspectiveExtensions">
          <perspectiveExtension
                targetID="org.eclipse.debug.ui.DebugPerspective">
             <view
                   ratio="0.5"
                   relative="org.eclipse.ui.views.TaskList"
                   relationship="right"
                   id="com.jens.customdebug.views.SampleView">
             </view>
          </perspectiveExtension>
       </extension>
    

    您必须定义一个相对视图(在我的例子中是名为 org.eclipse.ui.views.TaskList 的任务视图)和您自己的视图的 id(在我的例子中是 com.jens.customdebug.views.SampleView

    来源:

    要了解如何使用此扩展点的更多信息,请查看here。 对于这个扩展点的配置标记你也可以看看this page.

    【讨论】:

    • 谢谢,这很有用。但是,这似乎允许将视图添加到现有透视图,但不能重新定义默认布局,如createInitialLayout()
    • 好的,但也许你很幸运能够覆盖 org.eclipse.debug.internal.ui.DebugPerspectiveFactory 类?您必须在您的 plugin.xml 中添加依赖项 org.eclipse.debug.ui 才能访问此类。 (这是我最后的想法)
    猜你喜欢
    • 2015-07-15
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 2021-11-24
    • 2011-07-17
    • 2012-03-10
    相关资源
    最近更新 更多