Bevor Sie mit dieser Übung anfangen, müssen Sie ausführen.
In der Anwendung wird eine Liste aller im Verzeichnis vorhandenen Mitarbeitereinträge angezeigt. Die Einträge werden in einer JTable (employeesTable) mit sortierbaren Spalten angezeigt, die Angaben zum Nachnamen, Vornamen, der E-Mail-Adresse und der Mitarbeiter-ID enthalten. Zum Abrufen der Tabelleneinträge müssen Sie die Mitarbeitertabelle an ein Datenobjekt binden, das von der Datenquelle des Muster-Web-Services zurückgegeben wird.
In dieser Übung müssen Sie die folgenden beiden Schritte ausführen:
Zum Abrufen eines lokalen Datenobjekts, mit dem die employeesTable arbeiten kann, verwenden Sie den Visual Editor, um Ihrer Anwendung eine Datenquelle hinzuzufügen. Die Datenquelle stellt eine Verbindung zum Muster-Web-Service-Proxy her und erkennt die für die Anwendung verfügbaren Servicemethoden. Danach schließen Sie die Servicemethode getLightEmployeeRecord, die von der Datenquelle verfügbar gemacht wird. Abschließend binden Sie die employeesTable in Ihrer Anwendung an die Felder, die im Zeilendatenobjekt (lightEmployeeRecordRows) zurückgegeben werden.
Alle diese Datenquellen und Datenobjekte können Sie rasch und einfach mit Hilfe der im Java Visual Editor integrierten Binderklassen erstellen. Der Visual Editor bietet eine Reihe generischer Schnittstellen und Klassen, die in Ihr Projekt generiert werden, wenn Sie visuelle Komponenten an Daten-Factorys binden. Die Binderklassen werden standardmäßig in ein Paket mit dem Namen jve.generated generiert. Der Visual Editor stellt die Binderklassen als generische Implementierung bereit, die Sie entsprechend den Anforderungen Ihrer Anwendung weiter anpassen und erweitern können. In diesem Lerntext wird die hohe Leistung und Flexibilität der standardmäßigen Binderklassen bereits bei einfacher Nutzung veranschaulicht.
Wichtig: Es wird dringend empfohlen, dass Sie vor Beginn dieser Übung die folgenden Hilfethemen lesen. Diese Themen helfen Ihnen, die Funktionalität und Logik der Datenobjekte, Datenquellen und Binder des Java Visual Editors besser zu verstehen:
In diesem Lerntext verwenden Sie eine Web-Service-Datenquelle, mehrere unterschiedliche Datenobjekte und mehrere unterschiedliche Binder in Ihrer Anwendung. Wenn Sie Instanzen dieser Objekte zu dieser Anwendung hinzufügen, fügt der Visual Editor die erforderlichen Klassen in ein Paket mit der Bezeichnung jve.generated in Ihrem Projekt ein, wo Sie die die Datenbindungslogik erweitern, ersetzen oder neu programmieren können. Der Java Visual Editor bietet visuelle Unterstützung für die Bindungsobjekte, indem im unformatierten Bereich der Sicht "Entwurf" die Datenobjekte, Datenquellen und Binder angezeigt werden, die Ihre Anwendung verwendet. Der Visual Editor zieht zwischen visuellen Komponenten und den Datenobjekten und Datenquellen Linien, um die aktuellen Bindungen für ein beliebig ausgewähltes Objekt anzuzeigen.
Das folgende Diagramm bietet einen einfachen Überblick über die Interaktionen zwischen visuellen Komponenten, Bindern, Datenobjekten und Datenquellen. Die Anwendung, die Sie im Rahmen dieses Lerntexts erstellen, demonstriert eine etwas komplexere und kreativere Verwendung der Binder. In diesem Diagramm werden nicht exakt die Binder, Datenobjekte und Datenquellen in der Musteranwendung dargestellt, die Sie erstellen.
Abbildung 1. In diesem Diagramm ist eine einfache Beziehung zwischen visuellen Komponenten, Bindern, Datenobjekten und Datenquellen dargestellt.
In Abbildung 1 verfügt jede visuelle Komponente über einen eigenen Binder, der sie einem Datenobjekt oder, im Fall der Schaltfläche, einer Datenquelle zuordnet. Die Binder für die Textfelder binden das Feld an ein bestimmtes Merkmal des Datenobjekts. Sowohl das Zeilendatenobjekt als auch das Datenobjekt in diesem Diagramm rufen ihre Daten über Direktaufrufe eines Service der Datenquelle ab. Das Datenobjekt für die Textfelder verwendet einen Schlüsselwert aus der ausgewählten Zeile in der Tabelle als Argument für den Aufruf von Service2, der einen vollständigen Datensatz mit voraussichtlich weiteren Informationen über die ausgewählte Zeile in der Tabelle zurückgibt. Dieser vollständige Datensatz wird seinerseits als Argument für den Aktionsbinder der Schaltfläche verwendet, wenn Service3 aufgerufen wird. Bei diesem Service kann es sich um eine Methode handeln, die die in den Feldern eingegebenen Werte aktualisiert. Detailliertere Erläuterungen der Datenobjekte, Datenbinder und Datenquellen enthalten die weiter oben angegebenen Links.
Ihre Java-Anwendung benötigt für die Interaktion mit dem auf einem Server ausgeführten Web-Service einen Java-Proxy oder einen Client. Bei Verwendung einer WSDL-Datei können Sie mit Hilfe des Assistenten für Web-Service-Clients einen Java-Proxy in Ihr Java-Projekt generieren. Das Projekt MyDirectory enthält die Datei EmployeeDirectory.wsdl, die Sie zum Generieren dieses Proxys verwenden. Nach dem Generieren des Java-Proxys können Sie eine Datenquelle erstellen, die den Web-Service darstellt, und mit dem Binden visueller Komponenten beginnen.
Wichtig: In der WSDL-Datei, die in dieser Übung verwendet wird, wird davon ausgegangen, dass Sie den Web-Service auf einer lokalen Installation von WebSphere Application Server implementiert und den Standardport für localhost (http://localhost:9080) verwendet haben. Wenn Sie die EAR-Datei anders implementiert haben, müssen Sie die WSDL-Datei entsprechend bearbeiten, bevor Sie fortfahren.
Führen Sie folgende Schritte aus, um den Web-Service-Java-Proxy in Ihrem Projekt zu generieren:
Da die employeesTable die erste visuelle Komponente ist, die Sie in dieser Anwendung binden, müssen Sie eine Datenquelle erstellen, die auf den soeben dem Projekt hinzugefügten Muster-Web-Service-Proxy zeigt. Beim Binden anderer visueller Komponenten in späteren Übungen können Sie diese Datenquelle wiederverwenden. In diesem Schritt fügen Sie die Web-Service-Datenquelle und das Datenobjekt lightEmployeeRecordRows hinzu.
Führen Sie folgende Schritte aus, um die Mitarbeitertabelle zu binden:
Tipp: Da Sie eine Tabelle binden, werden im Dialogfenster "Neues Datenquellendatenobjekt" nur Services angezeigt, die Zeilendatenobjekte zurückgeben. Im vorliegenden Fall ist die Methode getLightEmployeeRecords() der einzige verfügbare Service, der eine Feldgruppe von Objekten zurückgibt.
Tipp: Sie können auch nach dem Binden der Tabelle jederzeit zu den Binding-Eigenschaften zurückgehen und die Spalten umbenennen oder umordnen.
Nun wird die Mitarbeitertabelle mit einem JRowTableBinder an das Datenobjekt lightEmployeeRecordRows gebunden. Wenn Sie im unformatierten Bereich auf das Datenobjekt
lightEmployeeRecordRows klicken, zieht der Visual
Editor eine Linie vom Datenobjekt zur Tabelle. Der JRowTableBinder wird auf der Linie
durch das Tabellenbindersymbol
dargestellt. Eine weitere Linie zeigt an, dass das Datenobjekt die
webServiceDataSource als Datenquelle verwendet.
Überprüfen Sie die Änderungen an Ihrem Projekt und Ihrer Anwendung. Bei dieser Übung haben Sie die Web-Service-Datenquelle, ein Zeilendatenobjekt und einen Binder hinzugefügt, der die employeesTable an das Zeilendatenobjekt bindet. Beachten und überprüfen Sie das neue Paket (jve.generated), das im Projekt erstellt wurde, um alle vom Java Visual Editor generierten Binderklassen zu beinhalten. Beachten Sie darüber hinaus das neue Paket (directory.service), das den Java-Proxy für den Web-Service enthält.
Wenn Sie nun die Anwendung ausführen, wird die Mitarbeitertabelle vom Web-Service mit den vorhandenen Mitarbeiterdatensätzen gefüllt.