`

RCP实用技巧

阅读更多

1.最大化窗口:
在ApplicationWorkbenchWindowAdvisor中,书写如下方法:

Java代码 复制代码
  1. public void postWindowCreate() {   
  2.     super.postWindowCreate();   
  3.     getWindowConfigurer().getWindow().getShell().setMaximized(true);   
  4.        
  5. }  
	public void postWindowCreate() {
		super.postWindowCreate();
		getWindowConfigurer().getWindow().getShell().setMaximized(true);
		
	}


2.设置view的tab显示风格:
在ApplicationWorkbenchAdvisor中添加如下代码

Java代码 复制代码
  1. @Override  
  2.     public void initialize(IWorkbenchConfigurer configurer) {   
  3.         // TODO Auto-generated method stub   
  4.         super.initialize(configurer);   
  5.         PlatformUI.getPreferenceStore().setValue(   
  6.                 IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS,   
  7.                 false);   
  8.     }  
@Override
	public void initialize(IWorkbenchConfigurer configurer) {
		// TODO Auto-generated method stub
		super.initialize(configurer);
		PlatformUI.getPreferenceStore().setValue(
  				IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS,
				false);
	}


3.设置view的显示要求(可移动?关闭?最大化?最小化?)
一种方式是通过org.eclipse.ui.perspectiveExtensions配置view来方便的设置各个属性,我有专门的一篇文章介绍。另一种方式是在perspective的createInitialLayout方法中,采用如下语句配置:

Java代码 复制代码
  1. layout.getViewLayout(View1.ID).setCloseable(false);   
  2. //设置View1的关闭按钮不可见   
  3. layout.getViewLayout(View1).setMoveable(false);   
  4. //设置View1的不可移动   
  5. layout.setFixed(true);   
  6. //设置该perspective中的所有view,其大小不可变动,无最大最小按钮  
layout.getViewLayout(View1.ID).setCloseable(false);
//设置View1的关闭按钮不可见
layout.getViewLayout(View1).setMoveable(false);
//设置View1的不可移动
layout.setFixed(true);
//设置该perspective中的所有view,其大小不可变动,无最大最小按钮


4.在其他view中获取某个view的引用

Java代码 复制代码
  1. PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView("viewId");  
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView("viewId");



5.关闭一个当前的perspective打开一个新的perspective

Java代码 复制代码
  1. IWorkbench w=PlatformUI.getWorkbench();   
  2.   
  3. ActionFactory.IWorkbenchAction closePerspectiveAction   
  4. = ActionFactory.CLOSE_PERSPECTIVE.create(w.getActiveWorkbenchWindow());   
  5. closePerspectiveAction.run();   
  6.   
  7. try ...{   
  8. PlatformUI.getWorkbench().showPerspective("com.ibm.demo.saic.ui.views.NextPerspective",   
  9. w.getActiveWorkbenchWindow());   
  10. catch (WorkbenchException e) ...{   
  11. e.printStackTrace();   
  12. }  
IWorkbench w=PlatformUI.getWorkbench();

ActionFactory.IWorkbenchAction closePerspectiveAction
= ActionFactory.CLOSE_PERSPECTIVE.create(w.getActiveWorkbenchWindow());
closePerspectiveAction.run();

try ...{
PlatformUI.getWorkbench().showPerspective("com.ibm.demo.saic.ui.views.NextPerspective",
w.getActiveWorkbenchWindow());
} catch (WorkbenchException e) ...{
e.printStackTrace();
}


6.如果想让两个view占据一个位置(如IPageLayout.TOP),在createInitialLayout用如下方法:

Java代码 复制代码
  1. IFolderLayout folder = layout.createFolder("folderID", IPageLayout.TOP,   
  2.     0.5f, IPageLayout.ID_EDITOR_AREA);   
  3.   folder.addPlaceholder(View1.ID + ":*");   
  4.   folder.addView(View1.ID);   
  5.   folder.addPlaceholder(View2.ID + ":*");   
  6.   folder.addView(View2.ID);  
IFolderLayout folder = layout.createFolder("folderID", IPageLayout.TOP,
    0.5f, IPageLayout.ID_EDITOR_AREA);
  folder.addPlaceholder(View1.ID + ":*");
  folder.addView(View1.ID);
  folder.addPlaceholder(View2.ID + ":*");
  folder.addView(View2.ID);


7.在目录中添加保存透视图、打开透视图对话框的方法
(1) 在ApplicationActionBarAdvisor的MakeActions中添加:

Java代码 复制代码
  1. register(ActionFactory.SAVE_PERSPECTIVE.create(window));    
  2. register(ActionFactory.OPEN_PERSPECTIVE_DIALOG.create(window));  
register(ActionFactory.SAVE_PERSPECTIVE.create(window)); 
register(ActionFactory.OPEN_PERSPECTIVE_DIALOG.create(window));


(2) 在ApplicationActionBarAdvisor的fillMenuBar中添加:

Java代码 复制代码
  1. MenuManager fileMenu = new MenuManager("&File",   
  2.         IWorkbenchActionConstants.M_FILE);   
  3. menuBar.add(fileMenu);   
  4. fileMenu.add(getAction(ActionFactory.SAVE_PERSPECTIVE.getId()));   
  5. fileMenu.add(getAction(ActionFactory.OPEN_PERSPECTIVE_DIALOG.getId()));  
		MenuManager fileMenu = new MenuManager("&File",
				IWorkbenchActionConstants.M_FILE);
		menuBar.add(fileMenu);
		fileMenu.add(getAction(ActionFactory.SAVE_PERSPECTIVE.getId()));
		fileMenu.add(getAction(ActionFactory.OPEN_PERSPECTIVE_DIALOG.getId()));


这样既可完成。
8.关于perspective(转载http://dearwolf.iteye.com/blog/40879)
在IWorkbenchPreferenceConstants中有很多常量,用来配置preference settings,诸如:
  OPEN_NEW_PERSPECTIVE——打开新视图的方式
  DOCK_PERSPECTIVE_BAR——锁定PerspectiveBar的位置
  INITIAL_FAST_VIEW_BAR_LOCATION——表示fast view bar在一个fresh workspace中锁定的  位置,This preference is meaningless after a workspace has been setup, since the fast view bar state is then persisted in the workbench
  SHOW_TRADITIONAL_STYLE_TABS——表示是否在editor和view上显示传统的tab style
  SHOW_PROGRESS_ON_STARTUP——是否在启动时显示progress
  SHOW_TEXT_ON_PERSPECTIVE_BAR——是否在PerspectiveBar上显示文字
9.给一个perspective添加上两个相同的view

Java代码 复制代码
  1. layout.addView(YourView.ID + ":1", IPageLayout.LEFT,0.65f,layout.getEditorArea());   
  2.            
  3. layout.addView(YourView.ID + ":2", IPageLayout.BOTTOM, 0.50f,YourView.ID + ":1");   
        layout.addView(YourView.ID + ":1", IPageLayout.LEFT,0.65f,layout.getEditorArea());
                
        layout.addView(YourView.ID + ":2", IPageLayout.BOTTOM, 0.50f,YourView.ID + ":1");
       
分享到:
评论

相关推荐

    eclipse RCP Plug-in开发自学教程.pdf

    eclipse RCP(Rich Client Platform)是一种基于eclipse的插件式开发平台,允许开发者使用eclipse结构风格设计弹性的可扩展的应用程序。RCP插件式开发方式可以重用eclipse中的方法和编码模式,提高开发效率和代码...

    rcp for java one

    3. **Eclipse RCP开发**:分享使用Eclipse IDE进行RCP应用开发的最佳实践,包括插件开发、调试技巧以及如何发布和部署应用程序。 4. **RCP与JavaFX的结合**:随着JavaFX成为Java客户端UI的新选择,如何将JavaFX与RCP...

    Eclipse RCP开发教程

    **Eclipse RCP 开发教程** Eclipse Rich Client Platform (RCP) 是一个用于构建桌面应用程序的框架,它基于 Eclipse IDE ...开发者可以通过学习和实践,逐步掌握 RCP 的开发技巧,创建出满足需求的定制化应用程序。

    ECLIPSE+RCP应用系统开发方法与实战(PDF 高岗著)

    通过阅读这本书,开发者可以掌握Eclipse RCP的开发技巧,理解其设计模式,并能够构建自己的桌面应用程序。书中的实例和实践环节对于初学者来说尤其有价值,能够帮助他们快速上手并提升开发能力。

    RCP部分课程

    总的来说,"RCP部分课程"将引导你深入理解RCP的各个方面,从基本概念到高级技巧,帮助你构建出功能强大且用户友好的桌面应用。通过学习和实践,你将具备开发复杂RCP应用的能力,为你的IT职业生涯增添一项宝贵的技术...

    Rcp一个简单的入门教程

    **RCP(Rich Client Platform)** 是...这个教程将帮助你从零开始,逐步掌握RCP开发的基本技巧,为后续的深入学习打下坚实基础。记得实践是检验学习效果的最好方法,尝试跟着教程动手操作,你将更快地掌握RCP开发。

    rcp editor实例的项目代码

    **RCP Editor实例项目代码详解** 本文将深入探讨Eclipse RCP(Rich Client Platform)编辑器实例的项目代码,这是Eclipse...不断研究和实践,你将能够熟练掌握Eclipse RCP的开发技巧,构建出功能丰富的桌面应用程序。

    为 RCP 提供捷径的实用 Eclipse 系统类

    Eclipse 提供了 RCP 应用开发的内核...本文尽可能详细的介绍这些类,用示例代码展示它们的用法,相信读者可以从本文掌握它们的使用技巧。 LINK:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-rcpclass/

    Eclipse RCP 插件开发指南

    本指南旨在帮助开发者从零开始掌握Eclipse RCP插件开发的基础知识及实战技巧。 ##### Introduction Eclipse RCP 是一个灵活的平台,它提供了构建桌面应用程序所需的所有组件和服务。通过使用Eclipse RCP,开发者...

    eclipse rcp应用系统开发方法与实战源代码.zip

    通过这个压缩包中的教程和源代码,开发者不仅可以学习到Eclipse RCP的基本概念,还能掌握实际的开发技巧,从而构建出功能完善的桌面应用程序。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。

    Eclipse RCP开发详解

    Eclipse Rich Client Platform (RCP) 是一个强大的框架,用于构建桌面应用...通过深入学习"**Eclipse RCP开发详解**",你可以掌握构建自定义插件的技巧,从而充分利用这个平台的优势,打造出满足特定需求的应用程序。

    RCP_Plug-in开发自学教程(CEC首发)

    本自学教程旨在帮助初学者掌握RCP Plug-in开发的基本概念、工具使用以及实践技巧。 一、RCP(富客户端平台)概述 RCP是Eclipse项目的一部分,它提供了一个可定制的、可扩展的桌面应用程序框架。通过RCP,开发者可以...

    Eclipse RCP应用系统开发方法与实战

    Eclipse Rich Client Platform...通过理解其组件模型,掌握开发流程,以及运用实战技巧和最佳实践,开发者可以高效地开发出高质量的Eclipse RCP应用系统。在实践中,不断学习和积累经验,才能真正驾驭这个强大的平台。

    RCP.rar_rcp

    "RCP.pdf"文件可能是关于RCP的教程或指南,涵盖了RCP的基本概念、开发技巧等内容,对于初学者来说是一份很好的参考资料。建议结合此文档逐步学习和实践RCP开发。 总的来说,RCP为开发者提供了一个强大而灵活的桌面...

    eclipse-rcp开发培训PPT

    **四、实战技巧与最佳实践** 1. **插件设计原则**:尽量保持插件小巧且专注,避免过多的跨插件依赖,提高代码复用性和应用的可维护性。 2. **资源管理**:利用Eclipse的资源管理功能,如Preference Service,实现...

    rcp perspective

    在标签"源码 工具"中,我们可以推断内容可能涉及RCP的源代码理解和实用工具的使用。 以下是一些与"rcp perspective"相关的详细知识点: 1. **透视图的概念**:透视图是Eclipse RCP中的一种组织工作空间的方式,它...

    RCP程序设计.pdf

    RCP(Rich Client Platform)是Eclipse框架的一部分,它提供了一种构建桌面应用程序的强大平台。...在《RCP程序设计》这本书中,你可以找到详细讲解这些概念和技巧的教程,这对于入门RCP开发大有裨益。

    ECLIPSE RCP项目源程序

    通过深入研究这个项目,你可以掌握Eclipse RCP开发的基本技巧,并能够运用到自己的项目中去。 为了充分利用这个资源,建议先从整体上了解项目结构,然后逐步深入到每个插件、类和方法,结合中文注释理解其功能和...

    Eclipse 4.3 RCP 最新英文教程

    Eclipse 4.3 RCP(Rich ...通过本教程的系统学习,开发者可以掌握创建基于Eclipse的现代化桌面应用程序的技巧,能够有效地利用Eclipse 4 的新特性,包括新的用户界面API和编程模型,来提升开发效率和应用程序的质量。

    rcp 工具栏

    在IT行业中,Eclipse RCP(Rich Client Platform)是一个强大的框架,用于构建桌面应用程序。RCP工具栏是其中的关键...对于熟悉源码和工具的IT专业人士来说,掌握RCP工具栏的使用技巧无疑是提升开发能力的有效途径。

Global site tag (gtag.js) - Google Analytics