package de.tud.kom.socom.web.client.influence.administration;
import java.text.ParseException;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.KeyUpEvent;
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.uibinder.client.UiTemplate;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.LongBox;
import com.google.gwt.user.client.ui.Widget;
import de.tud.kom.socom.web.client.influence.InfluencePresenter;
public class InfluenceAdministrationView extends Composite {
@UiTemplate("InfluenceAdministrationView.ui.xml")
interface inf extends UiBinder<Widget, InfluenceAdministrationView> {
}
private static inf uiBinder = GWT.create(inf.class);
public InfluenceAdministrationView() {
initWidget(uiBinder.createAndBindUi(this));
}
@UiField Button startButton;
@UiField Button stopButton;
@UiField Button buttonClose;
@UiField Button buttonStartNow;
@UiField LongBox timeBox;
@UiField DialogBox startDialog;
private InfluencePresenter presenter;
@UiHandler("startButton")
public void onStartButtonClicked(ClickEvent e){
startDialog.removeStyleName("hidden");
}
@UiHandler("stopButton")
public void onStopButtonClicked(ClickEvent e){
presenter.onStopInfluence();
}
@UiHandler("buttonClose")
public void onCloseStartButtonClicked(ClickEvent e) {
startDialog.addStyleName("hidden");
}
@UiHandler("buttonStartNow")
public void onStartNowButtonClicked(ClickEvent e) {
presenter.onStartInfluence(timeBox.getValue());
startDialog.addStyleName("hidden");
}
public void setPresenter(InfluencePresenter presenter) {
this.presenter = presenter;
}
@UiHandler("timeBox")
public void onTimeValueChanged(KeyUpEvent e) {
try{
timeBox.getValueOrThrow();
} catch(ParseException ex) {
presenter.adminIllegalTimeValue(true);
if(buttonStartNow.isEnabled())
buttonStartNow.setEnabled(false);
return;
}
presenter.adminIllegalTimeValue(false);
if(!buttonStartNow.isEnabled())
buttonStartNow.setEnabled(true);
}
}