Wie benutzt man das GWT Editor Framework mit der gwt-Plattform?

8

Ich benutze die gwt-Plattform und habe versucht, das Editor-Framework von GWT zu implementieren. Aber ich kann es nicht aus dem Moderator heraus arbeiten. Es gibt einige Antworten im Internet, die sagen, dass ich den EditorDriver irgendwie in den Presenter einspeisen muss, aber ich weiß nicht, wie ich das machen soll ...

Im Moment habe ich das ohne Erfolg versucht:

%Vor%

Es funktioniert, wenn ich die ViewImplementation explizit festlege, aber das ist nicht die Art, wie MVP funktionieren sollte:

%Vor%

Ich wäre nett, wenn mir jemand ein Beispiel geben könnte, wie es richtig gemacht wird.

Danke

    
Benjamin M 22.05.2012, 01:06
quelle

3 Antworten

7

Ein ähnlicher Ansatz wie in einer früheren Version von Ausgabestichprobe funktionierte für mich:

Eine Schnittstelle, die die Ansicht implementieren sollte. Der Platzhalter wird verwendet, damit der Präsentator die Implementierung der konkreten Ansicht nicht kennen muss:

%Vor%

Ihr Moderator sollte jetzt ungefähr so ​​aussehen:

%Vor%

Und die Ansicht implmentation:

%Vor%

Das ist so nahe, wie ich MVP mit dem Editor-Framework von GWT erreichen konnte. Ich konnte keinen Weg finden, wie die View-Implementierung das Modell NICHT kennt, aber ich glaube nicht, dass es wirklich notwendig ist.

Wenn jemand Verbesserungen daran hat, bin ich froh zu hören.

Einige zusätzliche Kommentare zu GWT-Redakteuren gefunden. Es scheint, dass es nicht möglich ist, das Modell vollständig zu trennen. Wie Thomas Broyer es in seine Antwort auf eine andere Editor-Frage stellt:

  

"MVP ist nicht in Stein gemeißelt (es ist nicht einmal definiert; es wurde von Martin Fowler geprägt, aber er zog den Begriff zugunsten von zwei spezifischeren Mustern zurück), also verletzen Sie nur die Regeln, die Sie sich selbst gegeben haben Andersherum kann das Editor-Framework als Ganzes als Verstoß gegen MVP betrachtet werden: Jeder Editor kennt das Modell, nicht unbedingt die genaue Instanz, die es bearbeitet (wie mit ValueAwareEditor oder LeafValue), aber zumindest die Art von Objekten, von denen es ein Editor ist / p>

    
Marco Jakob 22.05.2012, 09:31
quelle
2

Das Problem ist, dass die Driver.class an GWT.create

übergeben wurde %Vor%

muss die konkrete Klasse enthalten, die alle Untereditoren enthält, d. h. alle uibded Widgets.

Eine Lösung ist die folgende:

Die View-Schnittstelle erweitert die Editor-Schnittstelle für das Model-Objekt

%Vor%

Die View-Implementierung MyViewImpl definiert einen Treibertyp

%Vor%

Der Treiber wird in MyViewImpl instanziiert von

%Vor%

Der übergeordnete Typ

%Vor%

kann verwendet werden, um Referenzen des Treibers an den Presenter zu übergeben

    
rcomblen 18.06.2012 08:57
quelle
0

MVP sagt, dass Sie den Moderator verwenden, um das Modell vollständig von der Ansicht zu trennen. Außerdem würde ich sagen, dass Ihr Ansatz Logik in die Ansicht bringt ... Ich hoffe, dass es eine andere Lösung gibt;)

    
Benjamin M 22.05.2012 10:55
quelle

Tags und Links