IStatusLineManager statusline = getViewSite().getActionBars()
.getStatusLineManager();
http://allenyoung.iteye.com/category/5916?show_full=true
http://lggege.iteye.com/category/28438?show_full=true
http://www.java2s.com/CN/Code/Java/SWT-JFace-Eclipse/Transparency.htm
http://www.eclipse.org/articles/Article-SWT-images/graphics-resources.html 很好的参考eclipse.org
写道
StatusLineContributionItem statusItem = new StatusLineContributionItem("LULU");
// 获取进度监视器,并在状态栏显示
//statusline.getProgressMonitor();
// 设置状态栏文本
statusItem.setText("kkk");
//将statusItem注册到statusLine
statusline.add(statusItem);
// 获取进度监视器,并在状态栏显示
//statusline.getProgressMonitor();
// 设置状态栏文本
statusItem.setText("kkk");
//将statusItem注册到statusLine
statusline.add(statusItem);
WorkbenchWindow workbenchWindow = (WorkbenchWindow)PlatformUI.getWorkbench().getActiveWorkbenchWindow();
IStatusLineManager lineManager = workbenchWindow.getStatusLineManager();
lineManager.removeAll();
lineManager.setMessage("yyy");
lineManager.add(addAction);
lineManager.update(true);
Runnable run = new Runnable(){
@Override
public void run() {
//Display.getDefault().asyncExec(new Runnable(){
// @Override
//public void run() {
boolean flag = false;
for (int i = 0; i < 5; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//addAction.setToolTipText("ttttt"+Math.random()*100);
addAction.setEnabled(flag);
flag = !flag;
System.out.println("runnable=============================");
}
//}});
}};
Thread tr = new Thread(run);
tr.start();
addAction.setEnabled(flag);
也可以改成其它的,如图片的交互
package org.zw.job.busi;
import org.eclipse.jface.resource.CompositeImageDescriptor;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Display;
/**
* <p>Description: SWT中生成带标记的图片(图片叠加的效果) </p>
* @see org.eclipse.ui.internal.OverlayIcon
*/
public class DisableImageDescriptor extends CompositeImageDescriptor {
private ImageDescriptor fBase = null;
private Point fSize = null;
// private int fPosition = TOP_RIGHT;
/**
* @param base 底衬图
* @param overlay 标记图
* @param size 生成出来的图的大小
* @param position 标记图在底衬图的位置. TOP_LEFT TOP_RIGHT BOTTOM_LEFT BOTTOM_RIGHT
*/
public DisableImageDescriptor(ImageDescriptor base) {
this.fBase = base;
if (this.fSize == null) {
ImageData id = base.getImageData();
this.fSize = new Point(id.width, id.height);
}
// this.fPosition = position;
}
/**
* @see org.eclipse.jface.resource.CompositeImageDescriptor#drawCompositeImage(int, int)
*/
@Override
protected void drawCompositeImage(int width, int height) {
ImageData bg;
if (fBase == null || (bg = fBase.getImageData()) == null) {
bg = DEFAULT_IMAGE_DATA;
}
Image image = fBase.createImage();
Image grayImage = new Image(Display.getCurrent(),image,SWT.IMAGE_GRAY);
bg = grayImage.getImageData();
drawImage(bg, 0, 0);
}
/**
* @see org.eclipse.jface.resource.CompositeImageDescriptor#getSize()
*/
@Override
protected Point getSize() {
return this.fSize;
}
}