Hallo zusammen,
Ich habe mal eine grundsätzliche Frage. Wie realisiert man eine konsistente Anzeige zu einem Datenobjekt?
Beispiel: Ich habe ein Objekt der Klasse 'House'. Dieses enthält einen Vector mit Objekten der Klasse 'Floor', diese wiederum enthält einen Vector mit Objekten der Klasse 'Room'.
Nun möchte ich eine Baumstruktur anzeigen, die diese Hierarchie wiederspiegelt. Es können Floors und Rooms hinzugefügt werden. Diese Objekte schreibe ich natürlich direkt ins Datenobjekt und möchte, dass sich die Baumstruktur automatisch aktualisiert.
Ich kenne die Funktionsweise eines Observers, habe damit auch schon einfachere Probleme gut gelöst. Trotzdem ist Swing ja genauso aufgebaut, dass Ansicht und Daten getrennt werden, so sollte Swing die Grundfunktionalität ja zur Verfügung stellen, oder?
Ich habe die Implementation dieses konkreten Problems noch nicht richtig verstanden. Im Moment durchlaufe ich bei jeder Mutation das ganze Datenobjekt (Project), was bei grossen Bäumen einfach zu lange dauert.
Dies ist der erste Teil des Problems. Der zweite ist, dass jedes Baumblatt verschiedene Dinge darstellen soll. Ein Project-Blatt zeigt die enthaltenen Floors, ein Floor-Blatt die enthaltenen Rooms. Ein Room hat eine definierte Anzahl von Kindern (z.B. Möbel, Lichter, Bilder, ...), so, dass in jedem Raum Möbel usw. erfasst werden können. Dies geschieht in Tabellenform. Das heisst, dass ich bei Klick auf ein Möbel-Blatt die Möbeltabelle des jeweiligen Raumes darstellen will. Diese Tabellen (JPanel mit Buttons für add, del, edit und eine JTable mit den Einträgen) werden auch bei jedem durchlaufen des Baumes (also nach jeder Manipulation geladen.
Versteht mich jetzt nicht falsch. Ich erwarte keinen Java-Code oder, dass ihr mein Problem löst. Ich suche Inputs zum Vorgehen, Tipps zur Implementation. Ein UML-Diagramm das ein vergleichbares Problem abbildet wäre auch schon viel.
Das ganze funktioniert (abgesehen von der Geschwindigkeit bei grossen Bäumen) auch ganz gut. Trotzdem bin ich der Meinung, dass es einfacher, sauberer gehen muss.
Herzlichen Dank im Voraus auch für Links zu guten Tuts oder erklärungen.
Gruss
mas
Ich habe mal eine grundsätzliche Frage. Wie realisiert man eine konsistente Anzeige zu einem Datenobjekt?
Beispiel: Ich habe ein Objekt der Klasse 'House'. Dieses enthält einen Vector mit Objekten der Klasse 'Floor', diese wiederum enthält einen Vector mit Objekten der Klasse 'Room'.
Nun möchte ich eine Baumstruktur anzeigen, die diese Hierarchie wiederspiegelt. Es können Floors und Rooms hinzugefügt werden. Diese Objekte schreibe ich natürlich direkt ins Datenobjekt und möchte, dass sich die Baumstruktur automatisch aktualisiert.
Ich kenne die Funktionsweise eines Observers, habe damit auch schon einfachere Probleme gut gelöst. Trotzdem ist Swing ja genauso aufgebaut, dass Ansicht und Daten getrennt werden, so sollte Swing die Grundfunktionalität ja zur Verfügung stellen, oder?
Ich habe die Implementation dieses konkreten Problems noch nicht richtig verstanden. Im Moment durchlaufe ich bei jeder Mutation das ganze Datenobjekt (Project), was bei grossen Bäumen einfach zu lange dauert.
Dies ist der erste Teil des Problems. Der zweite ist, dass jedes Baumblatt verschiedene Dinge darstellen soll. Ein Project-Blatt zeigt die enthaltenen Floors, ein Floor-Blatt die enthaltenen Rooms. Ein Room hat eine definierte Anzahl von Kindern (z.B. Möbel, Lichter, Bilder, ...), so, dass in jedem Raum Möbel usw. erfasst werden können. Dies geschieht in Tabellenform. Das heisst, dass ich bei Klick auf ein Möbel-Blatt die Möbeltabelle des jeweiligen Raumes darstellen will. Diese Tabellen (JPanel mit Buttons für add, del, edit und eine JTable mit den Einträgen) werden auch bei jedem durchlaufen des Baumes (also nach jeder Manipulation geladen.
Versteht mich jetzt nicht falsch. Ich erwarte keinen Java-Code oder, dass ihr mein Problem löst. Ich suche Inputs zum Vorgehen, Tipps zur Implementation. Ein UML-Diagramm das ein vergleichbares Problem abbildet wäre auch schon viel.
Das ganze funktioniert (abgesehen von der Geschwindigkeit bei grossen Bäumen) auch ganz gut. Trotzdem bin ich der Meinung, dass es einfacher, sauberer gehen muss.
Herzlichen Dank im Voraus auch für Links zu guten Tuts oder erklärungen.
Gruss
mas