Hallo zusammen,
ich habe schon den ganzen Tag bei Google nach meinen Problemen gesucht, aber ich weiß nicht so recht wie ich es in Worte fassen soll, dass Google mir helfen kann. Daher muss ich jetzt doch mal ins Forum schreiben:
Ich habe ein Composite
dort setze ich ein Tree auf die linke Seite :
und auf der rechten Seite möchte ich die Eigenschaften die hinter dem jeweiligen TreeItem stehen, anzeigen.
Also Vergleichbar mit Verzeichnissen auf der linken Seite und rechts sollen die Dateien des ausgewählten Verzeichnis erscheinen (ist nur ein Beispiel, ich will das nicht mit Dateien usw machen)
Dann habe ich
also das auf der rechten Seite defaultmäßig ein Label NAME steht und ein Textfeld mit dem Wert 123.
Wenn nun auf ein Item geklickt wird, wird die Funktion loadPropertyPage aufgerufen (funktioniert auch).
Nun möchte ich aber in dieser Methode komplett neue Labels und Textfelder auf der rechten Seite erzeugen.
Ich hatte das so gedacht:
Das mit der Hintergrundfarbe funktioniert (ist aber eigentlich nur ein Test gewesen), aber ich sehe kein ID Label, sondern nur das vorherige NAME und Textfeld mit 123.
Woran mag das liegen? Mache ich da einen Denkfehler?
Wäre über jeden Tipp dankbar.
Viele Grüße,
Hauke
ich habe schon den ganzen Tag bei Google nach meinen Problemen gesucht, aber ich weiß nicht so recht wie ich es in Worte fassen soll, dass Google mir helfen kann. Daher muss ich jetzt doch mal ins Forum schreiben:
Ich habe ein Composite
Code:
Composite composite = new Composite(tabFolder, SWT.NONE);
composite.setLayout(new FillLayout(SWT.HORIZONTAL));
dort setze ich ein Tree auf die linke Seite :
Code:
final Tree tree = new Tree(composite, SWT.LEFT);
und auf der rechten Seite möchte ich die Eigenschaften die hinter dem jeweiligen TreeItem stehen, anzeigen.
Also Vergleichbar mit Verzeichnissen auf der linken Seite und rechts sollen die Dateien des ausgewählten Verzeichnis erscheinen (ist nur ein Beispiel, ich will das nicht mit Dateien usw machen)
Dann habe ich
Code:
final Composite right = new Composite(composite, SWT.NONE);
GridLayout rightLayout = new GridLayout(2, true);
rightLayout.horizontalSpacing = 40;
Color red = Display.getDefault().getSystemColor(SWT.COLOR_RED);
right.setBackground(red);
right.setLayout(rightLayout);
GridData gd = new GridData();
gd.widthHint = 100;
Label x = new Label(right, SWT.NONE);
x.setText("Name");
Text t1 = new Text(right, SWT.RIGHT);
t1.setText("123");
t1.setLayoutData(gd);
tree.addListener (SWT.MouseDown, new Listener () {
public void handleEvent (Event event) {
Point point = new Point (event.x, event.y);
TreeItem item = tree.getItem (point);
if (item != null) {
loadPropertyPage(item, right);
}
}
});
also das auf der rechten Seite defaultmäßig ein Label NAME steht und ein Textfeld mit dem Wert 123.
Wenn nun auf ein Item geklickt wird, wird die Funktion loadPropertyPage aufgerufen (funktioniert auch).
Nun möchte ich aber in dieser Methode komplett neue Labels und Textfelder auf der rechten Seite erzeugen.
Ich hatte das so gedacht:
Code:
private void loadPropertyPage(TreeItem item, Composite right) {
GridLayout rightLayout = new GridLayout(2, true);
rightLayout.horizontalSpacing = 40;
Color blue = Display.getDefault().getSystemColor(SWT.COLOR_BLUE);
right.setLayout(rightLayout);
right.setBackground(blue);
GridData gd = new GridData();
gd.widthHint = 100;
Label x = new Label(right, SWT.NONE);
x.setText("ID");
}
Das mit der Hintergrundfarbe funktioniert (ist aber eigentlich nur ein Test gewesen), aber ich sehe kein ID Label, sondern nur das vorherige NAME und Textfeld mit 123.
Woran mag das liegen? Mache ich da einen Denkfehler?
Wäre über jeden Tipp dankbar.
Viele Grüße,
Hauke