Java Studio Creator 2

Aus THM-Wiki
Wechseln zu: Navigation, Suche

Java Studio Creator 2 ist eine Java-Entwicklungsumgebung (IDE) von Sun. Sie ermöglicht das Erstellen komplexer Webseiten-Strukturen, deren Navigation, Datenbankanbindung, Einbinden von Ajax oder Webservices und vieles mehr durch einfaches Drag & Drop. Die im Paket enthaltenen Server simulieren im Hintergrund alle benötigten Umgebungen. Das Studio ist nach Anmeldung bei Sun zum kostenlosen Download verfügbar.


Die Oberfläche

Arbeitsoberfläche

Hier werden geöffnete Dokumente bearbeitet. Je nach Auswahl der Ansicht (Java, JSP oder Design), wird der Quelltext der Datei, der Quelltext der zugehörigen JavaServer Page oder die grafische Oberfläche angezeigt. Die folgenden Programmpunkte passen sich ebenfalls dieser Auswahl an.

Arbeitsoberflaeche.jpg

Hilfe-Funktion

Die Hilfe kann auf drei Arten benutzt werden:

  • durch Markieren einer Komponente und Drücken der Funktionstaste F1
  • durch Auswahl des Menüpunkts Help
  • die dynamische Hilfe zeigt (sofern sie aktiviert ist) passende Links an

Properties

Hier sind sämtliche Eigenschaften des ausgewählten Objektes aufgelistet und können bearbeitet werden.

Servers

Alle Server, wie Datenbank-Server und der Web-Server werden hier aufgelistet und können gestartet und verwaltet werden.

Palette

Hier sind alle Komponenten zu finden, die im visuellen Editor per Drag & Drop auf der Seite angeordnet werden können.

Files

Zeigt eine Liste aller Dateien des geöffneten Projekts.

Projects

Hier sind sämtliche bisher erstellten Projekte und deren Inhalt aufgelistet. Projects dient zum Verwalten (Umbennenen, Verschieben etc.) der Projekte.

Outline

Ist das aktuelle Dokument in der Ansicht des visuellen Editors geöffnet, stellt Outline eine Repräsentation der Struktur des Dokumentes dar.

Navigator

Sofern die Java-Ansicht des Dokumentes aktiv ist, sind im Navigator sämtliche Funktionen, Methoden und Objekte des Dokumentes aufgelistet. Ist der Navigator aktiv, startet bei Tastatureingabe automatisch die Quicksearch-Funktion. Nach betätigen der Enter-Taste springt der Cursor zu der entsprechenden Stelle im Quelltext, sofern vorhanden. Alternativ kann auch durch einen Doppeklick auf den entsprechenden Namen zu dieser Stelle gesprungen werden.

Page Navigation

Befindet man sich in der Design-Ansicht, kann man im Kontextmenü durch den Menüpunkt Page Navigation den Page Navigator starten. Mit diesem lassen sich per Drag & Drop die Beziehungen zwischen den einzelnen Seiten und die Aufrufreihenfolge festlegen. Durch Benennung der Eingabefälle kann die Navigation auch dynamisch geschehen.

Pagenavigation.jpg



Weitere hier zunächst vernachlässigte Bereiche sind:

  • Runtime
  • to Do
  • Usages
  • Search Results
  • diverse Debug- und Versionierungs-Bereiche

Java Studio Creator: Funktionen und Techniken

Der Java-Editor

Die Java-Ansicht des Editors stellt ein Textfeld zur Verfügung, in dem der Quellcode bearbeitet werden kann. Zusätzlich stehen eine Reihe nützlicher Funktionen zur Verfügung:

  • Codevervollständigung:
