Eclipse RCP - 相对视野透视扩展不起作用

时间:2013-11-01 09:43:50

标签: java eclipse-plugin eclipse-rcp

Graoverings stackoverflownians,

目前正在开发Eclipse RCP应用程序。

我正在尝试在重置透视图时使视图显示在正确的位置。

在我的plugin.xml中:

<perspectiveExtension
            targetID="the.perspective.id">
         <view
               id="the.first.view.id"
               relationship="stack"
               relative="org.eclipse.ui.navigator.ProjectExplorer"
               visible="false">
         </view>
         <view
               id="the.second.view.id"
               relationship="left"
               relative="org.eclipse.ui.navigator.ProjectExplorer"
               visible="true">
         </view>
      </perspectiveExtension>

在视图扩展点中声明第一个和第二个视图的位置。

根据eclipse.org

  

堆栈表示视图将与文件夹中的相对视图堆叠在一起

问题在于,当我重置透视图时,我将视图放在一个单独的位置(更确切地说,在右边)占据工作台的约50%。

我的plugin.xml中是否应再次声明ProjectExplorer视图,以便stack字段的relative值有效?

编辑:我查看了另一个插件项目

<view
              id="org.eclipse.search.ui.views.SearchView"
              minimized="false"
              relationship="stack"
              relative="dreisoft.tresos.launcher2.api.views.ErrorLog"
              visible="false">
        </view>

这似乎有效,我查看IPerspectiveFactorycreateInitialLayout为空。尽管如此,这仍然有效。

尊敬你的,

维拉德

1 个答案:

答案 0 :(得分:1)

这有点奇怪。我前一段时间尝试过你的方法,但对我来说也没用。相反,采取一种程序化的方法。

使用您在IPageLayout createInitialLayout方法中收到的Perspective,尝试创建IPlaceholderFolderLayout

final IPlaceholderFolderLayout folder = layout.createPlaceholderFolder("main.editor.area", IPageLayout.TOP, 0.8f, layout.getEditorArea()); //$NON-NLS-1$

您可以借助这些参数将每个视图放在该文件夹中。 然后将您的视图添加到该文件夹​​:

folder.addPlaceholder("your.view.ID" + ":*"); //$NON-NLS-1$

我建议您制作ID的static final String常量。