- 浏览: 269097 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (152)
- lucene (5)
- java (12)
- eclipse (2)
- GEF (34)
- SWT/JFACE/PLUGIN (58)
- EMF (8)
- GMF (0)
- fckeditor (1)
- AIX (1)
- 云计算 (2)
- 使用 Grails 构建富 Internet 应用程序 (1)
- Grails (1)
- 动态调用动态语言 (2)
- W3C DOM (3)
- Google Maps (1)
- 优化 (1)
- WebSphere (1)
- NSIS (1)
- 计算机安全 (1)
- Mina (2)
- Draw2d (4)
- Compass (1)
- 原创诗集 (3)
- 人生 (1)
- 翻版 (1)
- OSGI (1)
- Ubuntu (2)
- Ireport (2)
最新评论
-
扬手就是一长鞭:
移动label也无法使得save可以执行。
让连线上的Label动起来吧 -
扬手就是一长鞭:
我的save是正常的,我添加删除node或者connectio ...
让连线上的Label动起来吧 -
扬手就是一长鞭:
我也是这扥写的,可是我双击label改变他的文字时,发现sav ...
让连线上的Label动起来吧 -
ae6623:
这段代码放到哪里??
控制拖拽范围 -
ae6623:
真牛!鼠标滚轮缩放GEF画布 ..
getGraphicalV ...
GEF实现用鼠标滑轮控制画布的放大与缩小
from:http://blog.csdn.net/moneyice/archive/2006/05/12/726810.aspx
在Eclipse 中,每选中一个文件,底部的状态栏上都会显示出该文件的有关信息。客户端软件通常都会将一些全局的或当前的信息显示在底部的状态栏上。本文将在RCP中添加状态栏功能。
首先,必须在WorkbenchWindowAdvisor. preWindowOpen()启用状态栏功能,configurer.setShowStatusLine(true);
ApplicationWorkbenchWindowAdvisor.java
01 public void preWindowOpen() {
02 IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
03 configurer.setInitialSize(new Point(600, 400));
04 configurer.setShowCoolBar(true);
05 configurer.setShowStatusLine(true);
06 configurer.setShowFastViewBars(true);
07 configurer.setShowPerspectiveBar(true);
08 configurer.setShowMenuBar(true);
09 configurer.setShowProgressIndicator(true);
10 configurer.setShowStatusLine(true);
11 PlatformUI.getPreferenceStore().setDefault(
12 IWorkbenchPreferenceConstants.ENABLE_ANIMATIONS, true);
13 PlatformUI.getPreferenceStore().setDefault(
14 IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS,
15 false);
16 PlatformUI.getPreferenceStore().setDefault(
17 IWorkbenchPreferenceConstants.DOCK_PERSPECTIVE_BAR,
18 IWorkbenchPreferenceConstants.TOP_RIGHT);
19 }
和menu bar 和 toolbar一样,状态栏也是由ActionBarAdvisor控制,在ActionBarAdvisor.fillStatusLine (IStatusLineManager)中,状态栏信息的显示都由IStatusLineManager控制。
状态栏的结构
Fast views 可以将View拖到Fast views中,提供View的快捷访问。
Icon/message 这里可以显示图标和信息
Progress 用来显示进度条,通常是不可见的。当有IWorkbenchWindow.run() 调用时,显示一个进度条和一个取消按钮。
Contributions 由来显示一些额外信息,例如Eclipse选中一个java editor时,底部的读写状态,行数等信息。
Jobs progress 用来显示执行的Job,默认是不现实。要启用此功能,要设置IWorkbenchWindowConfigurator.setShowProgressIndicator(boolean).
一般Icon/message已经可以满足显示信息的要求,如果想要添加,可以在ActionBarAdvisor.fillStatusLine (IStatusLineManager)执行IStatusLineManager.add(IContributionItem).
在View中使用StatusLine,当选中某个节点时,在状态栏显示节点信息。
为View中的TreeViewer添加监听选择事件:
1 viewer.addSelectionChangedListener(new ISelectionChangedListener() {
2 public void selectionChanged(SelectionChangedEvent event) {
3 updateStatusline(event);
4 }
5 });
01 protected void updateStatusline(SelectionChangedEvent event) {
02 IStatusLineManager statusline = this.getViewSite().getActionBars()
03 .getStatusLineManager();
04 IStructuredSelection selection = (IStructuredSelection) event
05 .getSelection();
06 String msg = getSelectionMessage(selection);
07
08 statusline.setMessage(msg);
09 }
10
11 private String getSelectionMessage(IStructuredSelection selection) {
12 if (selection.isEmpty()) {
13 return "";
14 }
15 if (selection.size() == 1) {
16 return selection.getFirstElement().toString();
17 }
18 return selection.size() + " items selected";
19 }
在View中使用StatusLine,当输入不合法时,显示出错信息。
1 protected void inputChagned() {
2 if (groupName.getText().length() == 0) {
3 showErrorOnStatusline("Group name can not be blank");
4 return;
5 }
6 showErrorOnStatusline(null);
7 setDirty(true);
8 }
1 protected void showErrorOnStatusline(String error) {
2 IStatusLineManager statusline = this.getEditorSite().getActionBars()
3 .getStatusLineManager();
4 if (error == null) {
5 statusline.setErrorMessage(null, error);
6 } else {
7 statusline.setErrorMessage(ImageShop.get("error"), error);
8 }
你可以看看另一篇博文-----35791487这个是博文编号,将460989覆盖掉就可以了
在Eclipse 中,每选中一个文件,底部的状态栏上都会显示出该文件的有关信息。客户端软件通常都会将一些全局的或当前的信息显示在底部的状态栏上。本文将在RCP中添加状态栏功能。
首先,必须在WorkbenchWindowAdvisor. preWindowOpen()启用状态栏功能,configurer.setShowStatusLine(true);
ApplicationWorkbenchWindowAdvisor.java
01 public void preWindowOpen() {
02 IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
03 configurer.setInitialSize(new Point(600, 400));
04 configurer.setShowCoolBar(true);
05 configurer.setShowStatusLine(true);
06 configurer.setShowFastViewBars(true);
07 configurer.setShowPerspectiveBar(true);
08 configurer.setShowMenuBar(true);
09 configurer.setShowProgressIndicator(true);
10 configurer.setShowStatusLine(true);
11 PlatformUI.getPreferenceStore().setDefault(
12 IWorkbenchPreferenceConstants.ENABLE_ANIMATIONS, true);
13 PlatformUI.getPreferenceStore().setDefault(
14 IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS,
15 false);
16 PlatformUI.getPreferenceStore().setDefault(
17 IWorkbenchPreferenceConstants.DOCK_PERSPECTIVE_BAR,
18 IWorkbenchPreferenceConstants.TOP_RIGHT);
19 }
和menu bar 和 toolbar一样,状态栏也是由ActionBarAdvisor控制,在ActionBarAdvisor.fillStatusLine (IStatusLineManager)中,状态栏信息的显示都由IStatusLineManager控制。
状态栏的结构
Fast views 可以将View拖到Fast views中,提供View的快捷访问。
Icon/message 这里可以显示图标和信息
Progress 用来显示进度条,通常是不可见的。当有IWorkbenchWindow.run() 调用时,显示一个进度条和一个取消按钮。
Contributions 由来显示一些额外信息,例如Eclipse选中一个java editor时,底部的读写状态,行数等信息。
Jobs progress 用来显示执行的Job,默认是不现实。要启用此功能,要设置IWorkbenchWindowConfigurator.setShowProgressIndicator(boolean).
一般Icon/message已经可以满足显示信息的要求,如果想要添加,可以在ActionBarAdvisor.fillStatusLine (IStatusLineManager)执行IStatusLineManager.add(IContributionItem).
在View中使用StatusLine,当选中某个节点时,在状态栏显示节点信息。
为View中的TreeViewer添加监听选择事件:
1 viewer.addSelectionChangedListener(new ISelectionChangedListener() {
2 public void selectionChanged(SelectionChangedEvent event) {
3 updateStatusline(event);
4 }
5 });
01 protected void updateStatusline(SelectionChangedEvent event) {
02 IStatusLineManager statusline = this.getViewSite().getActionBars()
03 .getStatusLineManager();
04 IStructuredSelection selection = (IStructuredSelection) event
05 .getSelection();
06 String msg = getSelectionMessage(selection);
07
08 statusline.setMessage(msg);
09 }
10
11 private String getSelectionMessage(IStructuredSelection selection) {
12 if (selection.isEmpty()) {
13 return "";
14 }
15 if (selection.size() == 1) {
16 return selection.getFirstElement().toString();
17 }
18 return selection.size() + " items selected";
19 }
在View中使用StatusLine,当输入不合法时,显示出错信息。
1 protected void inputChagned() {
2 if (groupName.getText().length() == 0) {
3 showErrorOnStatusline("Group name can not be blank");
4 return;
5 }
6 showErrorOnStatusline(null);
7 setDirty(true);
8 }
1 protected void showErrorOnStatusline(String error) {
2 IStatusLineManager statusline = this.getEditorSite().getActionBars()
3 .getStatusLineManager();
4 if (error == null) {
5 statusline.setErrorMessage(null, error);
6 } else {
7 statusline.setErrorMessage(ImageShop.get("error"), error);
8 }
评论
2 楼
WIN
2010-07-06
zhoche2008 写道
我的状态栏的内容是固定的,怎么办呢,如果在ActionBarAdvisor.fillStatusLine中设置statusLine.setMessage后,当我点击某个viewpart后,状态栏的内容就消失了,如果在每一个viewpart里面都设置setMessage又太麻烦,怎么办?
你可以看看另一篇博文-----35791487这个是博文编号,将460989覆盖掉就可以了
1 楼
zhoche2008
2010-07-05
我的状态栏的内容是固定的,怎么办呢,如果在ActionBarAdvisor.fillStatusLine中设置statusLine.setMessage后,当我点击某个viewpart后,状态栏的内容就消失了,如果在每一个viewpart里面都设置setMessage又太麻烦,怎么办?
发表评论
-
选择workspace中的文件对话框
2011-04-09 17:57 1586ElementTreeSelectionDialog dial ... -
在插件中访问StatusLine
2011-01-17 11:26 1132WorkbenchWindow window = Platfr ... -
给RCP添加SVN功能
2011-01-03 17:26 1849三个步骤: 一、下载SVN插件到eclipse; 二、给RCP ... -
获得当前激活状态的Iproject
2010-11-30 12:48 1526/** * 获得当前工程 * @return ... -
让TableViewer支持Tab编辑
2010-10-16 08:57 1965高效的编辑无疑于tab操作,给TableViewer加tab操 ... -
实现Eclipse自身的log管理
2010-01-14 10:58 3327做插件开发的都知道当 ... -
自定义RCP外观
2010-01-13 21:52 4295如果说只需要改变RCP的皮肤可以参照IBM上的Eclipse程 ... -
SWT GC重绘心得
2010-01-13 01:10 5232如果有需求要将Composite的边框颜色改成红色,大家肯定就 ... -
在eclipse中获得当前所有打开的editor实例列表
2009-12-18 14:42 1576EditorPart[] parts = Platfor ... -
将应用默认使用XP风格
2009-12-09 16:54 1091从http://www.eclipse.org/swt/jav ... -
RCP中访问StatusLine详解
2009-11-26 15:40 2802首先给大家介绍各种情 ... -
扩展org.eclipse.ui.preferencePages的些许经验
2009-11-13 15:28 2131最近参考Eclipse插件开发 ... -
给视图添加快捷键
2009-10-11 02:46 1039上一篇博文中讲了用扩展的方式添加全局快捷键,现在本文用硬编码的 ... -
添加全局快捷键
2009-10-11 02:38 1448两种方法:一种扩展, ... -
让SWT中的text只能输入数字
2009-10-07 14:51 3173思路:给Text添加键盘输入事件,判断按下的键的ASCII码 ... -
通过ACTION的ID来获得ACTION
2009-09-28 11:43 2954现在又很多需求都需要动态去改变Action的enable/di ... -
动态关闭ViewPart
2009-09-24 18:36 1929IWorkbenchPage page = PlatformU ... -
设置TreeViewer的前景色和背景色
2009-09-23 11:54 1693让TreeViewerLabelProvider实现IColo ... -
给子控件和父控件添加相同的事件
2009-09-18 13:24 1298方法很多种,我这里介绍种最简单易懂的;触发事件得有listen ... -
SWT时间选择器
2009-09-04 16:50 3324package com.netunit.workbench.t ...
相关推荐
RCP的菜单和工具栏支持动态更新,这意味着它们可以根据应用的状态变化自动调整显示的项。例如,如果某个编辑器中有未保存的更改,那么保存菜单项可能会高亮显示,或者在用户打开特定类型文件时,工具栏上会显示出...
在Eclipse RCP中,工具栏(Toolbar)是一种图形用户界面组件,通常位于窗口顶部,包含一系列按钮,每个按钮代表一个可执行的操作或命令。工具栏的设计旨在提高用户的效率,因为它们提供了一种快速访问常用功能的方式...
为了更好地满足用户界面的需求,可以进一步定制主窗口的样式,包括窗口大小、是否显示工具栏和状态栏等。 **步骤**: 1. **修改窗口大小**:在`ApplicationWorkbenchWindowAdvisor.java`的`preWindowOpen()`方法中...
- **简介**:状态栏在RCP界面底部显示信息。 - **安装状态栏**:添加和配置状态栏。 - **初始化状态条**:启动时设置状态栏信息。 - **控制状态栏**:动态更新和控制状态栏内容。 11. **透视图** - **简介**:...
- **介绍**: 状态栏用于显示简短的信息或状态。 - **实现**: 通过实现IStatusLineManagerListener接口。 #### 11. 透视图 - **概念**: 透视图是Eclipse RCP中的不同工作空间布局。 - **添加透视图**: - 创建...
1. **定义状态栏**:在插件中定义状态栏。 2. **更新状态栏**:编写更新状态栏信息的代码。 #### 共享状态栏 共享状态栏可以让多个视图共享同一个状态栏。实现共享状态栏的关键步骤包括: 1. **定义共享状态栏**:...
6. **Command Framework**:Eclipse RCP的命令框架允许开发者定义、分发和执行应用程序中的命令,包括菜单项、工具栏按钮等。 7. **Model Data Binding**:Eclipse RCP支持数据绑定,自动同步模型数据与UI组件的...
#### 十、添加状态栏 - **状态栏**: - 显示当前操作状态的信息区域。 - 位于应用窗口底部。 #### 十一、透视图 **11.1 简介** - **透视图(Perspective)**: - Eclipse RCP中的布局模板。 - 可以定义不同用途...
4. **菜单和工具栏**:Eclipse RCP允许自定义菜单和工具栏,这些可以通过`Action`类实现。你可以创建`MenuManager`和`ToolBarManager`来管理这些动作,并在编辑器的上下文中添加它们。 5. **事件处理**:RCP编辑器...
窗口样式的定制还包括控制工具栏的显示和状态栏的隐藏/显示。例如,可以暂时隐藏工具栏,显示状态栏: ```java configurer.setShowCoolBar(false); // 隐藏工具栏 configurer.setShowStatusLine(true); // 显示状态...
在RCP中,开发者可以创建自定义的工作台视图、编辑器、透视图,以及通过插件系统进行功能扩展。Eclipse RCP的核心设计理念是“模型-视图-控制器”(MVC)模式,这使得应用程序的结构清晰,易于维护和扩展。 **主要...
Advisor类在RCP中起到配置和建议的作用,用于定义用户界面的布局、样式和其他特性。主要有三种类型的Advisor: - WorkbenchAdvisor:负责整个工作台的生命周期管理,包括启动、关闭工作台,以及异常处理,并可以...
5. **Command Framework**:命令框架提供了处理用户操作的能力,如菜单项、工具栏按钮等。通过命令,开发者可以解耦UI和实现,使得功能可以独立于其表示进行定义和扩展。 6. **Property and Selection Services**:...
在RCP应用中,工作台(Workbench)作为整体架构的中心,负责管理窗口、视图、编辑器等元素。 书中的内容可能涵盖了以下知识点: 1. **环境搭建**:介绍如何配置Eclipse IDE,安装RCP开发所需的插件,如PDE(Plug-...
开发者可以利用RCP构建自己的应用程序,填充自己的业务逻辑,而无需从头设计基础界面元素,如菜单、工具栏和窗口。RCP使得开发者能够复用Eclipse的一些内置功能,例如控制台(Console),从而避免重复劳动,提高开发...
- **作用**:用于控制状态栏、工具栏、标题和窗口大小等元素。 - **特点**: - 将工具栏的创建任务委托给`ApplicationActionBarAdvisor`类。 - 具体的工具栏配置和行为由后者负责。 ##### 5. ...
- **工具栏(Toolbars)**、**菜单(Menu Bars)**、**状态栏(Status Bar)**:提供了用户与应用程序进行交互的主要方式。 ##### 3. 动作与事件 - **动作(Actions)**:Eclipse RCP通过引入“动作”的概念来简化事件处理...
- **工具栏**:回顾工具栏的定义及其在Eclipse RCP中的作用。 - **工具控件**:深入探讨工具控件及其用途。 - **下拉工具项**:介绍下拉工具项的特点及其在Eclipse RCP中的实现方法。 #### 二十一、命令和处理器...