Eclipse rcp 有助于Eclipse RCP中的状态栏/修剪
我需要在Eclipse应用程序的状态栏中显示状态指示器。我不能通过ApplicationWindowAdvisor(另一个团队拥有核心产品)进行贡献,但我确信我应该能够通过扩展点进行贡献。尽管谷歌搜索了很多,我还是找不到任何描述如何做这件事的东西。一个可能的解决方案来检查:Eclipse rcp 有助于Eclipse RCP中的状态栏/修剪,eclipse-rcp,Eclipse Rcp,我需要在Eclipse应用程序的状态栏中显示状态指示器。我不能通过ApplicationWindowAdvisor(另一个团队拥有核心产品)进行贡献,但我确信我应该能够通过扩展点进行贡献。尽管谷歌搜索了很多,我还是找不到任何描述如何做这件事的东西。一个可能的解决方案来检查: 您应该能够定义一个,以便能够添加到核心产品功能中。(再举一个例子) 其想法是为核心插件添加功能。您的贡献可能会以这种方式合并到该主产品。在org.eclipse.ui.menu贡献扩展中,使用“toolbar:org.ecl
您应该能够定义一个,以便能够添加到核心产品功能中。(再举一个例子)
其想法是为核心插件添加功能。您的贡献可能会以这种方式合并到该主产品。在org.eclipse.ui.menu贡献扩展中,使用“toolbar:org.eclipse.ui.trim.status”作为位置URI。您可以将命令/自定义控件添加到状态栏。首先,将状态栏添加到application.e4xmi(应用程序>窗口和对话框>修剪窗口>修剪栏>窗口修剪(底部)>工具栏>工具控件)
@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);
}
}
创建.java类并在工具栏中提供地址(类uri)
e4状态栏实现不同于e3实现。在e4中,您可以使用eventbroker向状态栏发送文本(信息)
@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..");