Robert Wilson
Robert Wilson

Reputation: 851

Contributing to the Status Bar/Trim in Eclipse RCP

I have a requirement to show a status indicator in the status bar of an Eclipse application. I can't contribute through the ApplicationWindowAdviser (another team owns the core product), but I feel sure that I should be able to contribute through an extension point. Despite much googling, I can't find anything describing how to do this.

Upvotes: 8

Views: 4417

Answers (3)

Ömer Sezer
Ömer Sezer

Reputation: 2659

Firstly, adding status bar to application.e4xmi (Application > Windows and Dialogs > Trimmed Window > TrimBars > WindowTrim (Bottom) > Toolbar > Tool Control)

Create .java class and give address in toolbar (class uri).

e4 status bar implementation is different than e3 implementation. In e4, you can use eventbroker to send text (info) to status bar.

@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);
        }   
    }

Also, don't forget add eventbrokersender to another java class.

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

Upvotes: 0

Prakash G. R.
Prakash G. R.

Reputation: 4892

In the org.eclipse.ui.menuContributions extensions, use "toolbar:org.eclipse.ui.trim.status" as the locationURI. You can contribute commands/custom controls to the status bar.

Upvotes: 10

VonC
VonC

Reputation: 1324178

A possible solution to check:
You should be able to define a fragment in order to be able to add to the core product functionality. (see here for another example).

The idea is to add functionality to the core plugin. May be your contribution can then merged to that main product that way.

Upvotes: 1

Related Questions