Hi,
mein Hauptfenster (JFrame) besitzt den "MainController", worin alle Panels, etc. iniziiert werden, einer ArrayList im "MainModel" hinzugefügt werden und dabei gleichzeitig die "MainView" benachrichtigt wird, dass sie jeden neu hinzugefügten Panel ggf. doch bitte einem JTabbedPane als neues Tab übergeben soll. So weit so gut?!?
Es kommt ja vor, dass z.B. in einem Unterfenster x Daten bearbeitet werden, die in einem ganz anderen Unterfenster y danach aktualisiert werden müssen. Nun stellt sich mir die Frage wie ich dieses genau umsetze. Mir bietet sich bei meiner aktuellen Umsetzung zwei Möglichkeiten, wobei bei beidem der MainController die Hauptrolle spielt:
a) Ich implementiere im Controller (oder der View?) von y den Listener für das Model x und registriere im MainController den Controller y als Listener beim Model x. Verbindung ist dann gegeben und der Controller y kann bei Änderungen im Model x entsprechend reagieren.
b) Ich implementiere im MainController den Listener für Model x und werde dann im MainController über Änderungen im Model x informiert und kann dann z.B. aus und mit dem MainController bestimmte Änderungen im Controller y initiieren.
Was wäre da das "bessere" Konzept? Spontan würde ich mal a) sagen...
Eine weitere Frage, die sich mir bei a) dann anschließt wäre, wo ich den Listener für ein ANDERES Model implementiere. Allgemein ist es ja so, dass ich den Listener in der View implementiere und die View sich dann bei dem EIGENEN Model als Listener registriert und so über Änderungen informiert wird. Wie schaut es aber mit Änderungen von NICHTEIGENEN Models aus?
Da würde ich auch wieder spontan sagen, dass auch bei "fremden" Models die View als Listener fungiert, da diese sich ja entsprechend ändern muss, sofern etwas im "fremden" Model geändert wird.
Danke im Voraus
mein Hauptfenster (JFrame) besitzt den "MainController", worin alle Panels, etc. iniziiert werden, einer ArrayList im "MainModel" hinzugefügt werden und dabei gleichzeitig die "MainView" benachrichtigt wird, dass sie jeden neu hinzugefügten Panel ggf. doch bitte einem JTabbedPane als neues Tab übergeben soll. So weit so gut?!?
Es kommt ja vor, dass z.B. in einem Unterfenster x Daten bearbeitet werden, die in einem ganz anderen Unterfenster y danach aktualisiert werden müssen. Nun stellt sich mir die Frage wie ich dieses genau umsetze. Mir bietet sich bei meiner aktuellen Umsetzung zwei Möglichkeiten, wobei bei beidem der MainController die Hauptrolle spielt:
a) Ich implementiere im Controller (oder der View?) von y den Listener für das Model x und registriere im MainController den Controller y als Listener beim Model x. Verbindung ist dann gegeben und der Controller y kann bei Änderungen im Model x entsprechend reagieren.
b) Ich implementiere im MainController den Listener für Model x und werde dann im MainController über Änderungen im Model x informiert und kann dann z.B. aus und mit dem MainController bestimmte Änderungen im Controller y initiieren.
Was wäre da das "bessere" Konzept? Spontan würde ich mal a) sagen...
Eine weitere Frage, die sich mir bei a) dann anschließt wäre, wo ich den Listener für ein ANDERES Model implementiere. Allgemein ist es ja so, dass ich den Listener in der View implementiere und die View sich dann bei dem EIGENEN Model als Listener registriert und so über Änderungen informiert wird. Wie schaut es aber mit Änderungen von NICHTEIGENEN Models aus?
Da würde ich auch wieder spontan sagen, dass auch bei "fremden" Models die View als Listener fungiert, da diese sich ja entsprechend ändern muss, sofern etwas im "fremden" Model geändert wird.
Danke im Voraus