Layout
eclipse RCP (III)
Technikecke
Tags: Eclipse, JAVA, programmierenIch hab’s zwischenzeitlich wieder dran gegeben – SWT hat mir ordentlich den Nerv geraubt. Ich schrieb ja im letzten Beitrag schon:
Das Konzept bietet “Composites”. Diese können/sollten über Layouts verfügen. Man kann Composites beliebig auf einer View geschachtelt platzieren. So kann man mehrspaltige Layouts mit Einspaltigen und wiederum Mehrspalitigen kombinieren. Das bedeutet aber verschachtelte Layer-Ebenen für die Ausrichtung. Und auf diese “Composites” platziert man dann die “Controls” – also beispielsweise die Widgets für Eingaben, Label oder Listen. Die wiederum ebenfalls über Layouts verfügen sollten, damit diese auch einigermaßen angehübscht auf der View später zu sehen sind.
Grundsätzlich ist mir das Konzept nach dem Lesen dieses Artikels deutlich klarer geworden. Aber – die Klarheit hat noch reichlich trübe Stellen: Für die Darstellung einer Reihe von Label/Text Kombinationen habe ich mich – korrekterweise – für das FormLayout entschieden. Wie ich schrieb, jedes Composite wird von einem darüber .. darunter .. (whatever) liegendem Composite beschrieben.
| Gut, das Gebilde – hier links zu sehen – dürfte wohl nicht das gewünschte Ergebnis meiner Gehversuche gewesen sein. Irgendwas ist dort schief gelaufen. Studenlang stellte sich mir die Frage: Was?
Wenn ich nun, wo ich die Lösung kenne, auf das Gebilde schaue, dann sieht man das auch auf den ersten Blick. Aber wenn man noch im Trüben fischt, dann sieht man den Wald vor lauter Bäumen nicht. Ich war der naiven Annahme erlegen, das alle FormData Objekte sich der maximalen |
Breite des äußeren Composites bemächtigen. Da verliert man dann nämlich auch den Glauben an die Prozentrechnung. Wenn ich jedem Label (also das Links) 30% der gesamten Breite zuweise, dann schaut man schon verwirrt, wenn 30% eben unterschiedlich breit sind. Der entscheidende Tipp kam dann: Schau doch mal mit SWT.BORDER, ob die Zeilen wirklich alle gleich breit sind. Das Bild belegt: Nö!
| Das, was man nun rechts sieht, sieht doch entscheidend besser aus. Das war auch in etwa der Plan. Composites sind ja schön und gut. Man kann nicht zu wenig davon haben um seine Objekte zu layouten. Aber zu viel ist anscheinend auch nicht gut. Klar das jedes FormLayout unterschiedlich breit ist, wenn man dem Layout ein neues Composite zu Grunde legt. Und das dann auch noch für jede Zeile. Also merke: Alle Objekte, die in einem Form angezeigt werden sollen, propft man in ein Composite. Danke, |
hab ich nun auch endlich kapiert. Vor allem die Abhängigkeit von Objekten des FormLayout zueinander waren anfangs auch etwas abstrakt. Aber wer lesen kann, der ist klar im Vorteil. Irgendwann eröffnet sich dann einem auch, das man auch Höhenabstände einbauen sollte. Sonst liegen alle Objekte direkt (auf einer Fläche) untereinander. Machte irgendwie auch keinen Sinn.
SWT ist eben nicht nur ein Try and (t)error Framework, nein – wenn man denn mal liest, versteht, liest und in sich geht, dann kann man auch schneller und mit deutlich weniger Tries an das erhoffte – erwartete – Ergebnis kommen. Dann kann ich mich ja endlich wieder angenehmen Themen der Programmierung widmen.








