Page 1 of 1

Können eigene, komplexe JVx Controls gebaut werden?

PostPosted: Fri Nov 16, 2012 7:20 pm
by johnit
In den bei uns eingesetzten Frameworks haben wir ein komplexes Control für die Erfassung und für die Prüfung von Adressen gebaut.

Die einzelnen Teile des Adressen-Controls stehen miteinander in Beziehung. Daten werden über WebServices geladen. Bei Eingabe der PLZ wird der Ort übernommen. Ist die Straßeneingabe nicht korrekt oder eindeutig wird entweder die Schreibweise korrigiert oder es wird eine Liste der möglichen Treffer angezeigt. Dabei wird natürlich wieder die PLZ bzw. der Ort berücksichtigt. Es können nur Hausnummern erfasst werden, die in der betreffenden Straße existieren. usw. usw.

Re: Können eigene, komplexe JVx Controls gebaut werden?

PostPosted: Fri Nov 16, 2012 7:24 pm
by Support@SIB
Ja.

  1. Sie haben die Wahl ob Sie UI unabhängige Controls erstellen wollen oder fix in einer Technologie bleiben, z.B. nur Swing.
  2. Sie können Sie eigene Controls mit vorhandenen Controls erstellen.
    Grundsätzlich ist JVx in diesem Punkt nicht anders wie alle anderen GUI Frameworks.

zu 1)

JVx abstrahiert ja die GUI Technologie und ermöglicht somit ohne das Sie ihren Source Code ändern, die Verwendung einer Applikation mit unterschiedlichen Technologien. Im Moment existiert eine Swing Implementierung und das WebUI mit Html/Ajax.

Von JVx wird der Zugriff auf die Technologie jedoch nicht eingeschränkt. Sie können zwischen mehreren Ansätzen wählen, z.B.: der Zugriff auf ein Swing JPanel

Code: Select all
UIPanel panTitle;

if (panTitle.getResource() instanceof JPanel)
{
((JPanel)panTitle.getResource()).setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.LIGHT_GRAY));
}


Mit getResource() erhalten Sie vollen Zugriff auf die zugrundeliegende Technologie!

UI unabhängiger können Sie mit UICustomComponent oder UICustomContainer arbeiten. Ein Beispiel hierfür liefert folgende Dokumentation: Benutzerdefinierte Komponenten

Wenn Sie UI unabhängige Komponenten verwenden möchten, müssen Sie für jede Technologie die Sie einsetzen möchten das IComponent Interface für Ihre Controls implementieren.

zu 2)

Wenn die einzelnen, bereits von JVx bereitgestellten, Komponenten (Button, Tabelle, Editoren, …) ausreichend sind, dann können Sie auch wie mit jedem anderen UI Framework beginnen Ihre Controls zu entwickeln.

Verwenden Sie z.B. ein UIPanel, setzen Sie ein UIFormLayout und fügen Sie Ihre Komponenten hinzu. Sie können bei valueChanged events jederzeit eine Validierung durchführen und somit das Eingabeverhalten „steuern“.

Als Resultat erhalten Sie ein wiederverwendbares Control.

Re: Können eigene, komplexe JVx Controls gebaut werden?

PostPosted: Fri Nov 16, 2012 7:29 pm
by johnit
Ich meine, die Variante zwei (eigene, aus bestehenden UI-Controls zusammengesetzte Controls mit Logik) werden wir öfters benötigen.

Für einen ersten Test habe ich in einem neuen Package eine neue Klasse (Address), die UIPanel erweitert, angelegt. In dieser Klasse habe ich weitere UI-Controls (UILabel und UIEditor) mit Hilfe von UIFormLayout im Parent angeordnet.