Rcp关于View

 

在学习过程中也总结一下,方便自己今后的查阅,也给广大需要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", w.getActiveWorkbenchWindow());   
  9. } catch (WorkbenchException e) ...{   
  10. e.printStackTrace();   
  11. }  

 

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.javaeye.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上显示文字

Eclipse RCP (RCP for short,企业级插件开发平台) 提供了一套丰富的视图框架,它允许开发者创建复杂的用户界面。然而,Eclipse本身并不直接支持像加减法这种基础数学运算的实现,因为它是一个集成开发环境,主要用于软件开发。 如果你想在Eclipse RCP视图中展示简单的算术操作,通常会通过编写业务逻辑层来实现计算功能,然后在视图中显示结果。例如,你可以创建一个`CalculatorService`服务,提供加法和减法的操作,视图(View)负责接收用户的输入,调用这些服务,并将结果显示给用户。这是通过事件监听、模型-视图-控制器(MVC)架构等设计模式来完成的。 下面是简单步骤概述: 1. 创建`CalculatorService`接口: ```java public interface CalculatorService { int add(int a, int b); int subtract(int a, int b); } ``` 2. 实现具体的`CalculatorImpl`类: ```java @Service public class CalculatorImpl implements CalculatorService { @Override public int add(int a, int b) { return a + b; } @Override public int subtract(int a, int b) { return a - b; } } ``` 3. 视图中处理计算请求并显示结果: ```java // 视图代码片段 Button addButton = ...; // 获取加法按钮 addButton.addClickListener(e -> displayResult(calculateService.add(inputA.getText(), inputB.getText()))); Button subtractButton = ...; // 获取减法按钮 subtractButton.addClickListener(e -> displayResult(calculateService.subtract(inputA.getText(), inputB.getText()))); ``` 4. `displayResult()`方法用于更新结果框显示: ```java private void displayResult(int result) { resultField.setText(Integer.toString(result)); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值