禁用RCP应用程序中视图的关闭功能

时间:2017-07-18 12:42:29

标签: view swt eclipse-rcp eclipse-mars

我有一个具有不同观点的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构建的。

1 个答案:

答案 0 :(得分:0)

显然,我想要关闭的每个视图的setCloseable(false)方法都是正确答案。

我已经使用&#34启动应用程序;清理工作区"属性已激活,因此该功能可能有效。