Erstellungsdatum: 18.05.2004 Gruppe: JB-4 Verantwortlicher Christian Roll SWT-Praktikum 2004 Designentwurf der Applikation „Bean Development Kit“ von Sun Inhaltsverzeichnis 1. Allgemeines 1.1. Kurzcharakterisierung 1.2. Systemvorraussetzungen 1.3. Abgrenzung 2. Produktübersicht 3. Grundsätzliche Designentscheidungen 3.1. Allgemeines 3.2. Zustandsdiagramm zum Programmablauf 4. Paket und Klassenstrukturen 4.1. Überblick der Paketstruktur 4.2. Überblick über Struktur der Klassenstrukturen 1. Allgemeines 1.1. Kurzcharakterisierung Das Bean Development Kit von Sun ist eine graphische Java-Applikation zum Bearbeiten von Java Beans. Eigene oder bereits vorgegebene Beans können auf ein spezielles Fenster geschoben und angeordnet werden, sodass man die Beans editieren oder untereinander verknüpfen kann. 1.2. Systemvoraussetzungen Das Programm BDK ist eine eigentständige Einzelapplikation, die sich über eine graphische Benutzerschnittstelle mit Hilfe der Tastatur und der Maus bedienen lässt. Benötigt wird dafür die Laufzeitumgebung Java JRE 1.4. 1.3. Abgrenzung Das Programm ist nicht netzwerkfähig und verzichtet auf anspruchsvolle 3D-Grafik. Es ist als Test- und Übungs-Applikation gedacht und nicht zur ernsthaften Softwareentwicklung. 2. Produktübersicht Die Applikation wird durch den Kommandozeilenaufruf "run" oder "run.sh" (unter UnixBetriebssystemen) im Wurzelverzeichnis der Pakethierarchie gestartet. Nach Erfolgreichem Start öffnen sich 4 Fenster (BeanBox,ToolBox,Properties und MethodTracer) , die nun frei auf dem Desktop "schweben". Das Hauptfenster ist das BeanBox Fenster welches in der Mitte zwischen den anderen beiden Fenstern angeordnet ist. Es enthält am oberen Rand eine Menüleise mit den Einträgen "File", "Edit", "View", Seite 1 von 7 Erstellungsdatum: 18.05.2004 Gruppe: JB-4 Verantwortlicher Christian Roll SWT-Praktikum 2004 "Services" und "Help". Unterhalb der Menüleiste befindet sich die Grafik-Fläche zum Anordnen der einzelnen Java-Beans. Im Menü "File" befinden sich die Einträge "Save" (Speichern des aktuellen Projekts), "SerializeComponent" (Serialisieren einer einzelnen Komponente), "MakeApplet" (Erstellen eines Applets aus dem aktuellen Projekt), "Load" (Laden einer abgespeicherten Projektdatei), "LoadJar" (Laden einer externen Bean), "Print" (Drucken des aktuellen Projektes), "Clear" (Entfernt alle Beans von der Arbeitsfläche), sowie "Exit" (Beenden des Programms). Das Menü "Edit" hat die Einträge "Cut" (Ausschneiden), "Copy" (Kopieren), "Paste" (Einfügen), "Report" (Gibt Auskünfte wie Propertys und Methoden über eine ausgewählte Bean) "Events" (Behandlung von Events einer Bean), "BindProperty" (Verbinden von Eigenschaften verschiedener Beans). Im Menü "View" sind die Einträge "Disable Design Mode" bzw. "Enable Design Mode" (An-/Ausschalten des Designmodus,Verstecken bzw. Zeigen der beiden anderen Programm-Fenster) und "Hide Invisible Beans" (Verstecken von unsichtbaren Beans). Im Menü "Services" befinden sich die beiden Einträge "InfoBus Support" (Öffnet Ein Log-Fenster für InfoBus von Beans), "Hide Method Tracing" (Verstecken des Method Tracing Fenster). Das Menü "Help" hat die Einträge "About" (Infos über das Programm und die Entwickler) sowie "Documentation" (Dokumentation der Applikation). Das Programmfenster welches standardmäßig links vom BeanBox Fenster angeordnet ist heißt Toolbox. In der Toolbox stehen Repräsentationen von JavaBeans die man auswählen und Instanzen auf das BeanBox Fenster ablegen kann. Bereits in das Programm implementierte Beispiel Beans sind -EventMonitor –JellyBean –Juggler –TickTock –Voter –ChangeReporter –Molecule –QuoteMonitor -JDBC Select –SorterBean –BridgeTester und –TransitionalBean Über das Menü im BeanBox Fenster lassen sich außerdem weiter Beans in das Programm importieren die dann ebenfalls verfügbar sind. Zur Auswahl einer bestimmten Bean klickt man einfach auf deren Namen im ToolBox Fenster, daraufhin kann man in das BeanBox Fenster wechseln um per Mausklick eine Instanz dieser Bean an einer beliebigen Stelle auf der grafischen Arbeitsfläche anzulegen. Rechts vom BeanBox Fenster befindet sich das Properties Fenster in welchem sich die (Bean-) Eigenschaften von einzelnen Bean-Instanzen betrachten und ändern lassen. Dazu muß in der BeanBox eine Bean ausgewählt sein. Im Properties Fenster sieht man dann alle Properties der Bean und kann diese dann (je nach Implementierung) ändern bzw. bearbeiten. Seite 2 von 7 Erstellungsdatum: 18.05.2004 Gruppe: JB-4 Verantwortlicher Christian Roll SWT-Praktikum 2004 3. Grundsätzliche Designentscheidungen 3.1. Allgemeines Dem Paket- und Klassendesign liegen das Ereigniskonzept und der MVC-Ansatz zugrunde. Das Ereigniskonzept beinhaltet die Zusammenhänge der einzelnen Komponenten. Nach Hinzufügen einer Bean-Instanz zur Arbeitsfläche kann diese ausgewählt, bearbeitet, ihre Eigenschaften verändert oder mit anderen Beans verknüpft werden. und zusätzliches Bestätigen mit einem Butten erscheint die Zahl in einer Liste und steht für weitere Funktionen zur Verfügung. Ein Ereignis löst ein anderes aus. Das M(Modell)V(View)C(Controller)-Modell trennt Eingabe Verarbeitung und Ausgabe voneinander. Die graphische Oberfläche des Testprogrammes wurde mit Swing-Klassen und Fenstertechniken realisiert. Dabei wurden für die Grafikelemente auf Swing-Standardkomponenten zurückgegriffen. Die Steuerung des Programms erfolgt standardmäßig über die Maus und Tastatur. Seite 3 von 7 Erstellungsdatum: 18.05.2004 Gruppe: JB-4 Verantwortlicher Christian Roll SWT-Praktikum 2004 3.2. Zustandsdiagramm zum Programmablauf Seite 4 von 7 Erstellungsdatum: 18.05.2004 Gruppe: JB-4 Verantwortlicher Christian Roll SWT-Praktikum 2004 4. Paket und Klassenstrukturen Sämtliche Klassen der BDK Applikation befinden sich in dem Paket sun.beanbox. Die main-Methode die zum Starten der Anwendung benötigt wird befindet sich in der Klasse BeanBoxFrame. Diese Klasse ist die erste die zu Beginn des Programms aufgerufen wird und die nötigen Initialisierungen vornimmt sowie andere Klassen aufruft. Folgende Klassen befinden sich außerdem noch im package sun.beanbox und werden im Verlauf des Programms aufgerufen um jeweils ihren bestimmten Zweck im Programm zu erfüllen (wie z.B. das Laden von Jar-Dateien oder zur Umsetzung der einzelnen Menüfunktionen) : AppletGenerator.java BeanBoxFrame.java EditedAdaptor.java HookupManager.java JarAccess.java Manifest.java ErrorDialog.java IBSupport.java PropertyCanvas.java Report.java CustomizerDialog.java EventTargetDialog.java IndentedStream.java JarEntrySource.java PropertyNameDialog.java AppletClassGenerator.java ClassCompiler.java MessageDialog.java OurLabel.java WindowCloser.java AboutDialog.java JarInfo.java PropertyDialog.java PropertySelector.java SimpleClassLoader.java Wrapper.java FileExtension.java InputStreamProducer.java WrapperEventInfo.java MakeAppDlg.java ObjectInputStreamLoader.java PropertyHookupManager.java PropertySheet.java StartFrame.java Seite 5 von 7 DoOnBean.java JarLoader.java MessageHeader.java BeanBox.java Timer.java PropertyText.java ToolBox.java WrapperPropertyEventInfo.java Erstellungsdatum: 18.05.2004 Gruppe: JB-4 Verantwortlicher Christian Roll SWT-Praktikum 2004 4.1. Überblick der Paketstruktur 4.2. Überblick über Struktur der wichtigsten Klassen Nach Starten der BDK Applikation wird zunächst die BeanBoxFrame-Klasse aufgerufen. Diese initialisiert das Programm und öffnet das BeanBox-Fenster. Außerdem werden das ToolBox-Fenster und das Property-Fenster initialisiert und geöffnet. Zur Umsetzung dieser Funktionen werden hauptsächlich die Klassen BeanBox, BeanBoxFrame, ToolBox und BeanProperty verwendet. Die anderen Klassen des BDK werden dann innerhalb dieser Klassen beziehungsweise bei Bedarf aufgerufen um spezielle Teilfunktionen des Programms umzusetzen und auf Events wie Maus- und Tastatureingaben entsprechend zu reagieren. So wird zum Beispiel die Klasse ErrorDialog benötigt um bei Programmfehlern ein entsprechendes Dialog-Fenster zu öffnen welches der Anwender anklicken kann, die Klasse JarLoader importiert externe Beans welche in Jar-Dateien abgelegt sind in das Programm und die Klasse WindowCloser beendet die Applikation wenn auf das "Schließen"-Symbol (X) in einem der Hauptfenster geklickt wird. Seite 6 von 7 Erstellungsdatum: 18.05.2004 Gruppe: JB-4 Verantwortlicher Christian Roll SWT-Praktikum 2004 Seite 7 von 7