Re: GWT and MVP
On Wednesday, October 17, 2012 5:28:16 PM UTC-4, furious_panda wrote:
Hi,I need some help, I did not found examples or forums discussions about these subjects.I want to try to do a GWT application using MVP pattern. But I have some difficulties.In MVP, Presenter have to contain Display interface that specifie what the View must implements and return.I have two problems when I apply this pattern:1 - The View must not have to manipulate Model. Or, how it is possible for a collections of objects?For example, I have model object Person as follows:public class Person{private String firstname;private String lastname;private Integer age;......}The View must display a collection of Person in Table (Flextable for example) whithout manipulating Model. How it is possible ?This is my presenter, and what I do now:public class PersonListPresenter extends WidgetPresenter<PersonListPresenter .Display> { public interface Display extends WidgetDisplay{public void setData(List<Person> data);}protected void onBind() {display.setData(data);}}This is my view, and what I do now:public class SongsView implementsPersonListPresenter .Display { ......public void setData(List<Person> data) {if(data!=null && data.size() > 0){for (Person person: data) {// I display all information about each Person in one row of table}}}.....}How can I do in MVP for this case ?
I have not been hard and fast about hiding POJOs from my my views. After all, a view has to know what to display and I find oodles of getFoo() are a lot work for the return. However I put all updating of my POJOs in my activities. Each time the view need to display something, it gets it from the activity. The activity handles setDirty(true|false). This seem easiest for my mind to grasp.
2 - My second problem, is each row of this table must be clickable ? How I can do ?How can I get from display click event for each row ?public class PersonListPresenter extends WidgetPresenter<PersonListPresenter .Display> { public interface Display extends WidgetDisplay{public void setData(List<Person> data);}protected void onBind() {display.setData(data);// I have to implement the same information for each row but the source information is different.// I have to fire an Event containing the Person information that is clickeddisplay.get ?????.addClickHandler(new ClickHandler() {public void onClick(ClickEvent event) {}}}}Thanks in advance.
If your using a FlexTable, look at samples/Mail for how this is done. I've implemented something akin to this many times (though now I'm moving larger data sets to cells).
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/WJsyuTpCL74J.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home