2011-11-25 73 views
0

我創建一個視圖的RCP應用程序模板 完全佔據最初創建的項目我的角度來看類看起來像這樣如何使一個自定義視圖中的透視RCP應用程序中

import org.eclipse.ui.IPageLayout; 

public class Perspective implements IPerspectiveFactory { 

    public void createInitialLayout(IPageLayout layout) { 
     layout.setEditorAreaVisible(false); 
     layout.setFixed(true); 

    } 

} 

我後已經創建了一個新視圖,並添加到名爲ErrorView的org.eclipse.ui.views擴展中,並生成了該視圖的相應類。 我做了一個小的變化透視類

public class Perspective implements IPerspectiveFactory { 
    private URL u; 
     private HttpURLConnection huc; 
    public void createInitialLayout(IPageLayout layout) { 
     try{ 
      u= new URL("https://google.com/"); 
      huc = (HttpURLConnection)u.openConnection(); 
      huc.setRequestMethod("GET"); 
      huc.connect(); 
     if(huc.getResponseCode()==200){ 
     layout.setEditorAreaVisible(false); 
     layout.setFixed(true); 
     } 
     else{ 
      layout.addStandaloneView(View1.ID, true, IPageLayout.LEFT, 1.0f, layout.getEditorArea()); 
      layout.getViewLayout(View1.ID).setCloseable(false); 
      layout.setEditorAreaVisible(false); 
     } 
     } 
     catch (IOException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
       layout.addStandaloneView(View1.ID, true, IPageLayout.LEFT, 1.0f, layout.getEditorArea()); 
       layout.getViewLayout(View1.ID).setCloseable(false); 
       layout.setEditorAreaVisible(false); 
      } 
    } 
} 

肯定別人/ catch塊被執行

output

我怎樣才能讓ErrorView佔據整個角度,而不顯示基礎視圖或簡單地隱藏了基(默認視圖)完全。

+0

「IPerspectiveFactory」類僅執行一次,以在第一次打開透視圖時定義佈局。之後不會運行,因爲佈局已經知道了。你想要什麼行爲?這是一個啓動行爲(就像你重新啓動,編輯器打開,但谷歌不會給你的信息)? –

+0

@Paul Webster 更準確地說,我希望完全顯示單獨的erroview,而不是加載默認視圖(上圖中右側部分)的視角。是的,這是一個有點啓動行爲之前,一個視圖顯示我想顯示除默認視圖以外的任何視圖(通過使用eclipse rcp **視圖模板**創建)。希望你明白保羅,我準備好詳細說明問題 – srk

回答

2

您不能在IPerspectiveFactory中執行此操作,因爲該類的實例只能執行一次,以便在首次調用透視時定義佈局。之後,佈局已知並且實例不會重新運行。

但是在運行時,如果您可以確定您希望ErrorView支配您的視角,則可以使用org.eclipse.ui.IWorkbenchPage.setPartState(IWorkbenchPartReference, int)來最大化該部分。

編輯:API信息

更多信息請參見Plugging into the Workbench。如果您是視圖或編輯器站點,則可以從視圖或編輯器站點獲取IWorkbenchPage,或者從IWorkbenchWindow獲取IWorkbenchPage,如果您位於命令處理程序中,則可以從ExecutionEvent獲取該IWorkbenchPage。您也可以從org.eclipse.ui.PlatformUI上的靜態圖獲得有效的IWorkbenchWindow,但這是最不優選的方法。

+0

看起來像apt,但我不能實現IWorkbenchPage接口,在這個類中我應該實現這個接口,並且對這個setPartState方法的用法很少 – srk

1

視圖可以在您的Perspective類或plugin.xml中定義。打開你的MANIFEST.MF,切換到Extensions標籤並選擇org.eclipse.ui.perspectiveExtensions。以下是由配置定義的視角的視圖。刪除你的「默認視圖」。然後,您也可以刪除org.eclipse.ui.views節點中的視圖

相關問題