2017-07-18 32 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)是正確的答案。

我已經啓動了應用程序,並激活了「清理工作區」屬性,以便該功能可以生效。