Die Codevervollständigung bietet die Möglichkeit, einen unvollständigen Code (Objekt-, Methodennamen etc.) zu vervollständigen. Durch Drücken der Tastenkombination Strg + Leertaste öffnet sich ein Fenster, das alle Ergänzungsmöglichkeiten anzeigt. Auch werden alle Methoden angezeigt, die auf ein eingegebenes Objekt angewendet werden können. Dieser Mechanismus ist mit dem Javadoc-System verknüpft, so dass sich für jeden Eintrag der entsprechende Javadoc-Eintrag anzeigen lässt.
Ein kompletter Javadoc-Index mit Suche lässt sich durch Drücken der Tastenkombination Shift + F1 öffnen. Durch das Kontextmenü auf einem Objekt kann man über den Menüpunkt Show Javadoc gezielt einen bestimmten Javadoc-Eintrag aufrufen.
  • Imports verwalten
Die automatische Importverwaltung wird über das Kontextmenü über den Menüpunkt Fix Imports gestartet. Fehlende Imports werden hinzugefügt und überflüssige gelöscht.
  • Abbreviations
Abbrevations
Abbreviations sind vorgefertigte Code-Schnipsel. Nach Eingabe von Codebruchstücken ruft man ein Abbreviation durch Drücken der Leertaste auf. Die Buchstabenkombination wh wird beispielsweise in eine leere While-Schleife umgewandelt Eine Liste der vorgefertigten Abkürzungen, die durch Abbreviations ersetzt werden, ist in der Abbildung Abbreviations zu sehen. Diese Liste lässt sich durch eigene Einträge erweitern.
  • Code Clips
Es gibt weitere vorgefertigte Code-Schnipsel, die zum einen den Programmieraufwand verringern, aber auch die gedachte Anwendung der Konstrukte verdeutlichen. Diese lassen sich per Drag & Drop aus dem Bereich Palette in das Programm einfügen. Die Code-Schnipsel findet man im Reiter Code Clips unter dem Bereich Palette.
  • Kommentarverwaltung
Die Kommentarverwaltung startet man im Menü Tools durch den Eintrag Auto Comment. Hier lassen sich alle Kommentare herausfiltern, die nicht Javadoc-konform sind, und alle Funktionen anzeigen, die nicht kommentiert sind. Auf Knopfdruck lassen sich an all diesen Stellen Kommentare einfügen, für den Inhalt muss der Programmierer anschließend selbst sorgen.

Usereingaben auswerten

Konverter und Validierer

Im Design-Modus lassen sich aus dem Bereich Palette Konverter und Validierer in das Dokument einfügen. Dazu gibt es drei Möglichkeiten des Einfügens:

  1. Man zieht sie per Drag & Drop direkt auf das Textfeld.
  2. Falls sie bereits an einer Stelle im Dokument platziert sind, markiert man sie und zieht sie dann nach Drücken der Tastenkombination Strg + Shift auf das Textfeld.
  3. Man platziert sie an einer beliebigen Stelle im Dokument, markiert das Textfeld und wählt im Bereich Eigenschaften unter dem Punkt Data im Drop-Down-Menü den entsprechenden Konverter oder Validierer aus.

Das Textfeld wird nun überwacht und Benutzereingaben automatisch anhand von Bedingungen überprüft. Eine denkbare Anwendung eines Konverters ist es, eine Datumsangabe in ein Format zu konvertieren, das zum Verarbeiten benötigt wird. Ein Validierer dagegen könnte eine Passworteingabe auf die richtige Länge überprüfen und dem Benutzer gegebenfalls eine Fehlermeldung zeigen. Um dem Benutzer eine Fehlermeldung bzw. Nachricht zu schicken, werden wie bei der Benutzung eines Konverters Message- und Message-Group-Komponenten verwendet. Diese Komponenten befinden sich im Bereich Palette und lassen sich mit Drag & Drop auf das Dokument anwenden. Meldet ein Validierer ein unvorhergesehenes Ereignis, wird dies im Message-Feld angezeigt.

Beans

Beim Erstellen eines Projektes werden automatisch drei Arten von Bean-Objekten erstellt. Diese lassen sich im Bereich Projects ansehen. Man unterscheidet zwischen:

  • Request-Beans
Diese Beans dienen dazu, Daten eines einzelnen Requests zu speichern und eine Antwort darauf zu generieren. Ein Beispiel wäre die Auswertung von Benutzereingaben in einem Formular und eine darauf generierte Antwort. Das Request-Bean-Objekt wird unmittelbar nach dem Erstellen der Antwort gelöscht und die Informationen gehen, sofern nicht verwertet, verloren.
  • Session-Beans
