karthik,

glad you find my example useful, but please consider it just a basic
demonstration of the concepts expressed by Thomas in his article, far
from being a complete implementation of an app based on the new
Activity/Place model.

As Thomas pointed out, MailListActivity need to be informed of
MailDetailPlace change events to have it syncronized with what's
displayed on the MailDetailActivity's display area.

To implement this, add a PlaceChangeEvent handler to MailListActivity:

public MailListActivity(ClientFactory clientFactory) {
  view = clientFactory.getMailListView();
  placeController = clientFactory.getPlaceController();

  EventBus eventBus = clientFactory.getEventBus();
  eventBus.addHandler(PlaceChangeEvent.TYPE, new
PlaceChangeEvent.Handler() {
    @Override
    public void onPlaceChange(PlaceChangeEvent event) {
      Place newPlace = event.getNewPlace();

      if (newPlace instanceof MailDetailPlace) {
        String mailIdToken = ((MailDetailPlace) newPlace).getMailId();
        Mail mail = MAILLIST.getMail(Integer.valueOf(mailIdToken));
        view.setSelectedMail(mail);
      }
    }
  });
}

and a new setSelectedMail method to MailListView:

@Override
public void setSelectedMail(Mail newSelectedMail) {
  SingleSelectionModel<Mail> selectionModel =
(SingleSelectionModel<Mail>) table.getSelectionModel();
  Mail selected = selectionModel.getSelectedObject();
  if (selected.getId() != newSelectedMail.getId()) {
    selectionModel.setSelected(newSelectedMail, true);
  }
}


-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to