Ik heb het voor mekaar gekregen om controls te serialiseren en te deserialiseren in een arraylist.
Deze arraylist bevat dus allerlei controls zoals TextVelden, Buttons, GroupBoxen, etc.
Maar in de arraylist staan niet daadwerkelijk de controls zelf, maar een afgeleide ervan, via het memento patroon!
Ik zal ff toelichten hoe dit in z'n werk gaat, ik heb een textVeld geplaatst op een paneel en deze heeft enkele properties geset:
- databinding
- size
- location
- text
- readonly
Het probleem was dat een control op zichzelf niet te serialiseren is (althans dat heb ik dan aangenomen), dus sla ik deze properties op in een memento class.
Deze memento class houdt dus als het ware de properties vast, en deze class is wel te serialiseren!
De TextVeld heb ik twee methoden extra meegegeven, namelijk createMemento() en setMemento()
createMemento() : Hier word er een instantie van memento gereturned, waarin de waardes staan van de hierboven genoemde properties.
Deze methode word gebruikt bij het serialiseren.
setMemento() : Hier word een memento instantie meegegeven, en worden de properties geset van hierboven.
Deze methode wordt gebruikt bij het deserialiseren.
Stel ik heb nu een meerdere textVelden met verschillende waarde voor de properties, dan maak ik voor ieder textVeld een memento aan, en pleur die in een arrayList.
Als ik dan ga serialiseren, serialiseer ik dus de arrayList.
Bij het deserialiseren, heb ik dus een arrayList met memento classes voor een textVeld. En dan met de setMemento() methode, maak ik weer dezelfde textVelden aan zoals ik ze eerst had.
Dit is allemaal geen probleem.
Maar zodra ik een arrayList serialiseer met verschillende controls, een textVeld en een Button, dan moet ik dus met IF statements gaan checken wat er nu aangemaakt moet worden:
een Button of een textVeld!
Dat IF gebeuren is naar mijn mening niet echt efficient, en zoek dan ook een andere methode om dit te doen?
Ik hoop dat het zo een beetje duidelijk is wat ik bedoel, zo niet vraag het me dan?
Deze arraylist bevat dus allerlei controls zoals TextVelden, Buttons, GroupBoxen, etc.
Maar in de arraylist staan niet daadwerkelijk de controls zelf, maar een afgeleide ervan, via het memento patroon!
Ik zal ff toelichten hoe dit in z'n werk gaat, ik heb een textVeld geplaatst op een paneel en deze heeft enkele properties geset:
- databinding
- size
- location
- text
- readonly
Het probleem was dat een control op zichzelf niet te serialiseren is (althans dat heb ik dan aangenomen), dus sla ik deze properties op in een memento class.
Deze memento class houdt dus als het ware de properties vast, en deze class is wel te serialiseren!
De TextVeld heb ik twee methoden extra meegegeven, namelijk createMemento() en setMemento()
createMemento() : Hier word er een instantie van memento gereturned, waarin de waardes staan van de hierboven genoemde properties.
Deze methode word gebruikt bij het serialiseren.
setMemento() : Hier word een memento instantie meegegeven, en worden de properties geset van hierboven.
Deze methode wordt gebruikt bij het deserialiseren.
Stel ik heb nu een meerdere textVelden met verschillende waarde voor de properties, dan maak ik voor ieder textVeld een memento aan, en pleur die in een arrayList.
Als ik dan ga serialiseren, serialiseer ik dus de arrayList.
Bij het deserialiseren, heb ik dus een arrayList met memento classes voor een textVeld. En dan met de setMemento() methode, maak ik weer dezelfde textVelden aan zoals ik ze eerst had.
Dit is allemaal geen probleem.
Maar zodra ik een arrayList serialiseer met verschillende controls, een textVeld en een Button, dan moet ik dus met IF statements gaan checken wat er nu aangemaakt moet worden:
een Button of een textVeld!
Dat IF gebeuren is naar mijn mening niet echt efficient, en zoek dan ook een andere methode om dit te doen?
Ik hoop dat het zo een beetje duidelijk is wat ik bedoel, zo niet vraag het me dan?