Zugriff auf Model im MVC-Design aus SwingWorker heraus

Raphalon

Aktives Mitglied
Hallo,

ich habe eine Swing-GUI nach dem MVC-Prinzip aufgebaut und zwar genau so, wie im Artikel von SUN Java SE Application Design With MVC dargestellt. Es soll nun möglich sein, von der GUI aus eine längere Verarbeitung heraus zu starten. Dazu wird ein SwingWorker aufgerufen, in dem dann die Applikationslogik liegt.

Frage 1: Momentan starte ich den SwingWorker von einem der Views aus. Ist das richtig oder sollte der SwingWorker vom Controller aus aufgerufen werden (dort soll ja wohl auch die Applikationslogik hinein)?

Frage 2: Der SwingWorker bzw. dessen Unterklassen benötigen nun Parameter aus dem Model. Wie ist das von der Architektur her "ordentlich" zu lösen, d.h. wie greife ich auf die Parameter des Models zu? In dem genannten Sun-Artikel ist das nicht dargestellt. Würde man hierzu analog zu der Methode setModelProperty der Klasse AbstractController auch eine getModelProperty erstellen und im zweiten Zug dann die Controller-Instanz beim Aufruf des SwingWorker übergeben? Dann hätte dieser die Möglichkeit, das Property via dem Controller aus dem Model abzufragen.

Grüße,

Raphalon
 
Gewöhnlich geht es so: View->Controller->Model (mit Swingworker)
Weder View noch Controller kennen die Applikationslogik. Das ist Sache des Models. Damit müsste das Problem auch gelöst sein, da im Model alles drin ist, was die Logik braucht.
 
Zur Sicherheit noch folgende Frage: würde dann auch hier beim Klick des Button ein Event ausgelöst, welcher über den Controller an das Model geht und entsprechend dort eine Methode aufruft (die dann wiederum den SwingWorker initiiert usw.?
 
Der Ablauf stimmt, obwohl das Event selbst nicht weitergeleitet werden muss. Es dient meistens nur dazu, den Listener des Buttons zu informieren.
 

Zurück
Oben