Treeview in J2EE-Webanwendung

Status
Nicht offen für weitere Antworten.

karstenkurt

Mitglied
Hallo,

ich bin auf der Suche nach einer Lösung für folgendes Problem:

Gegeben sind eine Oracle-Datenbank mit Daten. Diese können entweder als XML oder in Recordsets bereitsgestellt werden. Es handelt sich bei diesen Daten um die Darstellung eines hierachischen Baumes. Hierbei sind Blätter als B und Knoten als A gekennzeichnet.

Beispielhafter Datensatz-Aufbau (im realen handelt es sich um eine Datenmenge von ca. 50.000 DS):

Code:
ID,Name,Parent,Typ
1 , Opa Klaus Klug,null,A                                  Opa ist der Root-Knoten
2 , Karsten Klug, 1, A                                     Sohn von Opa (hat Kinder, deshalb Knoten)
3 , Helga Klug, 1, B                                       Tochter von Opa (hat keine Kinder, deshalb Blatt)
4 , Horst Klug, 2, B                                       Sohn von  Klaus Klug (hat Kinder, deshalb Knoten)
5 , Gisela Klug, 2, B                                      Tochter von  Klaus Klug (hat Kinder, deshalb Knoten)
6 , Regina Klug, 2, A                                      Tochter von  Klaus Klug (hat keine Kinder, deshalb Blatt)
7 , Armin Klug, 5,A                                        Sohn von Gisela Klug, Enkel von Opa
8 , Nadine Klug, 5,A                                       Tochter von Gisela Klug, Enkel von Opa
9 , Elvira Klug, 4, B                                      Tochter von Horst, Enkel von Opa, hat Kinder
10, Rolf Klug, 4, A                                        Sohn von Horst, Enkel von Opa, hat keine Kinder
11, Frank Klug, 9, A                                       Sohn von Elvira, Enkel von Horst, Urenkel von Opa

Diese Daten sollen nun in einem Treeview mit Checkboxen in einer J2EE-Anwendung mittels JSP auf einer Website angezeigt werden. Alle bislang gefundenen Lösungen basieren auf Javascript und/oder haben ein Geschwindigkeitsproblem mit der Datenmenge (>=50.000).

Die Checkboxen sollen das gängige Verhalten zeigen. Ein Klick markiert das Element und alle darunterliegenden (setzen eines Haken in die Checkboxes) , erneuter Klick demarkiert das Element und alle darunterligenden (Alle Checkboxen sind wieder frei), Abwählen/Auswählen eines oder mehrere beliebiger Unterelemente demarkiert/markiert die entsprechenden Unterlemente und stellt auf den darüberliegenden Ebenen die Checkboxen grau mit einem Haken dar.

Wenn Bedarf besteht kann ich gerne ein Bild des Verhaltens hochladen.

Wie kann man sowas angehen? Mir fehlt im Augenblick irgendwie der Startpunkt. Hat hier irgendwer eine Idee?

Gruß
KK
 

SnooP

Top Contributor
Also bei JSF gibt es da fertige Komponenten... die konfigurierbar für serverseitig, clientseitig, hybrid via Ajax sind... das Datenmodell dahinter sollte natürlich auch entsprechend schlau reagieren... aber Javascript würde ich an der Stelle auf jeden Fall verwenden, bei der Menge an Informationen.

Allerdings müsste man überlegen, ob man tatsächlich von Anfang an alle Informationen rauslutscht (dauert wohl recht lange und die JS-Daten werden lang), oder aber erstmal nur die 1. Stufe, sprich die Kinder vom Opa und beim Click auf einen Knoten wird via Ajax genau die gewünschte Information nachgeladen und im JS gecached (damit beim ein/ausclicken nicht ständig neu geladen werden muss).
 

karstenkurt

Mitglied
SnooP hat gesagt.:
aber Javascript würde ich an der Stelle auf jeden Fall verwenden, bei der Menge an Informationen.

Danke für die Antwort.

Deine Aussage verstehe ich nicht ganz. Bei 50000 DS wird JS doch sehr langsam, oder?

Hast Du irgendwo ein entsprechendes Tutorial zu AJAX bzw. JSF?

Gruß
KK
 
M

maki

