Package com.piki.client.mvp.place

Source Code of com.piki.client.mvp.place.AbstractPresenterActivity

/**
*
*/
package com.piki.client.mvp.place;

import com.google.gwt.event.shared.EventBus;
import com.google.gwt.place.shared.Place;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.piki.client.mvp.HasEventBus;
import com.piki.client.mvp.ChangeablePresenter;
import com.piki.client.mvp.Presenter;
import com.piki.client.mvp.SimpleViewBinder;

/**
* @author HaraldPaul
*
*/
public abstract class AbstractPresenterActivity<P extends Presenter> implements PresenterActivity {
 
  protected P presenter = null;

  /**
   *
   */
  private AbstractPresenterActivity() {
    super();
  }
 
  protected AbstractPresenterActivity(P presenter) {
    this();
    this.presenter = presenter;
  }

  @Override
  public String mayStop() {
   
    if (presenter == null)
      throw new IllegalStateException("missing presenter");
   
      if (presenter instanceof ChangeablePresenter) {
        ChangeablePresenter cp = (ChangeablePresenter) presenter;
        return (cp.isModify() ? cp.getName() + "hat sich geändert" : null);
      }
   
    return null;
  }

  @Override
  public void onCancel() {
    if (presenter == null)
      throw new IllegalStateException("missing presenter");
   
    presenter.close();
   
  }

  @Override
  public void onStop() {
    if (presenter == null)
      throw new IllegalStateException("missing presenter");
   
      if (presenter instanceof ChangeablePresenter) {
        ChangeablePresenter cp = (ChangeablePresenter) presenter;
        cp.save();
        cp.close();
      }
   
  }

  @Override
  public void start(AcceptsOneWidget panel, EventBus eventBus) {
   
    if (presenter == null)
      throw new IllegalStateException("missing presenter");
   
    if (presenter instanceof HasEventBus) {
      HasEventBus hasEventBus = (HasEventBus) presenter;
      hasEventBus.setEventBus(eventBus);
    }
   
    presenter.show(new SimpleViewBinder(panel));
   
  }
 
  abstract public void goTo(Place place);

  /**
   * @return the presenter
   */
  public Presenter getPresenter() {
    return presenter;
  }


}
TOP

Related Classes of com.piki.client.mvp.place.AbstractPresenterActivity

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.