最近碰到这么一个问题,在ApplicationWorkbenchWindowAdvisor类中设置了状态栏的信息,但是程序启动后,在打开一个Viewer之后,状态栏信息不见了.请教高手,如何保持状态栏的信息不变.
我的代码如下:
     statusImage = AbstractUIPlugin.imageDescriptorFromPlugin(
"cn.com.cfchina.cds", "icons/actor.gif").createImage();
IStatusLineManager statusline = getWindowConfigurer()
.getActionBarConfigurer().getStatusLineManager();
statusline.setMessage(statusImage, "当前用户:");
高手指点!急急急!

解决方案 »

  1.   

    用getViewSite().getActionBars().getStatusLineManager();
    在view里面写的,
    如果在action里面写,估计应该如下:
    PlatformUI.getWorkbench().getActiveWorkbenchWindow()
                .getActivePage().findView("FastSearchView").getViewSite()
                .getActionBars().getStatusLineManager().setMessage("ERROR!");
    呵呵有点啰嗦,不知道还有没有别的办法。看过3.3的,应该还可以添加command扩展点使用org.eclipse.ui.menus来修改状态栏
      

  2.   

    ApplicationActionBarAdvisor里面覆盖父类一个方法
    @Override   
    protected void fillStatusLine(IStatusLineManager statusLine) {
    super.fillStatusLine(statusLine);
    // 定义StatusLineContributionItem对象
    final StatusLineContributionItem statusItem =
    new StatusLineContributionItem("");
    // 获取进度监视器,并在状态栏显示
    statusLine.getProgressMonitor(); // 设置状态栏文本
    statusItem.setText("用户名:XX");

    //将statusItem注册到statusLine
    statusLine.add(statusItem);
    }
    可以在View打开后仍不消失,但是不能更改。