有助于Eclipse RCP中的状态栏/修剪

时间:2010-05-11 12:11:11

标签: eclipse-rcp

我需要在Eclipse应用程序的状态栏中显示状态指示器。我无法通过ApplicationWindowAdviser(另一个团队拥有核心产品)做出贡献,但我确信我应该能够通过扩展点做出贡献。尽管有很多谷歌搜索,我找不到任何描述如何做到这一点。

3 个答案:

答案 0 :(得分:8)

在org.eclipse.ui.menuContributions扩展中,使用“toolbar:org.eclipse.ui.trim.status”作为locationURI。您可以将命令/自定义控件提供给状态栏。

答案 1 :(得分:1)

检查可能的解决方案:
您应该能够定义 fragment ,以便能够添加到核心产品功能。 (see here换另一个例子)。

这个想法是为核心插件添加功能。可能是你的贡献可以合并到那个主要产品那样。

答案 2 :(得分:0)

首先,将状态栏添加到application.e4xmi(应用程序> Windows和对话框>修剪窗口> TrimBars> WindowTrim(底部)>工具栏>工具控件)

创建.java类并在工具栏(类uri)中提供地址。

e4状态栏实现与e3实现不同。在e4中,您可以使用eventbroker将文本(info)发送到状态栏。

@Inject
private IEventBroker eventBroker; 
private static final String STATUSBAR ="statusbar";

@Inject @Optional
public void  getEvent(@UIEventTopic(STATUSBAR) String message) {
    updateInterface(message); 
}

@PostConstruct
public void createControls(Composite parent) {
   .... \\ swt definitions e.g. label 
}

public void updateInterface(String message)
    {
        try{
            Display.getDefault().asyncExec(new Runnable() {
              @Override
              public void run() {
                 try{
                        label.setText(message);  
                    }
                    catch(Exception exc){
                        System.out.println(exc);
                    }               
              }
            });
        }
        catch(Exception exception){
            System.out.println(exception);
        }   
    }

另外,不要忘记将eventbrokersender添加到另一个java类。

@Inject
private IEventBroker eventBroker; 
private static final String STATUSBAR ="statusbar";
eventBroker.send(STATUSBAR, "status bar test message..");