RCP中的一些技巧 不断更新中……

如果这些技巧对你们的开发有帮助,大家互相贡献啊
[b]1.最大化窗口:[/b]
在ApplicationWorkbenchWindowAdvisor中,书写如下方法:
	public void postWindowCreate() {
super.postWindowCreate();
getWindowConfigurer().getWindow().getShell().setMaximized(true);

}

[b]2.设置view的tab显示风格:[/b]
在ApplicationWorkbenchAdvisor中添加如下代码
@Override
public void initialize(IWorkbenchConfigurer configurer) {
// TODO Auto-generated method stub
super.initialize(configurer);
PlatformUI.getPreferenceStore().setValue(
IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS,
false);
}

[b]3.设置view的显示要求(可移动?关闭?最大化?最小化?)[/b]
一种方式是通过org.eclipse.ui.perspectiveExtensions配置view来方便的设置各个属性,我有专门的一篇文章介绍。另一种方式是在perspective的createInitialLayout方法中,采用如下语句配置:
layout.getViewLayout(View1.ID).setCloseable(false);
//设置View1的关闭按钮不可见
layout.getViewLayout(View1).setMoveable(false);
//设置View1的不可移动
layout.setFixed(true);
//设置该perspective中的所有view,其大小不可变动,无最大最小按钮

[b]4.在其他view中获取某个view的引用[/b]
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView("viewId");


[b]5.关闭一个当前的perspective打开一个新的perspective[/b]
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();
}

[b]6.如果想让两个view占据一个位置(如IPageLayout.TOP)[/b],在createInitialLayout用如下方法:
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);

[b]7.在目录中添加保存透视图、打开透视图对话框的方法[/b]
(1) 在ApplicationActionBarAdvisor的MakeActions中添加:
register(ActionFactory.SAVE_PERSPECTIVE.create(window)); 
register(ActionFactory.OPEN_PERSPECTIVE_DIALOG.create(window));

(2) 在ApplicationActionBarAdvisor的fillMenuBar中添加:
		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()));

这样既可完成。
[b]8.关于perspective[/b](转载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上显示文字
[b]9.给一个perspective添加上两个相同的view[/b]
        layout.addView(YourView.ID + ":1", IPageLayout.LEFT,0.65f,layout.getEditorArea());

layout.addView(YourView.ID + ":2", IPageLayout.BOTTOM, 0.50f,YourView.ID + ":1");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值