2010-05-11 5 views
6

Ich habe eine Statusanzeige in der Statusleiste einer Eclipse-Anwendung anzuzeigen. Ich kann nicht durch den ApplicationWindowAdviser beitragen (ein anderes Team besitzt das Kernprodukt), aber ich bin sicher, dass ich über einen Erweiterungspunkt beitragen könnte. Trotz vielem Googeln kann ich nichts finden, das beschreibt, wie man das macht.Beitrag zur Statusleiste/Trimmen in Eclipse RCP

Antwort

1

Eine mögliche Lösung zu überprüfen:
Sie sollten zu definieren Lage sein, eine fragment um in der Lage sein, um das Kernprodukt Funktionalität hinzuzufügen. (see here für ein anderes Beispiel).

Die Idee ist, Funktionalität zum Kernplugin hinzuzufügen. Vielleicht kann Ihr Beitrag dann so zu diesem Hauptprodukt zusammengeführt werden.

8

Verwenden Sie in den Erweiterungen org.eclipse.ui.menuContributions "toolbar: org.eclipse.ui.trim.status" als locationURI. Sie können der Statusleiste Befehle/benutzerdefinierte Steuerelemente hinzufügen.

0

Zum einen Statusleiste Hinzufügen application.e4xmi (Application> Fenster und Dialoge> getrimmte Fenster> TrimBars> WindowTrim (unten)> Toolbar> Tool Control)

.JAVA Klasse erstellen und Adresse in Symbolleiste geben (Klasse uri).

Die e4-Statusleistenimplementierung unterscheidet sich von der e3-Implementierung. In e4 können Sie Eventbroker verwenden, um Text (Informationen) an die Statusleiste zu senden.

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

Vergessen Sie auch nicht, eventbrokersender zu einer anderen Java-Klasse hinzuzufügen.

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