package org.turbogwt.mvp;
import com.google.gwt.user.client.ui.Composite;
/**
* Abstract class for every View in the TurboGWT-MVP framework.
* <p>
* It provides access to its Presenter via the {@link #getPresenter} method.
*
* @param <P> the Presenter that is attached to this View, whenever it is displayed
*
* @author Danilo Reinert
*/
public abstract class AbstractView<P extends Presenter> extends Composite implements View<P> {
private P presenter;
public P getPresenter() {
if (presenter == null) {
throw new IllegalStateException("Presenter is not set. The Presenter must attach itself to the View via " +
"#setPresenter, before the View can use it.");
}
return presenter;
}
public void setPresenter(P presenter) {
this.presenter = presenter;
}
}