1

问候 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

stack表示视图将与文件夹中的相对视图堆叠

问题是,当我重置透视图时,我会在一个单独的位置(更准确地说,在右侧)获得视图,占据工作台的约 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>

这似乎有效,我查看了IPerspectiveFactory,并且createInitialLayout是空的。尽管如此,这仍然有效。

肃然,

弗拉德

4

1 回答 1

1

这有点奇怪。我之前试过你的方法,但对我也不起作用。相反,采用程序化方法。

使用您在您的方法中IPageLayout收到的,尝试创建一个:createInitialLayoutPerspectiveIPlaceholderFolderLayout

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$

我建议您static final String将 ID 设为常量。

于 2013-11-01T10:02:21.810 回答