`

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");
       
分享到:
评论

相关推荐

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

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

    Eclipse从入门到精通

    :起步篇介绍了Eclipse及相关插件的安装,还介绍了一些Eclipse开发环境的基本使用技巧 ;SWT/JFace篇详细介绍了SWT、JFace的使用:插件开发篇详细讲解了Eclipse插件开发的各个步骤 ;RCP开发篇给出了一个基于数据库...

    Eclipse从入门到精通(第2版)

    全书分为5篇:起步篇介绍了Eclipse及相关插件的安装,还介绍了一些Eclipse开发环境的基本使用技巧;SWT/JFace篇详细介绍了SWT、JFace的使用;插件开发篇详细讲解了Eclipse插件开发的各个步骤;RCP开发篇给出了一个...

    Eclipse插件开发学习笔记 第三篇 高级进阶 (第十九章到第二十二章)

    然后具体介绍SWT/JFace的使用,包括基本的控件、观察器、对话框以及图形等,在接下来的插件开发核心和高级部分,本书详细讲解了插件开发的方法和技巧,涉及到了插件开发的大部分知识点,最后本书还介绍了RCP开发技术...

    Eclipse从入门到精通(第2版).pdf

    全书分为5篇:起步篇介绍了Eclipse及相关插件的安装,还介绍了一些Eclipse开发环境的基本使用技巧;SWT/JFace篇详细介绍了SWT、JFace的使用;插件开发篇详细讲解了Eclipse插件开发的各个步骤;RCP开发篇给出了一个...

    Eclipse插件开发学习笔记 第一篇 开发基础 (第一章到第八章)

    然后具体介绍SWT/JFace的使用,包括基本的控件、观察器、对话框以及图形等,在接下来的插件开发核心和高级部分,本书详细讲解了插件开发的方法和技巧,涉及到了插件开发的大部分知识点,最后本书还介绍了RCP开发技术...

    Eclipse插件开发学习笔记 第二篇 核心技术 (第十四章到第十八章)

    然后具体介绍SWT/JFace的使用,包括基本的控件、观察器、对话框以及图形等,在接下来的插件开发核心和高级部分,本书详细讲解了插件开发的方法和技巧,涉及到了插件开发的大部分知识点,最后本书还介绍了RCP开发技术...

    Eclipse插件开发学习笔记 第二篇 核心技术 (第九章到第十三章)

    然后具体介绍SWT/JFace的使用,包括基本的控件、观察器、对话框以及图形等,在接下来的插件开发核心和高级部分,本书详细讲解了插件开发的方法和技巧,涉及到了插件开发的大部分知识点,最后本书还介绍了RCP开发技术...

    eclispe中文操作手册

    eclisep完成操作文档,详细的介绍了各个模块在开发中实际的使用方法和实际作用,内容都是中文版的,新手小白都可以轻松的看懂掌握eclispe的使用技巧,作为自己日常开发中工具文档吧 Eclipse的本身只是一个框架平台,...

    Eclipse从入门到精通(第1版+第2版)随书光盘

    “起步篇”介绍了eclipse及相关插件的安装,还介绍了一些eclipse开发环境的基本使用技巧;“swt/jface篇”详细介绍了swt、jface的使用;“插件开发篇”介绍了eclipse插件开发的各个步骤,并给出了一个基于数据库...

    xmind思维导图windows系统

    它提供详细的教程和在线帮助,帮助用户快速掌握软件的使用技巧。同时,XMind还具备良好的稳定性和兼容性,可以在多种操作系统上运行,确保用户能够随时随地进行思维导图的创建和编辑。 总的来说,XMind是一款功能...

    在Linux系统中使用Vim读写远程文件的命令详解

    今天我们讨论一个 Vim 使用技巧——用 Vim 读写远程文件。要实现这个目的,我们需要使用到一个叫 netrw.vim 的插件。从 Vim 7.x 开始,netrw.vim 就被设置为默认安装的标准插件了。这个插件允许用户通过 ftp、rcp、...

    Eclipse 核心编程--插件、界面与Web开发

    书中不仅包括适合Java初学者阅读的编译和运行Java应用程序,在Eclipse中配置环境变量、构建路径,使用Junit编写测试代码等Eclipse开发的基础知识;还包括适合Eclipse具体项目开发人员阅读的开发Java图形应用程序,...

    Turbolinux 学习入门宝典

    第7章 维护技巧与常用命令 134 7.1 TDS 7 上安装SYBASE 11.9.2 134 7.2 TDS 7 上安装SYBASE 12.5 134 7.3 TDS7.0上ASE12.5的补丁安装 135 7.3.1 操作系统及数据库版本说明: 135 7.3.2 补丁安装过程 135 7.3.3 检查...

    入门学习Linux常用必会60个命令实例详解doc/txt

    ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; ◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who; ◆ 其它...

    JAVA程序开发大全---上半部分

    本书系统全面地介绍了Java中的各项主流技术,以及基于这些技术的商业化应用程序的开发技巧,在讲解过程中以目前最为流行的开发工具MyEclipse为载体,全面系统地介绍了如何在MyEclipse中开发基于Struts、Hibernate、...

    软件工程-理论与实践(许家珆)习题答案

    RCP法与RSP法的主要区别是前者采用循环渐进的开发方式,原型将成为最终的产品,而后者将被废弃。(√) 三、简答题 1. 软件产品的特性是什么? 答: ● 软件是一种逻辑产品,具有无形性;  ● 软件产品的生产...

Global site tag (gtag.js) - Google Analytics