SwingForms Development Framework

Release Candidate von SwingForms verfügbar!

SwingForms, ein neues RAD-Tool von Nonne & Schneider, steht kurz vor der Freigabe. Weiterentwickelt aus einem internen Prototyping-Werkzeug, hat sich die Nützlichkeit von SwingForms für die Anwendungsentwicklung mit Java bereits in ersten Einsätzen erwiesen. Ein Release Candidate kann jetzt heruntergeladen und evaluiert werden.

SwingForms-Installation Deutsch  Dateigröße 78.9 KB Download

SwingForms 1.0RC2 Installation  Dateigröße 10.99 MB Download

SwingForms ist ein schlankes Entwicklungswerkzeug, mit dem sich komfortabel die Grundlage für eine datenbankgestützte Java-Anwendung erstellen lässt. Besonders gut eignet es sich in folgendem Rahmen:

  • Desktop-Anwendung mit Swing-Oberfläche (Rich Client)
  • Zwei-Schichten-Architektur mit Datenbank-Anbindung mittels JDBC
  • bei Verwendung der für Geschäftsanwendungen typischen Logik Suche-Trefferauswahl-Bearbeitung.

SwingForms umfasst eine Bibliotkek und ein interaktives, in Java geschriebenes Entwicklungstool, den Generator. Eine zusätzlich installierbare Demo-Anwendung vermittelt einen Eindruck vom Aufbau einer SwingForms-Anwendung. Produktdetails können dem enthaltenen Benutzerhandbuch entnommen werden.

Die SwingForms-Bibliothek enthält mächtige Klassen, die die Erstellung von "Modulen" zur parametrisierten Suche, zur Trefferanzeige und zur Bearbeitung von Trefferdaten stark vereinfachen.
In die zugrunde liegende Model-/View-Architektur werden einfach konkrete Ausprägungen von Modul-Bausteinen "eingestöpselt", so z.B.

  • die Beanklasse, die zum Halten der Suchgrößen dient
  • die Beanklasse, die für Treffersätze benutzt wird
  • die Beanklassen, die nötig sind, um die zu einem Treffer gehörenden Daten zu repräsentieren und zu bearbeiten
  • "DataAdapter"-Klassen, die die zur Suche und Bearbeitung erforderlichen lesenden und schreibenden Datenbank-Operationen festlegen
  • die "Logic"-Klasse, in der die Geschäftslogik implementiert wird
  • das GUI des Moduls, das wahlweise in ein Fenster, ein InternalFrame oder eine TabbedPane integriert werden kann.

Data Binding

GUI und Datenschicht sind klar voneinander getrennt. Zur Koppelung wird die unter der BSD-Lizenz stehende "JGoodies Binding"-Bibliothek genutzt.

Datenvalidierung

Die Validierung von Datenänderungen stützt sich auf die "JGoodies Validation"-Bibliothek.
Die Anwendung kann auf sämtliche Einfügungen, Löschungen oder Änderungen in den Daten reagieren.

Internationalisierung

Sowohl die Klassen der SwingForms-Laufzeitbibliothek als auch der generierte Code sind auf Grund der Verwendung von ResourceBundles voll lokalisierbar.

Logging

Zum Logging von Fehlersituationen wird das in der Java-Bibliothek enthaltene java.util.logging-Paket genutzt.

Entwicklungstool

Ausgangspunkt der Entwicklung ist das Datenbankschema, wobei SwingForms bisher mit den Datenbanksystemen IBM DB2, IBM Informix, Microsoft SQL Server, Oracle, aber auch Apache Derby und MySQL zum Einsatz kam.

Zu einzelnen Tabellen lassen sich mit Hilfe des Tools Entwürfe für Beans erstellen. Diese können anschließend modifiziert und um eigene Attribute erweitert werden, wobei sich auch relationale Beziehungen durch Listen-wertige Attribute abbilden lassen.

Generator-domain.png

Auf Basis der Beanklassen können auch für die anderen oben genannten Modulbausteine funktionsfähige Code-Entwürfe generiert werden, in die sowohl die Metainformation der Datenbank als auch vom Entwickler vorgegebene Konfigurations- und Zusatzinformation eingehen. Dabei unterstützt das Tool auch die Bereitstellung der zur Internationalisierung benötigten Ressourcen.

Generator-library.png


Für die GUI-Vorlage ("PanelBuilder-Klasse") kann zwischen zwei alternativen Ansätzen zum Aufbau der Oberfläche gewählt werden, die beide das FormLayout aus der "JGoodies Forms"-Bibliothek nutzen:

  • ausschließlich strukturierter Java-Code
  • die (zusätzliche) Auslagerung der zentralen "Container"-Komponenten (Suchbereich, Treffertabelle, Bearbeitungsbereich) in eine Designdatei (XML-Format), die mit dem (kommerziellen) GUI-Designer JFormDesigner bearbeitet werden kann. Die Designdatei kann dabei wahlweise nur beim Designprozess oder in Verbindung mit einer entsprechenden Runtime-Bibliothek von JFormDesigner auch als Codeersatz zum Einsatz kommen.

Die bei der Entwicklung getroffenen Festlegungen können jederzeit in eine Projektdatei gesichert und später wiederaufgegriffen und fortgeführt werden.

Grundstruktur einer Anwendung

Main-Klasse und Hauptfenster der Anwendung können vom Entwickler frei gestaltet werden.
SwingForms erwartet lediglich, dass gewisse Initialisierungen vorgenommen werden, die notwendig sind, bevor ein Modul in einem JFrame, einem JInternalFrame oder als Karteikarte eines JTabbedPane zur Verfügung gestellt werden kann (Logging, Preferences, Ressourcen, Datenbankverbindung).
Die Main-Klasse der Demo-Anwendung zeigt eine Möglichkeit auf, wie dies geschehen kann und wie man Actions zum Start von Modulen definiert.

Solive-Maske.png