package com.andreiolar.abms.client.widgets;
import com.andreiolar.abms.client.constants.DialogBoxConstants;
import com.andreiolar.abms.client.constants.UserMenuConstants;
import com.andreiolar.abms.client.rpc.DBSelfReading;
import com.andreiolar.abms.client.rpc.DBSelfReadingAsync;
import com.andreiolar.abms.client.utils.DialogBoxCreator;
import com.andreiolar.abms.shared.SelfReading;
import com.andreiolar.abms.shared.UserInfo;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
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.Grid;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
public class SelfReadingWidget extends Composite implements CustomWidget {
private String previousMonth;
private String currentYear;
private UserInfo userInfo;
public SelfReadingWidget(String previousMonth, String currentYear, UserInfo userInfo) {
this.previousMonth = previousMonth;
this.currentYear = currentYear;
this.userInfo = userInfo;
initWidget(initializeWidget());
}
@Override
public Widget initializeWidget() {
VerticalPanel panel = new VerticalPanel();
HTML description = new HTML("" + "<p>" + "Va rugam dati citirea aferenta lunii " + previousMonth + ".</p>");
Grid grid = new Grid(5, 2);
// Apa rece
Label coldWaterLabel = new Label("Apa Rece");
final TextBox coldWaterBox = new TextBox();
// Apa calda
Label hotWaterLabel = new Label("Apa Calda");
final TextBox hotWaterBox = new TextBox();
// Curent
Label electricityLabel = new Label("Curent");
final TextBox electicityBox = new TextBox();
// Gaz
Label gazLabel = new Label("Gaz");
final TextBox gazBox = new TextBox();
// Submit Button
Button submitButton = new Button();
submitButton.setText("Submit");
submitButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
String coldWater = coldWaterBox.getText();
String hotWater = hotWaterBox.getText();
String electricity = electicityBox.getText();
String gaz = gazBox.getText();
if ((coldWater != null && !coldWater.trim().equals("")) && (hotWater != null && !hotWater.trim().equals(""))
&& (electricity != null && !electricity.trim().equals("")) && (gaz != null && !gaz.trim().equals(""))) {
SelfReading reading = new SelfReading(userInfo.getApartmentNumber(), coldWater, hotWater, electricity, gaz,
previousMonth + "-" + currentYear);
DOM.getElementById("loading").getStyle().setDisplay(Display.BLOCK);
DBSelfReadingAsync rpcService = (DBSelfReadingAsync) GWT.create(DBSelfReading.class);
ServiceDefTarget target = (ServiceDefTarget) rpcService;
String moduleRelativeURL = GWT.getModuleBaseURL() + "DBSelfReadingImpl";
target.setServiceEntryPoint(moduleRelativeURL);
// rpcService.insertReading(userInfo.getUsername(), reading, new AsyncCallback<Boolean>() {
//
// @Override
// public void onSuccess(Boolean result) {
// DOM.getElementById("loading").getStyle().setDisplay(Display.NONE);
// DialogBox dialogBox = DialogBoxCreator.createDialogBox(UserMenuConstants.DIALOG_BOX_SUCCESSFUL_SUBMIT_READING_TITLE,
// UserMenuConstants.DIALOG_BOX_SUCCESSFUL_SUBMT_READING_MESSAGE, DialogBoxConstants.CLOSE_BUTTON, false, false);
// dialogBox.setGlassEnabled(true);
// dialogBox.setAnimationEnabled(true);
// dialogBox.center();
// dialogBox.show();
//
// coldWaterBox.setText(null);
// hotWaterBox.setText(null);
// electicityBox.setText(null);
// gazBox.setText(null);
// }
//
// @Override
// public void onFailure(Throwable caught) {
// DOM.getElementById("loading").getStyle().setDisplay(Display.NONE);
// DialogBox dialogBox = DialogBoxCreator.createDialogBox(UserMenuConstants.DIALOG_BOX_FAILED_SUBMIT_READING_TITLE,
// UserMenuConstants.DIALOG_BOX_FAILED_SUBMT_READING_MESSAGE + ": " + caught.getMessage(),
// DialogBoxConstants.CLOSE_BUTTON, false, false);
// dialogBox.setGlassEnabled(true);
// dialogBox.setAnimationEnabled(true);
// dialogBox.center();
// dialogBox.show();
//
// coldWaterBox.setText(null);
// hotWaterBox.setText(null);
// electicityBox.setText(null);
// gazBox.setText(null);
// }
// });
} else {
String message = "Please fill all the fields before submitting!";
DialogBox dialogBox = DialogBoxCreator.createDialogBox(UserMenuConstants.DIALOG_BOX_FAILED_SUBMIT_READING_TITLE, message,
DialogBoxConstants.CLOSE_BUTTON, false, false);
dialogBox.setGlassEnabled(true);
dialogBox.setAnimationEnabled(true);
dialogBox.center();
dialogBox.show();
}
}
});
// Reset Button
Button resetButton = new Button();
resetButton.setText("Reset");
resetButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
coldWaterBox.setText(null);
hotWaterBox.setText(null);
electicityBox.setText(null);
gazBox.setText(null);
}
});
grid.setWidget(0, 0, coldWaterLabel);
grid.setWidget(0, 1, coldWaterBox);
grid.setWidget(1, 0, hotWaterLabel);
grid.setWidget(1, 1, hotWaterBox);
grid.setWidget(2, 0, electricityLabel);
grid.setWidget(2, 1, electicityBox);
grid.setWidget(3, 0, gazLabel);
grid.setWidget(3, 1, gazBox);
grid.setWidget(4, 0, submitButton);
grid.setWidget(4, 1, resetButton);
panel.add(description);
panel.add(grid);
return panel;
}
}