TableWrapLayout

TableWrapLayout ist ein gitterbasiertes Layout, das dem vielseitigen GridLayout von SWT stark ähnelt. Der Unterschied besteht darin, dass hier ein Layoutalgorithmus verwendet wird, der eher wie für HTML-Tabellen funktioniert. Es wird versucht, die angegebene Breite des Benutzerbereichs zu respektieren und die Tabelle zur Kompensierung vertikal auszudehnen.

Es gibt viele Ähnlichkeiten zwischen GridLayout und TableWrapLayout. Beide organisieren untergeordnete Elemente in Gittern. Beide verfügen Über Layoutdaten, die dem Layout Anweisungen darüber geben, wie die jeweiligen Steuerelemente zu behandeln sind. Beide können Hinweise darüber annehmen, welches Steuerelement auf überschüssigen Platz zugreifen soll, etc.

Ihr Ansatz für das Layout ist jedoch fundamental unterschiedlich. TableWrapLayout beginnt mit Spalten. Es wird eine Berechnung der minimalen, bevorzugten und maximalen Breite der jeweiligen Spalten durchgeführt. Diese Information wird verwendet, um überschüssigen Platz zuzuweisen. Darüber hinaus wird versucht, bei der Aufteilung des Platzes zwischen den Spalten fair vorzugehen, so dass es nicht zu übermäßigen Umbrüchen für einzelne Steuerelemente kommt.

Es ist möglich, GridLayout und TableWrapLayout zu mischen, aber die Verzweigung, in der GridLayout verwendet wird, ist diejenige, in der der Zeilenumbruch endet. Dies ist durchaus annehmbar, wenn kein Umbruch erwünscht ist (wenn das Verbundobjekt Steuerelemente enthält, die sowieso nicht umgebrochen werden können, wie z.B. Text, Schaltflächen, Baumstrukturen, etc.). Sie sollten jedoch einen unterbrechungsfreien Pfad vom Hauptteil des Formulars zu jedem Textsteuerelement haben, für das ein Umbruch durchgeführt werden soll.