2016-05-27 9 views
0

habe ich eine Fenster-Ordnung - TopEclipse-e4: eine 3-teilige Fensterverkleidung zu schaffen, ohne Text in Werkzeugsteuerung Ändern der Größe

jetzt füge ich hinzu 3 Tool Control

zunächst nur einen SWT-Text enthalten soll und nicht Größe ändern immer ...

wenn ich jedoch etwas Text eintippe und die Größe meines Fensters ändere, passt es automatisch den SWT-Text an den Text an, was nicht der Fall sein sollte.

Also wie kann ich dem Tool Control, oder dem Composite, oder dem Text die richtige Größe geben und es sagen, NICHT die Größe zu ändern !?

public class TrimBarSearch { 

@Inject 
ISearchService searchService; 

private Text txtSearch; 
private Composite composite; 

@Inject 
public TrimBarSearch() { 

} 

@PostConstruct 
public void createGui(final Composite parent) { 

    parent.setLayoutData(new GridLayout(3, false)); 
    composite = new Composite(parent, SWT.NONE); 

    Point xy = new Point(300, 15); 
    Point sizeComposite = new Point(310, 25); 

    composite.setLayout(new GridLayout(1, false)); 
    composite.setSize(sizeComposite); 
    txtSearch = new Text(composite, SWT.FILL); 
    txtSearch.setSize(xy); 
    txtSearch.setText(""); 

    // TODO fix resizing-problem 
    parent.getShell().addListener(SWT.Resize, e -> { 
     //maybe here?! 
    });} 

Antwort

0

Versuchen Sie nie, und mischen Sie Layouts mit setSize - es funktioniert nicht, das Layout Ihrer Größe überschreiben.

Stattdessen können Sie einen Breitenhinweis für den Text in GridData für den Text angeben. Statt:

txtSearch.setSize(xy); 

Verwendung:

GridData data = new GridData(SWT.BEGINNING, SWT.CENTER, false, false); 
data.widthHint = 300; 
txtSize.setLayoutData(data);