Gast
Also bei JSF gibt es da fertige Komponenten... die konfigurierbar für serverseitig, clientseitig, hybrid via Ajax sind... das Datenmodell dahinter sollte natürlich auch entsprechend schlau reagieren... aber Javascript würde ich an der Stelle auf jeden Fall verwenden, bei der Menge an Informationen.
Ich wäre für jeden Hinweis dankbar, da soweit ich weiss es keine stabilen JSF Komponenten gibt die mit 5000 Datensätzen (geschweige denn 50000) zurechtkommen und lazy load unterstützen.

Aus diesem grund benutzen wir JS Bibliotheken von http://dhtmlx.com für usere Trees.
 
M

maki

Gast
Die habe ich mir angesehen, sind aber ab 5000 DS zu langsam, ansonsten wären diese genau das richtige. Da ist ja das Verhalten der Checkboxen auch schon drin, obwohl ich das noch nicht hinbekommen habe.
Selbst mit lazy load?

Wir haben höchstens 5000 Knoten, da geht es noch.
 

robertpic71

Bekanntes Mitglied
Ich habe diesen Katalog mit der ZK Treekomponente gemacht. Der Katalog umfasst ca. 13.000 Nodes.

In meinem Fall mache ich selbst das "onDemand", indem ich bei den onOpen-Events (wenn eine Treenode geöffnet wird) die nächste Ebene nachlade. Das funktioniert insofern noch schneller, da serverseitig auch nur der tatsächliche Bedarf gehalten je Session geladen werden muss.

Mittlerweile bietet ZK noch viele andere Möglichkeiten der Treeverarbeitung wie z.B. ZoomIn (alles automatisch) wie z.B. hier: BigTree2.

Laut ZK Doku sollten 100.000 Nodes kein Problem sein. Sieh auch hier.

ZK läuft nicht nur als eigenständigen Framework, sondern kann via Tags auch in JSP-Seiten (auch JSF) eingebunden werden. Es gibt sogar >> hier << ein Beispiel für eine Treeeinbindung.

Achja und nicht vom zscript irritieren lassen. Man kann in der tree-Komponente mit use="com.package.javaklasse" das zuständige Javaprogramm, welches dann die Events (onCreate = Erstellung, onOpen Node öffnen/nachladen) abwickelt. Das ähnelt dann etwas der Desktopprogrammierung.
Alternativ: Treemodel und/oder Databinding

Bei Bedarf kannst du ja nachfragen.

/Robert
 

karstenkurt

Mitglied
Hallo,
ich habe da jetzt noch ein wenig rumgepielt. Die Einträge in HTML-Tables gepackt und dann angezeigt. Das Ganze wird allerdings ziemlich groß. Gibt es in JSP evtl. die Möglichkeit zur Laufzeit einzelne "Doclets" (als HTML-Fragmente) nachzuladen und dann in der Seite anzuzeigen. Positionieren würde ich die mittels Div-Tag.innerhtml. Die nachzuladenen Dateien sind zwischen 500kb und 4,5MB groß.

Gruß
KK
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E JAvaFX: Verschiedene Panels nach Klick auf Node des TreeView anzeigen Java Basics - Anfänger-Themen 0
G treeview? Java Basics - Anfänger-Themen 3
L J2EE Instalationsdatei j2sdkeee-1_3_1-win.exe Java Basics - Anfänger-Themen 2
B J2SE vs J2EE Java Basics - Anfänger-Themen 2
V Unterschied zwischen J2EE und JEE ?? Java Basics - Anfänger-Themen 1
G Fragen zu einem geplanten J2EE-Projekt mit Eclipse Java Basics - Anfänger-Themen 24
S j2ee-Server und JMS Java Basics - Anfänger-Themen 3
G J2EE Tutorial . komme nicht weiter Java Basics - Anfänger-Themen 7
rambozola Konzept Webentwicklung mit J2EE Java Basics - Anfänger-Themen 3
rambozola zugriff auf client bei j2ee anwendung Java Basics - Anfänger-Themen 10
M j2ee: was braucht es alles dazu? Java Basics - Anfänger-Themen 3
E OOP Programmstrukturierung: UserManager für Webanwendung Java Basics - Anfänger-Themen 2
M Java als Webanwendung mit Datenbank abfrage Java Basics - Anfänger-Themen 3
S Performance-/Stress Test für Webanwendung Java Basics - Anfänger-Themen 2
J Webanwendung JavaFX Java Basics - Anfänger-Themen 4
D Tomcat - Deploy von Webanwendung Java Basics - Anfänger-Themen 9
D Periodische Aufgaben erledigen in Webanwendung (Servlet/JSP) Java Basics - Anfänger-Themen 7
G Strukturierung von Webanwendung Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben