package klik.client.mvp.home;
import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.ButtonGroup;
import com.github.gwtbootstrap.client.ui.Hero;
import com.github.gwtbootstrap.client.ui.Paragraph;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
import com.gwtplatform.mvp.client.ViewWithUiHandlers;
public class HomeView extends ViewWithUiHandlers<HomeUiHandlers> implements HomePresenter.MyView {
public interface Binder extends UiBinder<Widget, HomeView> {
}
public final Widget widget;
@UiField Hero heroUnit;
@UiField Paragraph message;
@UiField ButtonGroup buttonGroup;
@UiField Button button;
@UiField HTMLPanel buttonBar;
@UiField HTMLPanel contentPanel;
@Inject
public HomeView(final Binder binder) {
widget = binder.createAndBindUi(this);
}
@Override
public Widget asWidget() {
return widget;
}
@Override
public void setHeroUnitVisible(boolean visible) {
heroUnit.setVisible(visible);
}
@Override
public void setHeroUnitMessage(String message) {
this.message.setText(message);
}
@Override
public void setSetupBtnVisible(boolean visible) {
buttonGroup.setVisible(visible);
}
@Override
public void setContentVisible(boolean visible) {
contentPanel.setVisible(visible);
}
@UiHandler("button")
public void handleSetupClick(ClickEvent e) {
if (getUiHandlers() != null) {
getUiHandlers().onSetupClick();
}
}
@Override
public void addToSlot(Object slot, Widget content) {
if (slot == HomePresenter.TYPE_Content) {
if (content != null) {
contentPanel.add(content);
}
} else if (slot == HomePresenter.TYPE_ButtonBar) {
if (content != null) {
buttonBar.add(content);
}
} else {
super.addToSlot(slot, content);
}
}
@Override
public void setInSlot(Object slot, Widget content) {
if (slot == HomePresenter.TYPE_Content) {
contentPanel.clear();
if (content != null) {
contentPanel.add(content);
}
} else if (slot == HomePresenter.TYPE_ButtonBar) {
buttonBar.clear();
if (content != null) {
buttonBar.add(content);
}
} else {
super.setInSlot(slot, content);
}
}
}