Session-Beans speichern die Information eines Benutzers über die komplette Dauer seiner Session, also über die komplette Zeit, die der Benutzer sich auf der Seite aufhält.
  • Application-Beans
Ein Application-Bean speichert Information, die für jede Session jedes Benutzers von Bedeutung sind.

Um Beans zu benutzen, muss man im Bereich Projects auf dem gewünschten Bean das Kontextmenü aufrufen und den Menüpunkt Add -> Property auswählen. Im folgenden Dialog wählt man Name, Typ und Optionen aus und bestätigt. Anschließend wählt man die Komponente, deren Inhalt gespeichert werden soll aus und ruft in dessen Kontextmenü den Punkt Bind to Data auf. Unter dem Reiter Bind to an Object verbirgt sich ein Baum, der auch die Beans und darunter die gerade erstellte Eigenschaft enthalten sollte. Ein Doppelklick auf diese Eigenschaft speichert den Inhalt des Textfeldes beim Ausführen des Formulars im Bean. Alternativ kann diese Verbindung auch manuell durch Aufrufen der Setter-Methode des Bean-Objektes hergestellt werden.

Auf der nachfolgenden Seite wird die entsprechende Komponente ebenfalls an das Bean-Property gebunden. Beim Ausführen wird der Inhalt des Textfeldes auf der nachfolgenden Seite in der gerade gebundenen Komponente angezeigt.

Der Debugger

Java Studio Creator ist mit einem internen Debugger ausgestattet, der es erlaubt, sein Programm ausführlich zu testen. Um einen Breakpoint einzufügen, genügt ein Klick auf den entsprechenden Zeilenanfang. Alternativ funktioniert dies auch über das Menü unter dem Menüpunkt run -> new Breakpoint. Zum Überwachen einer Variable dienen Watches. Diese können über das Kontextmenü einer Variable über den Menüpunkt new watch erstellt werden. Es gibt einen eigenen Bereich Watches, in dem alle erstellten Watches aufgelistet sind. Um die Debug-Session zu starten, genügt ein Klick im Menü auf den Menüpunkt run -> Debug Main Project. Am oberen linken Rand wird während der Debug-Session eine kleine Statistik über den verbrauchten Speicher angezeigt. Durch einen Klick auf diese Statistik wird der Garbage Collector zum sofortigen Aufzuräumen gestartet. Der Http-Monitor ermöglicht es, Requests zu speichern und erneut auszuführen. Dadurch spart man sich das erneute Ausfüllen von Eingabefeldern. Ebenfalls zum Debuggen tragen die Message-Groups bei. Mit Hilfe der Methoden error, warn, fatal und info können Nachrichten gesendet und in der Gruppe angezeigt werden. Auf die gleiche Art und Weise kann mit der Methode log in die Server-Logdatei geschrieben werden. Diese Datei lässt sich später im Bereich Servers im Kontextmenü Deployment-Server über den Menüpunkt View Server Log anschauen.

Anbindung an Datenbanken

Um in JSC Datenbanken zu nutzen, müssen diese erst verfügbar gemacht werden. Dazu sind zwei Dinge nötig:

  1. Es muss ein Database Server Type festgelegt werden.
  2. Anschließend muss das Data Source selbst bestimmt werden.


Bestimmen des Database Server Type:

