2017-07-18 57 views
0

我有一个RCP应用程序,具有不同的视角。在一个角度来看,有被定义为这样的数个视图:在RCP应用程序中禁用关闭功能

p_layout.addStandaloneView(View1.ID, true, IPageLayout.LEFT, lf_ratioView1, p_layout.getEditorArea()); 
    p_layout.addStandaloneView(MyView.ID, false, IPageLayout.TOP, lf_ratioMyView, View1.ID); 
    final IFolderLayout lf_detailsFolder = p_layout.createFolder("Details", IPageLayout.RIGHT, lf_ratioDetailsView, View1.ID); 
    lf_detailsFolder.addPlaceholder(DetailsView.ID); 
    lf_detailsFolder.addPlaceholder(View2.ID); 
    lf_detailsFolder.addPlaceholder(View3.ID + ":*"); 
    lf_detailsFolder.addView(View4.ID); 
    p_layout.addStandaloneView(View 5.ID, true, IPageLayout.BOTTOM, lf_ratioView5, "Details"); 
    p_layout.addStandaloneView(View6.ID, false, IPageLayout.BOTTOM, lf_ratioView6, View5.ID); 

凡p_layout是IPageLayout对象。 通过按下不同的按钮,可以关闭和打开这些视图。

我想禁用FolderLayout中的视图的关闭选项:DetailsView,View2,View3和View 4,以便用户只能使用这些按钮关闭它们。

我试图通过将plugin.xml中的视图扩展点可关闭的属性设置为true,但它不起作用。

我也试图通过代码:

p_layout.getViewLayout(DetailsView.ID).setCloseable(false); 
    p_layout.getViewLayout(View2.ID).setCloseable(false); 
    p_layout.getViewLayout(View3.ID).setCloseable(false); 
    p_layout.getViewLayout(View24.ID).setCloseable(false); 

也没有工作。

RCP应用程序是从Eclipse Mars构建的。

+0

视图扩展点没有'可关闭'属性。如果您的意思是perspectiveExtension扩展点不使用它来引用已经在透视工厂中定义的视图,则会导致未定义的行为。 –

回答

0

显然,对于每个我不希望能够关闭的View的方法setCloseable(false)是正确的答案。

我已经启动了应用程序,并激活了“清理工作区”属性,以便该功能可以生效。