YaJF (Yet another Java Framework)
Was ist YaJF?
YaJF (deutsch: noch so eine Rahmenstruktur für die Programmiersprache Java) ist das Fundament der IT-Systeme, die von MINARTEC angeboten werden. Der Eigentümer der Lizenz ist Bartosz Minartowicz.
YaJF ist vollständig in Java SE programmiert.
Als Datenbanksystem wurde MySQL 5 eingesetzt.
Ein charakteristischer Aspekt von YaJF ist ein in der Datenbank platziertes Repository, das die Eckdaten der graphischen Benutzeroberfläche und ihre Verknüpfung an die verschiedenen Tabellen in der Datenbank enthält.
Warum YaJF?
YaJF Framework wurde speziell als eine solide Basis für die Schaffung neuer Informationssysteme konzipiert. Es ermöglicht eine effiziente und gleichzeitig sichere Entwicklung von Datenbankanwendungen mit grafischer Benutzeroberfläche. Seine besonderen Vorteile sind:
-
Die Architektur enthält ein Repository, das die Erweiterung eines Systems ohne zu programmieren und kompilieren ermöglicht.
-
Programmierung in Java, die alle Möglichkeiten bereitstellt, die diese Programmiersprache auch bietet.
-
Die multilinguale Konstruktion ermöglicht eine bequeme Auswahl der Anwendungs-Sprache durch den Benutzer.
-
Breites Spektrum an peripherer Standardfunktionalität wie z.B. ein integrierter E-Mail-Client und mehrere Druckoptionen mit der Möglichkeit des Exports in viele Datei-Formate (PDF, XLS u.a.).
Technische Komponenten
-
Java SE.
-
MySQL 5.
-
Repository in einer Datenbank. Es enthält Eckdaten über die graphische Benutzeroberfläche.
-
JavaHelp System (http://java.sun.com/products/jfc/tsc/articles/javahelp). Es ist ein in YaJF integriertes Programm, das in der praktischen Anwendung einen sowohl bei der Entwicklung als auch bei der Nutzung bequemen Zugang zur Kontextsensitiven-Hilfe bietet. Der jeweilige Hilfetext wird per F1-Taste oder durch einen Klick auf die Hilfe-Schaltfläche in der Symbolleiste (Toolbar) aufgerufen. 100% Java.
-
JavaMail System (http://www.oracle.com/technetwork/java/javamail). Es ist ein in YaJF integriertes Programm, das E-Mails versenden und empfangen kann. 100% Java.
-
Logging. Es ist eine Struktur, deren Aufgabe es ist, die im System aufgetretenen und abgefangenen Ausnahmezustände zu kanalisieren. Beim Auftreten eines Programmfehlers wird dieser abgefangen und in der Logdatei YajfLogFile.log gespeichert oder/und als E-Mail verschickt. Diese Struktur ermöglicht eine schnelle Lokalisierung und Reaktion auf einen aufgetretenen Fehler. Logging ist ein integraler Bestandteil der Programmiersprache Java.
-
SSL (Secure Sockets Layer). Diese sichere Verbindung ist ein integraler Bestandteil von Java und MySQL.
-
JCalendar (http://www.toedter.com/en/jcalendar). Es ist eine zusätzliche Komponente, die in YaJF integriert wurde mit dem Ziel eine bequeme Datumsauswahl zu bieten. 100% Java.
-
Look & Feel. Die Struktur der Sprache Java bietet eine sehr komfortable Möglichkeit, das Aussehen des Programms zu ändern. Darüber hinaus gibt es eine Option, weitere Designs der Benutzeroberfläche, die nicht standardmäßig zu Java gehören, zu nutzen. Es gibt frei verfügbare Look & Feels (Open Source) sowie kommerzielle Produkte zum Dazukaufen.
Ein Überblick über die Funktionalität
-
Die gute Ergonomie von YaJF drückt sich in flüssigen und logischen Abfolgen der getätigten Aktionen aus.
-
Transparenz durch eine einheitliche (gleichbleibendes Schema der Toolbar und der Screens) und flache Struktur der Benutzeroberfläche. Dies bedeutet, dass die gewünschte Funktion direkt aufgerufen werden kann, anstatt durch die Öffnung vieler verschachtelter Fenster.
-
Online-Hilfe. Durch Drücken der F1-Taste oder Klicken der Hilfe-Schaltfläche in der Symbolleiste (Toolbar) wird je nach Kontext der Hilfetext aufgerufen.
-
Ein integrierter E-Mail-Client. Dadurch ist jede auf der Basis von YaJF erstellte Applikation in der Lage E-Mails zu senden und zu empfangen.
-
Menü in Baumstruktur. Alle verfügbaren Funktionen und Optionen sind ausschließlich aus diesem Menü aufrufbar. Es wurde bewusst auf das klassische Pull-Down-Menü verzichtet.
- Task-Panel. Es ist eine vertikale Leiste auf der rechten Seite der Anwendung. Dies ist der Ort, um die Standard-Funktionen eines jeden Screens beliebig zu erweitern.
Task-Panel mit vier Optionen
- Beliebige Filter-Master-(Multi)-Detail-Strukturen werden unterstützt.
Master-Only
Master-Detail
Master-Multi-Detail
Filter-Master-Detail. Erst nach der Eingabe der Filters (gelbes Feld oben) erfolgt die Selektion der gewünschten Daten.
- YaJF Framework besitzt standardmäßig die Benutzer– und Profilverwaltung.
Screen Benutzer
Screen Profile. Die im unteren Bereich sichtbare Baumstruktur spiegelt im Original die Baumstruktur des Menüs wider.
- Look & Feel zur Auswahl. Dank Java ist es sehr einfach, der Applikation eine individuelle Note der Benutzeroberfläche zu geben.
Nimbus Look & Feel (standardmäßig in Java dabei)
Lipstik Look & Feel (http://sourceforge.net/projects/lipstiklf).
Napkin Look & Feel (http://napkinlaf.sourceforge.net).
- Mit einem Schieberegler in der unteren rechten Ecke der Applikation lässt sich die Schriftartgröße zur Laufzeit des Programmes frei wählen.
Font-Zoom
-
Beliebige Benutzersprache. Framework YaJF ist multilingual. Um eine neue Sprache einzuführen braucht man lediglich die Übersetzung, Programmieren ist nicht erforderlich.
-
Über jeder Spalte in jeder Tabelle befindet sich ein Filterfeld. Deshalb kann man sehr einfach und effektiv die benötigten Daten beliebig selektieren.
- Jede Spalte in jeder Tabelle lässt sich einfach ein- und ausblenden. Dies geschieht mit einem rechten Mausklick auf das Symbol in der rechten oberen Ecke jeder Tabelle.
Die verfügbaren Spalten im Screen Personen
- Ein persönliches Hintergrundbild kann eingestellt werden.
Hintergrundbild
-
Alle Benutzereinstellungen werden in der Datenbank festgehalten, und zwar völlig unabhängig vom Rechner, auf dem man arbeitet. Mit anderen Worten: Meine individuellen Einstellungen sind von keinem konkreten Computer und keinem Betriebssystem abhängig.
- Die Register-Tabs lassen sich an beliebiger Stelle (oben, unten, rechts, links) platzieren
Anordnung der Register-Tabs auf der linken Seite
- Die einzelnen Screens können auch als interne Fenster angezeigt werden
Interne Fenster
- Komplexe Reports mit Vorschau, Barcodes und der Möglichkeit des Exportes in folgende Datei-Formate: PDF, RTF, HTML, XML, XLS, ODT, DOCX und CSV
Auftrag Report
- Verschiedenartige Diagramme stehen zur Auswahl mit der Möglichkeit diese direkt auszudrucken, zu kopieren oder als eine PNG-Datei zu speichern.
Diagramme
-
Beim Auftreten eines Ausnahmezustandes in der Anwendung kann der Support sofort und vollautomatisch per E-Mail benachrichtigt werden
- YaJF lässt sich auf vielen Betriebssystemen installieren, z.B. MS Windows und Linux.
Wie funktioniert das?
Das Fundament ist die MySQL 5-Installation auf dem Server oder lokal und die lokale Java 6 SE-Installation.
Direkt nach der Installation stehen in YaJF die folgenden Standard-Funktionen zur Verfügung:
- Profilverwaltung: Das Profil Administrator ist schon vordefiniert.
- Benutzerverwaltung: Der Benutzer Administrator ist schon vordefiniert.
- Benutzer Einstellungen
- Dokumentenarchiv
- Entwicklungs Zone.
Es sieht wie folgt aus:
Das Aussehen der YaJF Benutzeroberfläche am Anfang eines jeden Projektes
In MySQL befindet sich eine Datenbank (yajf_db), die alle von YaJF selbst benötigten Tabellen, Trigger, Prozeduren, Funktionen etc. enthält.
Als Nächstes wird die erforderliche kundenspezifische Funktionalität erstellt. Dies geschieht in folgenden Schritten:
-
Eine neue, kundenspezifische Datenbank (systemname_db) zusammen mit den notwendigen Tabellen, Prozeduren etc. wird erstellt.
-
Die gewünschte kundenspezifische Funktionalität wird zunächst im Menü abgebildet.
- Mit Hilfe des Repository (Schaltfläche Repository in der Symbolleiste) werden zu jeder Position im Menü die entsprechenden Fenster und deren Inhalte definiert. Der Repository-Inhalt spiegelt schematisch die Anordnung der Tabellen, Felder, Diagramme etc. im betroffenem Screen wider.
Repository vom Screen Benutzer
Repository vom Screen Benutzer – ein Object (hier: TextField) wird hinzugefügt
-
Zusätzliche Funktionalität, die keine Interaktion mit dem Benutzer erfordert, wird anhand der YaJF-API realisiert.
-
Zusätzliche Funktionalität, die eine Interaktion mit dem Benutzer erfordert, wird in Form von neuen Positionen in den Task-Panel eingefügt (s.o. Task-Panel).
Allen an YaJF Interessierten, erteile ich gerne weitere Auskünfte. Dazu lade ich herzlich ein.