Hallo,
ich stehe vor einem Problem. Ich habe eine Datenbank in der Einträge sind, die Ordner bzw Unterordner darstellen. Sie ist nach dem "Nested Set Model" aufgebaut. Außerdem steht in jeder Tabellenzeile auch noch eine Folder-ID die ID des Parent-Ordner. Das will ich jetzt in einen TreeView hineinbekommen, bzw. eben einen Baum mit Objekten erstellen.
Dafür habe ich die Klasse "Node" erstellt, die wiederum in einem Array weitere Nodes aufnehmen kann. Das erstellen klappt auch zum Teil, sobald allerdings viele Unterordner hinzukommen, ist's vorbei.
Mit einer while-Schleife gehe ich durch das ResultSet, das mir die Tabelle liefert. Mit folgender Funktion versuche ich den Ordner zu finden, in den der neue hineinkommen soll:
parent ist immer der Root-Ordner (darin sind dann die anderen mit weiteren Unterordnern). Es sieht also ungefähr so aus:
root
- F1
-- F1.1
--- F1.3
-- F1.2
- F2
Wenn jetzt ein Ordner in F2 reingehört, startet die Funktion eben bei F1, geht die Unterordner durch und - aus ist's. Also nix bis F2...
ich stehe vor einem Problem. Ich habe eine Datenbank in der Einträge sind, die Ordner bzw Unterordner darstellen. Sie ist nach dem "Nested Set Model" aufgebaut. Außerdem steht in jeder Tabellenzeile auch noch eine Folder-ID die ID des Parent-Ordner. Das will ich jetzt in einen TreeView hineinbekommen, bzw. eben einen Baum mit Objekten erstellen.
Dafür habe ich die Klasse "Node" erstellt, die wiederum in einem Array weitere Nodes aufnehmen kann. Das erstellen klappt auch zum Teil, sobald allerdings viele Unterordner hinzukommen, ist's vorbei.
Mit einer while-Schleife gehe ich durch das ResultSet, das mir die Tabelle liefert. Mit folgender Funktion versuche ich den Ordner zu finden, in den der neue hineinkommen soll:
Code:
public Node getNode(Node parent, int parentFolderID, String name)
{
for (Object o : parent.children) {
if (o instanceof Node)
{
Node n = (Node)o;
if (n.ID == parentFolderID)
return n;
else if (n.children.size() != 0)
return getNode(n, parentFolderID, name);
}
}
return null;
}
root
- F1
-- F1.1
--- F1.3
-- F1.2
- F2
Wenn jetzt ein Ordner in F2 reingehört, startet die Funktion eben bei F1, geht die Unterordner durch und - aus ist's. Also nix bis F2...