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