diff --git a/build.xml b/build.xml
index 27d6d8e..f4b462b 100644
--- a/build.xml
+++ b/build.xml
@@ -10,7 +10,7 @@
-
+
diff --git a/src/views/TreeView.java b/src/views/TreeView.java
index 964a90c..272d427 100644
--- a/src/views/TreeView.java
+++ b/src/views/TreeView.java
@@ -2,92 +2,26 @@ package hsmw.jotto5.beleg.views;
import hsmw.jotto5.beleg.data.Model;
-import java.util.Arrays;
-import java.util.ArrayList;
import java.io.IOException;
import java.io.OutputStream;
import com.sun.net.httpserver.*;
public class TreeView implements HttpHandler {
- /**
- * Generiert HTML-Code für einen Baum aus dem gegebenen mehrstufigen Array.
- * Damit der Baum "richtig" aussieht sollte das Eingabearray zumindest gruppiert
- * sein (nach den Ast-Knoten).
- */
- private String makeObjectTree(String[][] data) {
- String result;
- ArrayList stack;
- int levels;
-
- result = "";
- stack = new ArrayList();
-
- // Zum gruppierten Ausgeben wird ein Stack verwendet
- // Diese nicht-rekursive Lösung ist hier einfacher zu implementieren, wenn auch etwas unschön
- // Wir machen uns zu nutze dass die UIDs/Pfade vorsortiert sind
- for ( String[] e : data ) {
- // Wir suchen zuerst die erste Abweichung im Pfad
- // dabei wird das letzte Element (Blattknoten) in e übersprungen.
- int firstDeviation = -1;
- for ( int i = 0; i < Math.min(stack.size(), e.length - 1); i++ ) {
- if ( !e[i].equals(stack.get(i)) ) {
- firstDeviation = i;
- break;
- }
- }
-
- // Nun springen wir bis zur ersten Abweichung zurück und schließen dabei alle HTML Tags
- if ( firstDeviation != -1 ) {
- // Hilfsvariable da wir den Stack in der Schleife verändern
- levels = stack.size() - firstDeviation;
- for ( int i = 0; i < levels; i++ ) {
- stack.remove(stack.size() - 1);
- result += "
";
- }
- }
-
- // Jetzt gehen wir einfach so viele Stufen nach unten wie wir müssen
- // Es ist jetzt garantiert dass e = stack oder e > stack
- // Auch hier überspringen wir das letzte Element in e, um es nicht auszugeben
- // Hilfsvariable da wir stack verändern
- levels = e.length - 1 - stack.size();
- for ( int i = 0; i < levels; i++ ) {
- result += "" + e[stack.size() + i] + "";
- stack.add(e[stack.size() + i]);
- }
-
- // Wir müssen die URL für die Bearbeitungsseite noch zusammenbauen
- result += "- " + e[e.length - 1] + "
";
- }
- result += "
";
-
- return result;
- }
-
public void handle(HttpExchange t) throws IOException {
String response;
OutputStream os;
Model m;
- String[] uids; // enthält alle UIDs als String
- String[][] objPaths; // enthält alle Objekt-IDs, aufgeteilt in ihre Pfadelemente
-
+
m = Model.getModel();
- uids = m.getAllUids();
- // Array noch sortieren, da es zum Baum generieren sortiert sein muss und sich String[]s
- // aus irgendeinem Grund nur SEHR schlecht sortieren lassen :(
- Arrays.sort(uids);
-
- // Wir nutzen Javas Lambda-Notation um mit einem Mapping zu arbeiten.
- // Außerdem müssen wir den Allokator überschreiben um ein Array des richtigen Typs zu bekommen, siehe
- // https://stackoverflow.com/questions/52416381/how-can-i-map-over-an-array-in-java
- objPaths = Arrays.stream(uids).map(uid -> uid.split("/")).toArray(size -> new String[size][]);
response = Defaults.HTMLHEADER + "Beleg - Objektübersicht
";
- try { response += makeObjectTree(objPaths); } catch(Exception e) { e.printStackTrace(); }
- response += Defaults.HTMLFOOTER;
+
+ for ( String s : m.getAllUids() ) {
+ response += "- " + s + "
";
+ }
+
+ response += "
" + Defaults.HTMLFOOTER;
os = t.getResponseBody();