Package name.shamansir.mvp4glayout.client.mvp.state

Source Code of name.shamansir.mvp4glayout.client.mvp.state.StatedPortletPresenter

/**
*
*/
package name.shamansir.mvp4glayout.client.mvp.state;

import com.allen_sauer.gwt.log.client.Log;

import name.shamansir.mvp4glayout.client.mvp.ChildEventBus;
import name.shamansir.mvp4glayout.client.mvp.PortletPresenter;
import name.shamansir.mvp4glayout.client.ui.Pluggable;
import name.shamansir.mvp4glayout.client.ui.state.PortletStateDirector;
import name.shamansir.mvp4glayout.client.ui.state.State;
import name.shamansir.mvp4glayout.client.ui.state.StateDirector;
import name.shamansir.mvp4glayout.client.ui.structure.Place;

/**
* <dl>
* <dt>Project:</dt> <dd>gwt-mvp4g-layouting-demo</dd>
* <dt>Package:</dt> <dd>name.shamansir.mvp4glayout.client.ui</dd>
* </dl>
*
* <code>StatedPortalPresenter</code>
*
* <p>Description</p>
*
* @author Ulric Wilfred <shaman.sir@gmail.com>
* @date Apr 28, 2011 10:16:17 PM
*
*/
public abstract class StatedPortletPresenter<V extends IsStatedPortletView,
                                   E extends ChildEventBus>
                                   extends PortletPresenter<V, E> {
   
    protected StateDirector state;
    protected final State initialState;
   
    protected StatedPortletPresenter() {
        this(State.LOADING_DATA);
    }
   
    protected StatedPortletPresenter(State initialState) {
        this.initialState = initialState;
    }
   
    @Override
    public void bindView() {
        state = new PortletStateDirector<V>(view, eventBus);
    }
   
    @Override
    public void plug(Place where) {
        plugState(where, initialState);
    }
   
    public void plugState(Place where, State state) {
        if (view.hasViewFor(state)) {
            Pluggable plug = view.getViewFor(state);
            plug.changeState(state);
            eventBus.plug(where, plug);
        } else {
            Log.warn("No view regitstered for state " + state +
                     " to place it to " + where);
        }
    }

}
TOP

Related Classes of name.shamansir.mvp4glayout.client.mvp.state.StatedPortletPresenter

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.