In diesem Beispiel soll eine MySQL-Datenbank verwendet werden. Für andere Datenbanken weichen die Eingabetexte entsprechend ab.

  1. Als erstes den entsprechenden Treiber herunterladen und entpacken. Beim hier verwendeten MySQL JDBC Treiber muss mindestens die MySQL-Version 3.1.11 verwendet werden.
  2. Im Bereich Servers das Kontextmenü von Data Sources aufrufen und den Menüpunkt Edit Database Server Types wählen (siehe Abbildung Schritt 1).
  3. Im folgenden Fenster (siehe Abbildung Schritt 2) den Menüpunkt New wählen und den Ordner wählen, in welchem der Treiber entpackt wurde. Im Beispielfall die Datei mysql-connector-java-3.1.14-bin.jar auswählen und auf Öffnen drücken.
  4. Den angelegten Servertyp (ServerType1) sollte man im oberen Feld umbenennen.
  5. Der Driver Class name muss in der jeweiligen Datenbankdokumentation nachgeschaut werden. Bei MySQL heißt er entweder org.gjt.mm.mysql.Driver oder com.mysql.jdbc.Driver.
  6. Gleiches gilt für das URL Template. In unserem Beispiel lautet der Name jdbc:mysql://#HOSTNAME/#DATABASE. Anmerkung: #HOSTNAME und #DATABASE werden vom Betriebssystem automatisch durch den korrekten Wert ersetzt.
  7. Ein Klicken auf Close beendet diese Routine, der Server-Typ wurde angelegt.


  • Bestimmen des ''Data Server Type''
  • Schritt 1

  • Schritt 2


  • Bestimmen des Data Source:

    1. Im Bereich Servers das Kontextmenü von Data Sources aufrufen und den Menüpunkt Add Data Source... wählen (Abbildung Schritt 3).
    2. Im folgenden Fenster müssen nun die Zugangsdaten eingetragen werden (Abbildung Schritt 4). Mit einem Klick auf Test Connection kann die korrekte Funtionalität getestet werden. Ein Klicken auf Add schließt die Konfiguration ab.


  • Bestimmen des ''Data Source''
  • Schritt 3

  • Schritt 4

  • Um nun z.B. Textfelder an eine Datenbank zu binden, muss zunächst noch der Server gestartet werden. Dazu reicht ein Doppelklick auf Bundled Database Server im Bereich Servers. Ein grünes Kästchen mit Pfeil nach oben im Icon symbolisiert, dass der Server gestartet ist. Wie schon beim Binden an Beans kann im Kontextmenü einer Komponente auf einer erstellten Seite über den Menüpunkt Bind to Data... eine Verbindung hergestellt werden. Alle weiteren Tätigkeiten werden hier nicht behandelt, da es zu stark von der vorhandenen Tabelle und dem Vorhaben abhängt. Nur soviel noch: mit einem Klick auf Add Data Provider und Auswählen des gewünschten Punktes aus dem Baum gelangt man in die entsprechenden Menüs.

    Portlets

    Portlets werden anders als normale Web-Applikationen behandelt, es gibt dafür extra Portlet-Server. Im JSC-Paket ist der Apache Pluto Portal Server enthalten. Es können mehrere Portlets gleichzeitig angezeigt werden. Wenn durch einen Klick eine Aktion ausgelöst wird, wird zunächst die Aktion an das entsprechende Portlet gesendet und das Portlet neu dargestellt. Anschließend werden auch alle anderen Portlets neu dargestellt. Dies kann aber aus einer Reihe von Gründen geschehen. Dieser zu Java Server Faces verschiedene Lebenszyklus zieht Unterschiede in der Benutzung nach sich. Zum Beispiel wird das entsprechende Page-Bean zerstört, bevor das Portlet neu geladen wird. Deshalb können hier keine Request-Beans verwendet werden, diese wären immer leer. Stattdessen sollte die Informationen in Session-Beans gespeichert werden.


    Portlet im Browser

    Die Spezifikation JSR-168 Standard legt drei Portlet-Modi fest:

    • View-Modus
    • Edit-Modus
    • Help-Modus

    In einem Portlet-Projekt kann im Bereich Projects über das Kontextmenü der Seite und den Menüpunkt Set as Initial die Startseite für die jeweiligen Bereiche festgelegt werden. Wechselt der Benutzer in einen anderen Bereich und später zurück in den ursprünglichen Bereich, wird stets die definierte Startseite geladen, auch wenn der Benutzer schon einem Link gefolgt war.

    Einbinden von AJAX

    Um AJAX nutzen zu können, müssen zunächst die entsprechenden Komponenten installiert werden. Dazu sind folgende Schritte nötig:

    1. Im Menü Tools den Menüpunkt Update Center auswählen.
    2. Wenn eine Firewall genutzt wird, die Proxy-Einstellungen konfigurieren.
    3. Auf weiter klicken.
    4. Unter den Modulen BluePrints AJAX Components auswählen und sie mit dem "Nach-Rechts-Pfeil" der zu installierenden Liste von Komponenten hinzufügen.
    5. Auf weiter klicken.
    6. Die Lizenz-Vereinbarungen lesen und akzeptieren.
    7. Auf weiter klicken und dann auf Finish klicken, um die Installation durchzuführen.
    import von ui.complib

    Nun müssen die installierten Komponenten noch in die IDE eingebunden werden:

    1. Im Menü Tools den Menüpunkt Component Library Manager auswählen.
    2. Den Button import klicken.
    3. Den Button Browse klicken.
    4. In den Ordner IHR_INSTALLATIONSORDNER/Sun/Creator2_1/samples/ wechseln und die Datei ui.complib auswählen.
    5. Den Button OK klicken. Gegebenfalls muss man bestätigen, dass eine ältere Version überschrieben werden darf.

    In der Palette sind nun die installierten AJAX-Komponenten zu finden.

    Ein kleines Beipiel für die Benutzung der Komponenten: Zieht man ein Auto Complete Textfield aus der Palette in sein aktuelles Projekt, klickt doppelt darauf und entfernt die Kommentarzeichen (//) vom Zeilenanfang, so beobachtet man während der Laufzeit, dass der Inhalt des Textfeldes als Alternative groß angeboten wird, ohne dass die Seite neue geladen werden muss.

    Mehr zu AJAX siehe hier.

    Ausblick: weitere Funktionen

    Internationalisierung/Ländercodierungen

    JSC unterstützt Benutzer bei der Internationalisierung ihrer Programme, indem es z.B. Mechanismen anbietet, anhand derer je nach Einstellungen des ausführenden Systems die entsprechende Codierung gewählt wird und ein Text beispielsweise auf Englisch oder Japanisch angezeigt wird (Bundled Properties).

    Erstellen von Seiten

    Seitenteile

    Ein Seitenteil (Page Fragment) ist ein Teildokument, welches auf mehreren Seiten verwendet wird. Sinvolle Anwendungsgebiete wären etwa ein Copyright-Zusatz, ein Logo oder eine Menüleiste.

    virtuelle Formulare

    Virtuelle Formluare (Virtual Forms) sind künstliche Bereiche innerhalb einer Seite. Jedes virtuelle Formular hat mindestens ein Element, das dem Ausführen des Formulars dient, und beliebig viele, frei wählbare weitere Komponenten. In JSC gibt es ein Menü, in dem die Zugehörigkeit zu virtuellen Formularen festgelegt werden kann.

    Projekt-Templates

    Projekte können als Template gespeichert werden, so dass bei weiteren Projekten die Dateistruktur, die Stylesheets oder die Projekteinstellungen übernommen werden können. Sun empfiehlt, diesen Mechanismus als Sicherungskopie zu nutzen. Hierzu könnte man ab und zu eine laufende Version als Template speichern und dann damit als ein neues Projekt weiter arbeiten.

    Style Sheets

    Es existieren diverse Wizards, um neue Stylesheets zu erstellen, vorhandene zu ändern oder Komponenten einzelne Regeln hinzuzufügen.

    Fazit

    Java Studio Creator 2 ist ein sehr mächtiges und allumfassendes Tool zum Entwickeln von Web-Applikationen in Java. Im Umgang ist diese Entwicklungsumgebung sehr benutzerfreundlich gestaltet. Dabei bleiben selbst komplexere Anwendungen mit Beans etc. immer recht übersichtlich. Einziger Wehrmutstropfen: diese Komplexität fordert ihren Preis, bis alle Server im Hintergrund gestartet sind und ein Projekt ausgeführt wird, vergehen einige Minuten.

    weiterführende Links und Quellen

    Java Studio Creator Tutorial von Sun

    Überblick und Installation

    Download des Studios (Anmeldung erforderlich)

    JSC für Mac

    --Nebe-BNe 15:20, 15. Mär. 2007 (CET)