Eclipse RCP - 自定义透视图,激活时“引用的部分尚不存在:”

时间:2017-05-09 23:21:44

标签: java eclipse eclipse-plugin eclipse-rcp perspective

我正在开发一个使用自定义透视的eclipse RCP应用程序。这个自定义透视图列出了一些基本元素,比如Package Explorer,Text Editor,以及我自己的两个自定义视图部分(彼此相似,并排放在窗口的下半部分。)< / p>

当我激活透视图时,会发生以下错误:

    !ENTRY org.eclipse.ui 4 4 2017-05-08 20:15:29.777
    !MESSAGE Referenced part does not exist yet: {myView2's view id}.
    ContributedPartRenderer$2 {}

这是我的透视课

    public class myPerspective implements IPerspectiveFactory {
public void createInitialLayout(IPageLayout layout) {
    IFolderLayout bottom = layout.createFolder("bottom", IPageLayout.BOTTOM, (float) 0.5, myView2.VIEW_ID);
    IFolderLayout top = layout.createFolder("top", IPageLayout.TOP, (float) 0.67, IPageLayout.ID_EDITOR_AREA);

    bottom.addView(myView1.VIEW_ID);
    bottom.addView(myView2.VIEW_ID);
    top.addView(IPageLayout.ID_EDITOR_AREA);

      }
    }

这是我的plugin.xml(仅与透视相关的部分)。

      <extension
     point="org.eclipse.ui.perspectives">
     <perspective
        class="perspective.myPerspective"
        id="perspective.myPerspective"
        name="My Perspective"/>
       </extension>

    <extension
     point="org.eclipse.ui.perspectiveExtensions">
  <perspectiveExtension targetID="perspective.myPerspective">
     <view
           id="myView1.VIEW_ID"
           relationship="left"
           relative="bottom"/>
     <view
           id="myView2.VIEW_ID"
           relationship="right"
           relative="bottom"/>
  </perspectiveExtension>

当我创建IFolderLayout'bottom'时,我可以将myView1.VIEW_ID作为参数,错误会说它尚未创建,而不是myView2尚未创建。无论哪个视图类的ID作为参数放入,在透视图打开时出错,但另一个工作正常。

如何解决这个问题,以便两个视图都正常运行,并在自定义透视图中创建和显示?

1 个答案:

答案 0 :(得分:0)

您的VIEW_ID课程中myView1的值似乎不正确。在plugin.xml中给出视图声明,它应该是:

public static final String VIEW_ID = "myView1.VIEW_ID";