Subversion Repositories SmartDukaan

Rev

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

package in.shop2020.catalog.dashboard.client;

import in.shop2020.catalog.dashboard.shared.Utils;

import java.util.Map.Entry;

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.DialogBox;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;


public class BulkPricingDialog extends DialogBox {

    interface Binder extends UiBinder<Widget, BulkPricingDialog> { }
    private static final Binder binder = GWT.create(Binder.class);

    public interface BulkPricingUpdateListener{
        boolean onUpdate(long quantity, double price);
    }

    private BulkPricingUpdateListener bulkPricingUpdateListener;

    @UiField Button closeButton, updateButton;
    @UiField TextBox quantity, price;

    public BulkPricingDialog() {
        setText("Add bulk Pricing");
        setWidget(binder.createAndBindUi(this));
        setAnimationEnabled(true);
        center();
    }

    public BulkPricingDialog(String quantity, String price) {
        this();
        setFields(quantity, price);
    }

    public void setFields(String quantity, String price) {
        this.quantity.setText(quantity);
        this.price.setText(price);
    }

    public void setBulkPricingUpdateListener(BulkPricingUpdateListener bulkPricingUpdateListener) {
        this.bulkPricingUpdateListener = bulkPricingUpdateListener;
    }

    @UiHandler("closeButton")
    void onCloseClicked(ClickEvent event) {
        hide();
    }

    @UiHandler("updateButton")
    void onEditClicked(ClickEvent event) {
        double price;
        long quantity;
        try {
                price = Double.parseDouble(this.price.getText());
            quantity = Long.parseLong(this.quantity.getText());
        } catch(NumberFormatException ex) {
            Window.alert("Format is not valid.");
            return;
        }
        if (quantity < 1 || price < 1){
                Window.alert("Quantity/Price is not valid");
                return;
        }
        if(bulkPricingUpdateListener.onUpdate(quantity, price)) {
            hide();
        }
    }
}