Rev 4286 | Rev 4363 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.hotspot.dashbaord.client.inbox;import java.util.HashMap;import java.util.Map;import java.util.Map.Entry;import in.shop2020.hotspot.dashbaord.client.event.AddJacketNumberEvent;import in.shop2020.hotspot.dashbaord.shared.actions.BillingType;import in.shop2020.hotspot.dashbaord.shared.actions.Order;import org.enunes.gwt.mvp.client.EventBus;import com.google.gwt.event.dom.client.ClickEvent;import com.google.gwt.event.dom.client.ClickHandler;import com.google.gwt.user.client.ui.Button;import com.google.gwt.user.client.ui.DialogBox;import com.google.gwt.user.client.ui.HorizontalPanel;import com.google.gwt.user.client.ui.Label;import com.google.gwt.user.client.ui.ListBox;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 JacketInfoBox extends DialogBox {private Label errorLabel = new Label("");private Label jacketNumberLabel = new Label("Jacket Number");private TextBox jacketNumberBox = new TextBox();private Label itemNumberLabel = new Label("Item Number");private TextBox itemNumberBox = new TextBox();private Label imeiNumberLabel = new Label("IMEI No.");private TextBox imeiNumberBox = new TextBox();private Label billedBy = new Label("Billed by");private Label vendorLabel = new Label("Vendor");private ListBox vendorBox = new ListBox();private Button submitbutton = new Button("Submit");private VerticalPanel vpanel = new VerticalPanel();private Map<Long, String> vendors = new HashMap<Long, String>();public JacketInfoBox(final EventBus eventBus, final Order order, final String user, final BillingType billingType){vpanel.add(errorLabel);vpanel.add(getHorizontalPanel(jacketNumberLabel, jacketNumberBox)); //Ask for the jacket numberif(billingType == BillingType.OURS){vpanel.add(getHorizontalPanel(itemNumberLabel, itemNumberBox)); //Ask for the item numberif("Handsets".equalsIgnoreCase(order.getProductGroup())) {vpanel.add(getHorizontalPanel(imeiNumberLabel, imeiNumberBox)); //Ask for IMEI only in case of Handsets}}//FIXME Hardcoded for vendor// vendors.put(2L, "Tulip Tech Products");vendors.put(3L, "Sarvottam Telecare");vendors.put(4L, "Indira Switch");vendors.put(5L, "S Mobility");for(Entry<Long, String> vendor: vendors.entrySet()){vendorBox.addItem(vendor.getValue(), vendor.getKey()+"");}vpanel.add(getHorizontalPanel(vendorLabel, vendorBox));vpanel.add(getHorizontalPanel(billedBy, new Label(user)));vpanel.add(submitbutton);setWidget(vpanel);setAutoHideEnabled(true);setGlassEnabled(true);if(billingType == BillingType.OURS)setText("Enter all the details below:");elsesetText("Enter Jacket Number below:");setModal(true);submitbutton.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {long jacketNumber = -1;long imeiNumber = -1;String itemNumber = "NO_NUMBER";try {jacketNumber = Long.parseLong(jacketNumberBox.getText());} catch(NumberFormatException nfe){nfe.printStackTrace();}if(jacketNumber <= 0){errorLabel.setText("Invalid Jacket number.");return;}if(billingType == BillingType.OURS){itemNumber = itemNumberBox.getText();if(itemNumber==null || itemNumber.trim().isEmpty()){errorLabel.setText("Item Number can't be left empty");return;}if("Handsets".equalsIgnoreCase(order.getProductGroup())){try {imeiNumber = Long.parseLong(imeiNumberBox.getText());} catch(NumberFormatException nfe){nfe.printStackTrace();}if(imeiNumber <= 0){errorLabel.setText("Invalid IMEI number");return;}}}long vendorId = -1;try {vendorId = Long.parseLong(vendorBox.getValue(vendorBox.getSelectedIndex()));} catch(NumberFormatException nfe){nfe.printStackTrace();}if(vendorId <= 0){errorLabel.setText("Invalid Vendor");return;}eventBus.fireEvent(new AddJacketNumberEvent(order, jacketNumber, imeiNumber, itemNumber.trim(), user, billingType, vendorId));hide();clean();}});}public void clean(){jacketNumberBox.setText("");imeiNumberBox.setText("");errorLabel.setText("");}private HorizontalPanel getHorizontalPanel(Label label, Widget textBox){HorizontalPanel hpanel = new HorizontalPanel();hpanel.setSpacing(5);hpanel.add(label);hpanel.add(textBox);hpanel.setCellWidth(label, "120px");return hpanel;}}