Subversion Repositories SmartDukaan

Rev

Rev 2313 | Rev 2781 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.hotspot.dashbaord.client.inbox;

import in.shop2020.hotspot.dashbaord.client.event.AddJacketNumberEvent;
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.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;

public class JacketInfoBox extends DialogBox {
        private Label errorLabel = new Label("");
        private Label jacketNumberLabel = new Label("Jacket Number");
        private TextBox jacketNumberBox = new TextBox();
        private Label imeiNumberLabel = new Label("IMEI No.");
        private TextBox imeiNumberBox = new TextBox();
        private Button submitbutton = new Button("Submit");
        private VerticalPanel vpanel = new VerticalPanel();

        public JacketInfoBox(final EventBus eventBus, final Order order){
                vpanel.add(errorLabel);
                vpanel.add(getHorizontalPanel(jacketNumberLabel, jacketNumberBox));      //Ask for the jacket number
                if("Handsets".equals(order.getProductGroup())){
                        vpanel.add(getHorizontalPanel(imeiNumberLabel, imeiNumberBox));      //Ask for IMEI only in case of Handsets
                }
                vpanel.add(submitbutton);
                
                setWidget(vpanel);
                setAutoHideEnabled(true);
                setGlassEnabled(true);
                setText("Enter the Jacket Number and IMEI no.");
                setModal(true);

                submitbutton.addClickHandler(new ClickHandler() {
                        
                        @Override
                        public void onClick(ClickEvent event) {
                                long jacketNumber = -1;
                                try {
                                        jacketNumber = Long.parseLong(jacketNumberBox.getText());
                                } catch(NumberFormatException nfe){
                                        nfe.printStackTrace();
                                }
                                
                                if(jacketNumber <= 0){
                                        errorLabel.setText("Invalid Jacket number.");
                                        return;
                                }
                                
                                long imeiNumber = -1;
                                if("Handsets".equals(order.getProductGroup())){
                                        try {
                                                imeiNumber = Long.parseLong(imeiNumberBox.getText());
                                        } catch(NumberFormatException nfe){
                                                nfe.printStackTrace();
                                        }
                                        
                                        if(imeiNumber <= 0){
                                                errorLabel.setText("Invalid IMEI number");
                                                return;
                                        }
                                }
                                                                
                                eventBus.fireEvent(new AddJacketNumberEvent(order, jacketNumber, imeiNumber));
                                hide();
                                clean();
                        }
                });
        }
        
        public void clean(){
                jacketNumberBox.setText("");
                imeiNumberBox.setText("");
                errorLabel.setText("");
        }
        
        private HorizontalPanel getHorizontalPanel(Label label, TextBox textBox){
                HorizontalPanel hpanel = new HorizontalPanel();
                hpanel.setSpacing(5);
                hpanel.add(label);
                hpanel.add(textBox);
                hpanel.setCellWidth(label, "120px");
                return hpanel;
        }
}