[JAVA/SWING] Complexe MVC structuur opzetten

Pagina: 1
Acties:

  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 19-05 13:17
Ik ben bezig om een structuur op te zetten voor de GUI voor een project waar ik nu mee bezig ben.

Het domein diagram ligt vast, en hieronder staat een klein opzetje van dat domein diagram.

Afbeeldingslocatie: http://www.phonetech.nl/dm.gif

Hier een kleine uitleg van het domein model diagram
De Relation klasse onderhoudt de relaties tussen de verschillende entities
De Relation klasse heeft een Hashmap in zich, met een entity type enum als key, en een ArrayList van Referece als value.
De Reference klasse bevat attributen zoasl creation user, creation date en natuurlijk een Entity.

Een Entity is een abstract basis object in het systeem. Attributen zijn bijvoorbeeld de Naam van de entity. Een entity kan 1 of meerdere relaties hebben naar andere entities. Deze relaties worden bijgehouden in de hierboven relation klasse.

De trackedentity is een uitbreiding van entity, die functionaliteit toevoegt zoals het bijhouden van een status enzo.

Project en Experiment zijn implementaties van tracked entity.

Goed. Zover het domein diagram.

En dan nu de uitdaging. Het moet natuurlijk wel allemaal in een GUI bewerkt kunnen worden. Ik wil hier gebruik maken van het MVC pattern icm met het observer pattern.
Echter, hoe kan ik dit het beste aanpakken.

Ik heb voor elk entity type een collectie. Een item in die collectie is een entity, die ook weer relaties heeft naar andere entities die ook in andere collections voor kan komen. Ben je er nog?

Ik kan in het basis model, wel voor elk entity type een collection maken, maar hoe propageer ik dan de veranderingen van een entity in elke collectie waar deze voorkomt?

In de GUI wil ik een aan de linker kant een tabbedpane hebben met een tab voor elk entity type. In die tab, komt dan een tree te staan, met als roots alle entites die in de entity type collection voorkomen. De childs van zo een root zijn dus de gerelateerde entity van dat root entitie. Nu heb ik dus een stuk of 6 typen en dus 6 trees. Een entity kan meerdere keren voorkomen in de verschillende trees.
Nu is het van belang dat precies hetzelfde entity dus meerdere keren voorkomt in de tree. Zodra ik de naam verander van die entity, moet het ook aangepast worden in alle andere tree controls. Hoe kan ik dat het beste aanpakken?

Tevens heb ik een formulier aan de rechterkant met daarin een presentatie van de entity. Deze moet dus synchroon blijven met het geselecteerde object in de tree, en de veranderingen in dit formulier moeten ook weer gepropageerd worden naar de verschillende trees. Hoe kan ik dit dan weer aanpakken? Is een grote collectie waar alle entities ,ongeacht het type, in zitten, en dan vanuit de models een reference maken naar dat object om dat dan te presenteren?