2011-11-25 92 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节点中的视图

相关问题