Soo, die erste sinnvolle mail auf dieser Mailingliste :D Ich habe ein bisschen übers Datenmodell nachgedacht und stelle mir folgendes vor: Es gibt eine Klasse ResyncDataModel oder so. Diese beinhaltet alle Models die es in unserer ganzen Software gibt. D.h. da drinn ist dann z.b. eine Methode getUserListModel(), getOwnReferenceTableModel() etc.. Bei dieser Klasse kann man sich subscriben um Änderungen zu bekommen. Dadurch wird es möglich ganze Modelle auszutauschen (Das wird nötig z.B. wenn irgedwas abkackt). Für Models die nicht immer da sind (wie z.b. Suchergebnisse und andere Tabs) gibt es extra listen. D.h. es gibt im ResyncDataModel eine getSearchResults Methode. Diese returned eine Liste mit Tablemodels. Dazu gibt es entsprechende Observer. Dadurch gibt es keine Get-Commands mehr. Damit sind dann alle Commands undoable (die getter waren die einzigen die nicht undoable waren). Dadurch wird die Commandstruktur cooler (generisches undo vielleicht?) und schlanker.