Kolumne

Lagebericht Eclipse-IDE: Bessere Tabellen dank NatTable

Simon Scholz, Lars Vogel

NatTable ist eine erweiterte, selbstgezeichnete Tabellenimplementierung, die auf dem Standard Widget Toolkit (SWT) von Eclipse basiert. Sie erfreut sich großer Beliebtheit, denn sie bietet viele Features an, die übliche Tabellenimplementierungen nicht aufweisen. NatTable ist nicht weniger als die featurereichste Tabellenimplementierung für Java-User-Interfaces, die uns bekannt ist.

Anders als bei Standardtabellen ist es mit NatTable möglich, unterschiedliche Größen und Kombinationen von Tabellenköpfen und -zellen zu erstellen. Die Spalten der Tabelle lassen sich einzeln filtern, wobei die Art des Widgets für die Filterung beliebig sein kann. Es können etwa Text, Autocomplete-Felder, Dialoge und mehr sein. Aber auch das Filtern aller Spalten gleichzeitig, inklusive eines Highlightings der Treffer, ist möglich (Abb. 1). Man kann mit Painter jede einzelne Zelle individuell gestalten. Wenn man NatTable in einer Eclipse-4-Anwendung nutzt, ist es sogar möglich, das Styling deklarativ via CSS zu gestalten (Abb. 2). Zum Editieren lassen sich diverse Controls, wie Combos, Nebula Widgets oder auch Custom Widgets nutzen.

Abb. 1: Gesamtfilterung mit Highlighting

Abb. 2: Individuelles Styling mit Cell Paintern

Natürlich ist es auch möglich, Baumstrukturen mit NatTable anzuzeigen oder sie dynamisch zur Laufzeit durch Gruppierungen zu erzeugen. In Abbildung 3 wurde die Spalte Gender via Drag and Drop in die obere Gruppierungsleiste gezogen. Durch einen Rechtsklick auf die Gender-Gruppierung kann man die Gruppierung auflösen, und es wird wieder eine normale Tabelle dargestellt. Man kann allerdings auch noch weitere Spalten via Drag and Drop zur Gruppierung nutzen und somit eine weitere Ebene in der Baumstruktur erzeugen.

Abb. 3: Gruppierung von Spalten via Drag and Drop und Zusammenfassung von Werten

Das Einfügen von individuellen Zusammenfassungen, sowohl am Zeilen- als auch am Spaltenende, ist ebenfalls möglich. Eine Zusammenfassung lässt sich auch auf der Ebene der Gruppierung anzeigen. Abitionierte Entwickler erweitern NatTable ständig, wodurch es immer mehr Features für Poweruser bekommt, die das Arbeiten mit Excel gewohnt sind. So funktioniert mittlerweile nicht nur der Excel-Export einer Tabelle, sondern es funktionieren auch Excel-Features, wie die Nutzung von Funktionen innerhalb von Zellen. Welche Funktionen es konkret gibt und wie man eigene implementieren kann, ist in den Release Notes von Version 1.4 beschrieben.

Zudem kann man ab Version 1.5 auch Tabellen mit verschiedenen Optionen drucken. Im Multi Print Example der NatTable-Beispiele, bei dem mehrere unterschiedliche Tabelleninstanzen gedruckt werden, findet man etwa Optionen für das Zusammenführen von Tabellen und das Wiederholen von Tabellen- bzw. Spaltenheadern. Generell ist durch das flexible API nahezu alles möglich, es gibt überall Einstiegspunkte, um eigene Anforderungen einzubauen.

Set-up zum Nutzen von NatTable

Da eine Nebula NatTable auf einem SWT Canvas basiert, ist es aktuell lediglich möglich, eine NatTable im Zusammenhang mit SWT zu nutzen. Die entsprechenden Bibliotheken der aktuellen Version (1.4) stehen auf der P2-Updateseite zur Verfügung. Dort kann man die Bibliotheken herunterladen, die man für die Nutzung dieser SWT-Applikationen benötigt. Alternativ kann man auch die Eclipse-P2-Mechanismen nutzen, um die Bibliotheken in die Target Platform einer Eclipse-RCP-Applikation aufzunehmen. Das NatTable-Core-Feature und SWT (enthalten im Eclipse SDK) reichen aus, um NatTable zu nutzen. Die *-Extensions-Features bieten zusätzliche Funktionalität (Tabelle 1).

Extension Beschreibung
Eclipse 4 CSS Styling und Eclipse-4-Spezifisches, wie der ESelectionService
GlazedLists Vereinfachter Umgang mit Tabellen, auch verbreitet für Swing-Applikationen
Nebula Verwendung von weiteren Eclipse Nebula Widgets innerhalb der NatTable-Tabelle
POI Apache POI für Excel-Operationen, wie einem Excel-Export

Tabelle 1: Die *-Extensions-Features

Fazit

Generell fällt die Wahl vieler Unternehmen, die Java für Desktopclients nutzen, auf Eclipse 4 RCP als Basisframework für den Desktop. Neben den vielen modernen und neuen Eclipse-4-Features spielt auch das Vorhandensein eines umfangreichen Tabellenframeworks wie NatTable eine große Rolle für die Wahl von Eclipse als Plattform für das eigene Projekt oder Unternehmen. Wir hoffen, dass wir das Interesse geweckt haben, diese tolle Tabellenimplementierung selbst zu testen. Das Nebula-NatTable-Projekt heißt auch Patches willkommen, falls doch mal ein Feature fehlt und gewünscht wird.

Geschrieben von
Simon Scholz
Simon Scholz ist Eclipse Platform und e4 Committer. Er entwickelt auch am PDE, und Eclipse Gradle Tooling mit und nutzt seine langjährige Eclipse-RCP- und Plug-in-Erfahrung für Kundenimplementierungen, Eclipse-RCP-Workshops und Schulungen. Zudem hält er regelmäßig Vorträge auf Softwarekonferenzen bzgl. verschiedener Eclipse-Technologien.
Lars Vogel
Lars Vogel
Lars Vogel ist Geschäftsführer der vogella GmbH, die Kunden im Bereich Eclipse, Android und anderen Themen unterstützt. Als Project-Management-Committee-Mitglied, Eclipse-Projektleiter und Committer hilft er dem Eclipse-Projekt. E-Mail: lars.vogel@vogella.com
Kommentare
  1. Dirk2017-05-02 08:29:47

    Wie oft ist die Entwicklung schneller als die Veröffentlichung eines Artikels. Die aktuelle Version der NatTable ist 1.5. :)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.