2014-03-27 83 views
0

我有我認爲永久在我的視角設置。 該視圖無法關閉,無法從Windows打開 - >顯示視圖如何從Windows中刪除視圖 - >顯示視圖列表?

我的結構從Windows刪除視圖 - >視圖列表。

我該怎麼做到這一點?

我試過你的解決方案,它正在做的事情,但它也從視角中刪除了視圖。下面是我遵循的步驟..

我在plugin.xml中添加了以下觀點

<view 
    allowMultiple="false" 
    category="org.view.ui.IDECategory" 
    class="org.view.ui.BannerInformationView"  
    id="org.view.ui.BannerInformationView" 
    name="BannerInfo" 
    restorable="true"> 
</view> 

其後我在我的觀點增加了這一觀點現在

public void defineLayout(IPageLayout layout) 
    { 
     layout.setEditorAreaVisible(true); 
     layout.addStandaloneView(BANNER_INFO_VIEW_ID, false, IPageLayout.TOP, 0.03f, layout.getEditorArea()); 
     IViewLayout viewLayout = layout.getViewLayout(BANNER_INFO_VIEW_ID); 
     viewLayout.setMoveable(false); 
    } 

我已經加入從顯示視圖菜單隱藏我的視圖名稱的活動

<extension point="org.eclipse.ui.activities"> 
    <activity 
      id="activity.ide" 
      name="ide"> 
    </activity> 
    <activityPatternBinding 
      activityId="activity.ide" 
      isEqualityPattern="true" 
      pattern="org.view.ui.IDECategory.pluginid/org.view.ui.BannerInformationView"> 
    </activityPatternBinding> 
    </extension> 

現在我的問題是,從窗口隱藏視圖條目 - >顯示視圖,它也隱藏了我的觀點。

我想隱藏顯示視圖中的唯一條目,以便用戶無法對其執行任何操作,但在我看來應始終可見。

+0

你可以隱藏'窗口>顯示視圖'完全使用一個活動,這樣你就不必過濾視圖ID。 –

+0

@ greg-449我的使用案例是,我插入了'BannerInformationView'來顯示一些信息,它應該以定義的視角存在,而不管其他視圖如何。但是對於其他視圖,用戶可以照常顯示或關閉視圖。 –

+0

您可以在'IViewLayout'上調用'setCloseable(false)'來停止視圖關閉。我看起來好像沒有辦法將活動篩選限制在Show View中。 –

回答

3

視圖列表按activities列表進行過濾。所以,你可以定義一個活動抑制的觀點:

<extension point="org.eclipse.ui.activities"> 
    <activity id="activity.id" name="Name"> 
    </activity> 
    <activityPatternBinding 
    activityId="activity.id" 
    isEqualityPattern="true" 
    pattern="plugin.id/view.id"> 
    </activityPatternBinding> 
</extension> 

注:pattern值是「貢獻插件ID /視圖id」,一個常見的錯誤就是離開了該插件的ID。

+0

它是否也從視角中刪除視圖? –

+0

如果您已經特別將視角添加到視角中,我認爲它仍然在視角中。 –

+0

我有修改的問題,你可以請看看。 –