2010-05-11 16 views
6

Tengo un requisito para mostrar un indicador de estado en la barra de estado de una solicitud de Eclipse. No puedo contribuir a través de ApplicationWindowAdviser (otro equipo posee el producto principal), pero estoy seguro de que debería poder contribuir a través de un punto de extensión. A pesar de mucho Google, no puedo encontrar nada que describa cómo hacer esto.Contribuir a la barra de estado/Recorte en Eclipse RCP

Respuesta

1

Una solución posible comprobar:
Usted debe ser capaz de definir una fragment con el fin de ser capaz de añadir a la funcionalidad principal del producto. (see here para otro ejemplo).

La idea es añadir funcionalidad al complemento del núcleo. Puede ser que su contribución se pueda fusionar con ese producto principal de esa manera.

8

En las extensiones org.eclipse.ui.menuContributions, use "toolbar: org.eclipse.ui.trim.status" como locationURI. Puede contribuir comandos/controles personalizados a la barra de estado.

0

En primer lugar, la adición de barra de estado para application.e4xmi (Aplicación> ventanas y diálogos> Ventana recortado> TrimBars> WindowTrim (inferior)> Barra de herramientas> Herramienta de control)

Crear .java clase y darle la dirección en la barra de herramientas (clase uri).

e4 aplicación barra de estado es diferente a la aplicación e3. En e4, puede usar eventbroker para enviar texto (información) a la barra de estado.

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

Además, no olvides agregar eventbrokersender a otra clase de Java.

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