Subversion Repositories SmartDukaan

Rev

Rev 5217 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.catalog.dashboard.client;

import java.util.Date;

import com.google.gwt.core.client.GWT;
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.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.datepicker.client.DateBox;

public class ComingSoonDialog extends DialogBox {
        interface Binder extends UiBinder<Widget, ComingSoonDialog> { }
    private static final Binder binder = GWT.create(Binder.class);
    private ComingSoon comingSoon; 

    @UiField Button okButton, cancelButton, cancelComingSoonButton;
    @UiField TextBox lightBoxText;
    @UiField DateBox comingSoonStartDate, expectedArrivalDate;
    @UiField CheckBox showPrice;
    
    
    public ComingSoonDialog(ComingSoon comingSoon){
        setText("Coming Soon");
        setWidget(binder.createAndBindUi(this));
        setAnimationEnabled(true);
        center();
        this.comingSoon = comingSoon;
        if(this.comingSoon.getExpectedArrivalDate() != null){
                this.lightBoxText.setValue(this.comingSoon.getBestDealsText());
                this.comingSoonStartDate.setValue(this.comingSoon.getComingSoonStartDate());
                this.expectedArrivalDate.setValue(this.comingSoon.getExpectedArrivalDate());
                this.expectedArrivalDate.setValue(this.comingSoon.getExpectedArrivalDate());
                this.showPrice.setValue(this.comingSoon.isShowPrice());
        }else {
                this.cancelComingSoonButton.setEnabled(false);
        }
    }
    



    @UiHandler("cancelComingSoonButton")
    void onCancelComingSoon(ClickEvent event){
        if(Window.confirm("The item will be removed from Coming Soon Page.\nAre you sure?")){
                this.comingSoon.setComingSoonStartDate(null);
                this.comingSoon.setExpectedArrivalDate(null);
                this.comingSoon.setBestDealsText("");
                this.hide();
        }
    }
    
    @UiHandler("cancelButton")
    void onCancelClicked(ClickEvent event) {
        hide();
    }

    @UiHandler("okButton")
    void onOkClicked(ClickEvent event) {
        String lightBoxTxt;
        Date comingSoonStartDt = null;
        Date expectedArrivalDt = null;
        lightBoxTxt = this.lightBoxText.getText().trim();
        boolean sure = true;
        
        
        try {
                if(!expectedArrivalDate.getTextBox().getText().trim().equals("")) {
                        expectedArrivalDt = expectedArrivalDate.getValue(); 
                        if(expectedArrivalDt.compareTo(new Date()) <=0 ){
                                Window.alert("Expected arrival date should be higher than Current Time.");
                                return;
                        }
                        if(!comingSoonStartDate.getTextBox().getText().trim().equals("")) {
                                comingSoonStartDt = comingSoonStartDate.getValue();
                                if(comingSoonStartDt.compareTo(expectedArrivalDt) >= 0 ){
                                        Window.alert("Expected arrival date should be higher than Coming Soon Start Date.");
                                        return;
                                }
                        }
                } else {
                        Window.alert("Expected arrival date can't be blank.");
                }
        } catch(Exception ex) {
            Window.alert("Invalid Date format");
            return;
        }
        
        if(lightBoxTxt.equals("")){
                sure = Window.confirm("No offer message will be displayed in the light Box. Are you sure?");
                if(!sure) {
                        return;
                }
        }
        //Do the coding for moving both the info to appropriate fields.

        this.comingSoon.setComingSoonStartDate(comingSoonStartDt);
        this.comingSoon.setExpectedArrivalDate(expectedArrivalDt);
        this.comingSoon.setBestDealsText(lightBoxTxt);
        this.comingSoon.setShowPrice(showPrice.getValue());
        hide();
    }
}