2017-09-14 7 views
1

Je crée une barre d'état pour mon application e4 rcp mais la barre d'état est trop petite.RCP E4 La barre d'état est trop petite

Dans mon Appliication.e4xmi est le suivant configuré:

Entretenu Fenêtre -> TrimBars -> Fenêtre Rogner (en bas) -> Barre d'outils -> Contrôle Tool (lien vers ma classe StatusBar)

liés StatusBar classe:

public class StatusBar { 

private Label label; 

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

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

@PostConstruct 
public void createControls(Composite parent) { 
    label = new Label(parent, SWT.LEFT); 
    label.setBackground(parent.getBackground()); 
} 

public void updateInterface(String message) { 
    try { 
     Display.getDefault().asyncExec(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        label.setText(message); 
       } catch (Exception e) { 
        logger.error(e.fillInStackTrace()); 
       } 
      } 
     }); 
    } catch (Exception exception) { 
     logger.error(exception.fillInStackTrace()); 
    } 
} 

View of the Statusbar

+0

Trop petit dans quel sens? Pas assez profond? Pas assez long? –

+0

La hauteur de la barre d'état est trop petite. – Darksmilie

Répondre

0

Vous n'avez pas besoin Toolbar pour un ToolControl. Placez le ToolControl en tant qu'enfant immédiat de la barre Trim.

Mettez l'étiquette dans un composite pour l'obtenir layed correctement:

@PostConstruct 
public void createGui(final Composite parent) 
{ 
    Composite body = new Composite(parent, SWT.NONE); 

    body.setLayout(new GridLayout()); 

    Label label = new Label(body, SWT.LEFT); 

    label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); 

    .... 
} 

Vous pouvez également spécifier une valeur de balise de stretch dans ToolControl definiton dans le e4xmi de rendre l'utilisation de contrôle tout l'espace horizontal disponible dans la barre de trim.

+0

Cela ne fonctionne pas et si je définis une LayoutData sur le corps, la barre d'état a la bonne taille mais j'obtiens un classcastexecption: java.lang.ClassCastException: org.eclipse.swt.layout.GridData ne peut pas être converti en org .eclipse.swt.layout.FillData – Darksmilie

+0

J'ai manqué que vous mettiez le ToolControl dans une barre d'outils - vous n'avez pas besoin de faire cela. Placez le ToolControl en tant qu'enfant de la barre Trim, aucune barre d'outils requise. –

+0

Cela fonctionne, merci. – Darksmilie