Implementierung einer Webschnittstelle zur grafischen Generierung
Transcription
Implementierung einer Webschnittstelle zur grafischen Generierung
Implementierung einer Webschnittstelle zur grafischen Generierung eines B-Baums Präsentation der Studienarbeit von Björn Konrad Überblick z z z z Intro Anforderungen Softwarearchitektur Implementierung der Anwendung – – – – 2 Generierung des B-Baums Grafische Darstellung Benutzerschnittstelle JSP Seite Intro z Bereicherung der Lehre durch interaktives Lernen – Unterstützung der Vorlesung Datenbanksysteme I – Aufbau eines beispielhaften B-Baums Zugriff über das Internet Verständnis für den Einfügealgorithmus – – 3 Insbesondere für die Rebalancierung des Baumes Anforderungen 4 Software z z z 5 Tomcat Webserver 4.1.27 JSP 1.2 Spezifikation J2SE 1.4.2 Gliederung der Anwendung 1. 2. 3. 4. 6 Generierung des B-Baums Grafische Darstellung des B-Baums Implementierung der Benutzerschnittstelle Erzeugung des JPG Bildes durch die JSP Seite Klassendiagramm DefaultMutableTreeNode <<Insertion Order>> LinkedHashSet +getChildAt(index: int) +getChildCount() +getParent() +getRoot() +getUserObject() +setUserObject() BBaum treenode: DefaultMutableTreeNode allValues: LinkedHashSet k: int +addValue(value: String) +getTree() -insertValue(value: int) +reset() +setK(k: int) 7 1. Generierung des B-Baums +add(value:Object) +clear() +iterator() 2. Grafische Darstellung <<Sorted Set>> TreeSet +add(value:Object) +clear() +iterator() 3. Benutzerschnittstelle 4. JSP Seite Sequenzdiagramm B e n u tz e r B B a u m 1 : s e tK 2 : a d d V a lu e 3 : c r e a te T r e e 4 : fi n d N o d e 5 : in s e r tV a lu e 6 : g e tT r e e 7 : re s e t 8 1. Generierung des B-Baums 2. Grafische Darstellung 3. Benutzerschnittstelle 4. JSP Seite Klassendiagramm Graphics2D +drawRect(xPos,yPos,height,width) +drawString(xPos,yPos,String) HashMap GUIBaum +widthPointer: int -lengthnode: int -node: DefaultMutableTreeNode -g: Graphics2D -drawNode(xPos: int,yPos: int) -drawTree(sisters: LinkedList,parents: HashMap) +getHeightImage() +initTree() +get(key: Object) +put(key: Object,value: Object) 9 1. Generierung des B-Baums 2. Grafische Darstellung 3. Benutzerschnittstelle 4. JSP Seite Sequenzdiagramm Benutzer GUIBaum 1: setNode 2: setK 3: initTree Benutzer kann JPG erstellen Knotenlänge Länge/Breite JPG X-Pos Wurzel 4: getHeigthImage 5: getLengthImage 6: setG 7: makeTree 10 1. Generierung des B-Baums Übergabe der Referenz eines Graphic Objekts 2. Grafische Darstellung 3. Benutzerschnittstelle 4. JSP Seite Pseudocode drawTree-Methode drawTree(Liste aller Schwesterknoten, Positionen aller Elternknoten) 1 2 Berechne optimale x und y Position 3 positions ← x und y Position des aktuellen Knotens 4 Falls (Schwesterknoten nicht Wurzel) 5 Zeichne Pfeil vom Elternknoten zur aktuellen Position 6 Zeichne Knoten und Schlüsselelemente 7 Falls (Schwesterknoten kein Blatt) 8 9 10 11 Für jeden Schwesterknoten tue children ← alle Kinder von aktuellem Knoten Falls (children nicht leer) drawTree(children, positions) 1. Generierung des B-Baums 2. Grafische Darstellung 3. Benutzerschnittstelle 4. JSP Seite Das User Interface 12 1. Generierung des B-Baums 2. Grafische Darstellung 3. Benutzerschnittstelle 4. JSP Seite Aufbau der index.html Seite index.html maske.html Formular loadimage.jsp Eingabefelder des Formulars Ausgabe des Bildes text/html 13 1. Generierung des B-Baums image/jpg 2. Grafische Darstellung 3. Benutzerschnittstelle 4. JSP Seite Implementierung der JSP Seite z z Überprüfung der Benutzereingaben Erzeugung eines BBaum Objekts – z Erzeugung eines GUIBaum Objekts – – – z Aufruf der initTree-Methode Generierung eines BufferedImage Objekts Aufruf der makeTree-Methode JPG Datenstrom an Client schicken – – 14 Persistenz des Objekts durch Java Beans Wandlung in Datenstrom durch JPEGImageEncoder Verwendung der Klasse ServletOutputStream 1. Generierung des B-Baums 2. Grafische Darstellung 3. Benutzerschnittstelle 4. JSP Seite Vielen Dank für die Aufmerksamkeit! Es folgt eine praktische Demonstration der Studienarbeit