2008-03-19
不用线程实现更改ViewPart的TitleImage
关键字: viewpart titleimage
要实现动态刷新ViewPart的TitleImage 通常都是使用一个线程去访问,在查看完Eclipse的源代码后,模仿的一个方法,这个途径是不需使用线程的,而使用UI中通用的属性修改通知机制.
效果: 在点击Button后,可以修改Title,TitleImage,TitleToolTip。
ViewPart都是继承与WorkbenchPart的,在WorkbenchPart内有这样一个监听事件,
用于监听属性为IWorkbenchPartConstants.PROP_TITLE的变化,由此而触发WorkbenchPart的getTitle, getTitleImage, getTitleToolTip的方法,也就是重新加载了ViewPart的Title,TitleImage,TitleToolTip。
简单代码如上,根据i来判断具体显示内容。
你可以把button的SelectionListener内注释掉的代码打开,就实现了点击button后,Title等的动态刷新。由此再深入就可以实现我们的要求了。这个实现方法没有使用一个线程去做刷新的通常做法。
- 见图1: 原始ViewPart
- 见图2: 修改后的ViewPart
效果: 在点击Button后,可以修改Title,TitleImage,TitleToolTip。
- Title就是上部分的显示1, 2.
- TitleImage就是最左上,左下的图标。
- TitleToolTip就是在图标上鼠标悬浮的ToolTip,截图未标识出来.
ViewPart都是继承与WorkbenchPart的,在WorkbenchPart内有这样一个监听事件,
用于监听属性为IWorkbenchPartConstants.PROP_TITLE的变化,由此而触发WorkbenchPart的getTitle, getTitleImage, getTitleToolTip的方法,也就是重新加载了ViewPart的Title,TitleImage,TitleToolTip。
button.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
// for (int k = 0; k < 10000000; k++) {
// if (k % 100000 == 0) {
firePropertyChange(IWorkbenchPartConstants.PROP_TITLE);
// }
// }
}
});
private static Image image0 = Activator.getImageDescriptor("icons/f3.png").createImage();
private static Image image1 = Activator.getImageDescriptor("icons/sample.gif").createImage();
public static int i = 0;
@Override
public Image getTitleImage() {
if (i % 2 == 0) {
return image0;
} else {
return image1;
}
}
@Override
public String getTitle() {
i++;
if (i % 2 == 0) {
return "2";
} else {
return "1";
}
}
@Override
public String getTitleToolTip() {
if (i % 2 == 0) {
return "2";
} else {
return "1";
}
}
简单代码如上,根据i来判断具体显示内容。
你可以把button的SelectionListener内注释掉的代码打开,就实现了点击button后,Title等的动态刷新。由此再深入就可以实现我们的要求了。这个实现方法没有使用一个线程去做刷新的通常做法。
发表评论
- 浏览: 6458 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
我的相册
IndexCardGenerator
共 13 张
共 13 张
最近加入圈子
最新评论
-
RAP[1] RAP开发环境的安装
Eclipse RAP的客户端渲染是基于qooxdoo,一个很优秀的开源java ...
-- by Quake Wang -
惊艳!!! Swt 上的Ribbon.
dev.java.net上早有ribbon的实现了,不过是swing的:http ...
-- by diggywang -
.net终于被java同化了
支持Java
-- by love2008 -
Groovy的Eclipse插件
多谢,在这里找到插件了
-- by wdlfellow

![lggege的博客: [203] lG 槛~ 迈过去! 用户头像](http://www.javaeye.com/upload/logo/user/18674/d58959b8-54ec-376e-b9f2-5d3a36beaa2f.jpg?1206674671)




评论排行榜