Hallo,
ich bastel gerade an einer Oberfläche, bei der sich nach anwählen eines Elementes in einer Tabelle, auf dem Rest der Fläche ein spezielles Composite gezeichnet werden soll.
Der Aufbau ist dabei ungefähr wie folgt:
Parent Composite
SashForm
Group1 | Group2
Table | leeres Composite
Ich initialisier also die Group2 am Anfang mit einem leeren Stub. Nun habe ich, pro Item in der Tabelle, ein unterschiedliches Composite, welches angezeigt werden soll. Deswegen, habe ich den vorher angelegten Stub disposed, null gesetzt, das neue Composite angelegt (auf die Variable des Stubs), die Anzeige-Regeln (seine Größe u.s.w.) gesetzt und hinterher ein compositeTemplate.pack() gestartet...
Das Composite wird angezeigt, aber nicht richtig auf das Layout angepasst, es klemmt sich dann viel zu klein oben links in die Ecke - und ist somit nicht nutzbar.
Wenn ich nun das Fenster (es handelt sich um einen Eclipse RCP Editor) in seiner Größe verändere, oder die Gesamtanwendung resize, wird das Composite richtig angezeigt, aber eben erst dann.
Ich denke, das Größe verändern forciert jeweils ein neu-zeichnen der Oberfläche, allerdings habe ich auch schon verschiedene Sachen ausprobiert:
compositeTemplate.layout(true, true);
compositeTemplate.redraw();
compositeTemplate.update();
compositeTemplate.changed(compositeTemplate.getChildren());
compositeTemplate.pack();
Egal was ich versuche, es ändert nichts. Ich habe auch das direkte Parent-Object versucht, die Group2, allerdings mit dem selben (miß-)erfolg.
Gibt es da einen Trick? Oder eine saubere Methode?
Danke schon mal
ich bastel gerade an einer Oberfläche, bei der sich nach anwählen eines Elementes in einer Tabelle, auf dem Rest der Fläche ein spezielles Composite gezeichnet werden soll.
Der Aufbau ist dabei ungefähr wie folgt:
Parent Composite
SashForm
Group1 | Group2
Table | leeres Composite
Ich initialisier also die Group2 am Anfang mit einem leeren Stub. Nun habe ich, pro Item in der Tabelle, ein unterschiedliches Composite, welches angezeigt werden soll. Deswegen, habe ich den vorher angelegten Stub disposed, null gesetzt, das neue Composite angelegt (auf die Variable des Stubs), die Anzeige-Regeln (seine Größe u.s.w.) gesetzt und hinterher ein compositeTemplate.pack() gestartet...
Das Composite wird angezeigt, aber nicht richtig auf das Layout angepasst, es klemmt sich dann viel zu klein oben links in die Ecke - und ist somit nicht nutzbar.
Wenn ich nun das Fenster (es handelt sich um einen Eclipse RCP Editor) in seiner Größe verändere, oder die Gesamtanwendung resize, wird das Composite richtig angezeigt, aber eben erst dann.
Ich denke, das Größe verändern forciert jeweils ein neu-zeichnen der Oberfläche, allerdings habe ich auch schon verschiedene Sachen ausprobiert:
compositeTemplate.layout(true, true);
compositeTemplate.redraw();
compositeTemplate.update();
compositeTemplate.changed(compositeTemplate.getChildren());
compositeTemplate.pack();
Egal was ich versuche, es ändert nichts. Ich habe auch das direkte Parent-Object versucht, die Group2, allerdings mit dem selben (miß-)erfolg.
Gibt es da einen Trick? Oder eine saubere Methode?
Danke schon mal