Subversion Repositories SmartDukaan

Rev

Rev 2119 | Rev 2359 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2119 Rev 2126
Line 1... Line 1...
1
package in.shop2020.catalog.dashboard.client;
1
package in.shop2020.catalog.dashboard.client;
2
 
2
 
-
 
3
import in.shop2020.catalog.dashboard.shared.Item;
-
 
4
import in.shop2020.catalog.dashboard.shared.Utils;
-
 
5
 
3
import com.google.gwt.core.client.GWT;
6
import com.google.gwt.core.client.GWT;
4
import com.google.gwt.event.dom.client.ClickEvent;
7
import com.google.gwt.event.dom.client.ClickEvent;
5
import com.google.gwt.uibinder.client.UiBinder;
8
import com.google.gwt.uibinder.client.UiBinder;
6
import com.google.gwt.uibinder.client.UiField;
9
import com.google.gwt.uibinder.client.UiField;
7
import com.google.gwt.uibinder.client.UiHandler;
10
import com.google.gwt.uibinder.client.UiHandler;
-
 
11
import com.google.gwt.user.client.Window;
-
 
12
import com.google.gwt.user.client.rpc.AsyncCallback;
8
import com.google.gwt.user.client.ui.Button;
13
import com.google.gwt.user.client.ui.Button;
9
import com.google.gwt.user.client.ui.ResizeComposite;
14
import com.google.gwt.user.client.ui.ResizeComposite;
10
import com.google.gwt.user.client.ui.Widget;
15
import com.google.gwt.user.client.ui.Widget;
11
 
16
 
12
public class ItemActions extends ResizeComposite{
17
public class ItemActions extends ResizeComposite{
13
 
18
 
14
    interface ItemActionsUiBinder extends UiBinder<Widget, ItemActions> {}
19
    interface ItemActionsUiBinder extends UiBinder<Widget, ItemActions> {}
15
    private static ItemActionsUiBinder uiBinder = GWT.create(ItemActionsUiBinder.class);
20
    private static ItemActionsUiBinder uiBinder = GWT.create(ItemActionsUiBinder.class);
16
 
-
 
17
    public interface AddItemListener {
21
    private final CatalogServiceAsync catalogService = GWT.create(CatalogService.class);
18
        void onAddItemPressed();
-
 
19
    }
-
 
20
    
22
    
21
    public interface PhaseoutItemListener {
23
    private ItemDetails itemDetails;
22
        void onPhaseoutItemPressed();
-
 
23
    }
-
 
24
    
24
    
25
    public interface ActivateItemListener {
-
 
26
        void onActivatePressed();
-
 
27
    }
-
 
28
    
-
 
29
    private AddItemListener addItemListener;
-
 
30
    private PhaseoutItemListener phaseoutItemListener;
-
 
31
    private ActivateItemListener activateItemListener;
-
 
32
 
-
 
33
    @UiField Button addItem, phaseoutItem, activateItem;
25
    @UiField Button addItem, updateItem, phaseoutItem, activateItem, markAliveItem, pauseItem;
34
    
26
    
35
    public ItemActions(){
27
    public ItemActions(){
36
        initWidget(uiBinder.createAndBindUi(this));
28
        initWidget(uiBinder.createAndBindUi(this));
-
 
29
    }
-
 
30
    
-
 
31
    @UiHandler("updateItem")
37
        phaseoutItem.setEnabled(false);
32
    void updateItem(ClickEvent event) {
38
        activateItem.setEnabled(false);
33
        itemDetails.updateItem();
39
    }
34
    }
40
    
35
    
41
    @UiHandler("addItem")
36
    @UiHandler("addItem")
42
    void addItem(ClickEvent event) {
37
    void addItem(ClickEvent event) {
43
        addItemListener.onAddItemPressed();
38
        ItemForm itemForm = new ItemForm();
-
 
39
        itemForm.center();
-
 
40
        itemForm.show();
44
    }
41
    }
45
    
42
    
46
    @UiHandler("phaseoutItem")
43
    @UiHandler("phaseoutItem")
47
    void phaseoutItem(ClickEvent event) {
44
    void phaseoutItem(ClickEvent event) {
-
 
45
        final long itemId = validateStatusChange(Utils.PHASED_OUT);
-
 
46
        if(itemId <= 0) {
-
 
47
            return;
-
 
48
        }
48
        phaseoutItemListener.onPhaseoutItemPressed();
49
        catalogService.phaseoutItem(itemId, new AsyncCallback<Void>() {
-
 
50
            @Override
-
 
51
            public void onSuccess(Void result) {
-
 
52
                Window.alert("Item marked as PHASED OUT");
-
 
53
            }
-
 
54
            @Override
-
 
55
            public void onFailure(Throwable caught) {
-
 
56
                Window.alert("Error while marking item " + itemId + " PHASED OUT");
-
 
57
            }
-
 
58
        });
49
    }
59
    }
50
    
60
    
51
    @UiHandler("activateItem")
61
    @UiHandler("activateItem")
52
    void activateItem(ClickEvent event) {
62
    void activateItem(ClickEvent event) {
-
 
63
        final long itemId = validateStatusChange(Utils.ACTIVE);
-
 
64
        if(itemId <= 0) {
-
 
65
            return;
-
 
66
        }
-
 
67
        catalogService.activateItem(itemId, new AsyncCallback<Void>() {
-
 
68
            @Override
-
 
69
            public void onSuccess(Void result) {
-
 
70
                Window.alert("Item marked as ACTIVE");
-
 
71
            }
-
 
72
            @Override
-
 
73
            public void onFailure(Throwable caught) {
-
 
74
                Window.alert("Error while marking item " + itemId + " ACTIVE");
-
 
75
            }
-
 
76
        });
-
 
77
    }
-
 
78
 
-
 
79
    @UiHandler("pauseItem")
-
 
80
    void pauseItem(ClickEvent event) {
-
 
81
        final long itemId = validateStatusChange(Utils.PAUSED);
-
 
82
        if(itemId <= 0) {
-
 
83
            return;
-
 
84
        }
-
 
85
        catalogService.pauseItem(itemId, new AsyncCallback<Void>() {
-
 
86
            @Override
-
 
87
            public void onSuccess(Void result) {
-
 
88
                Window.alert("Item marked as PAUSED");
-
 
89
            }
-
 
90
            @Override
-
 
91
            public void onFailure(Throwable caught) {
-
 
92
                Window.alert("Error while marking item " + itemId + " PAUSED");
-
 
93
            }
-
 
94
        });
-
 
95
    }
-
 
96
    
-
 
97
    @UiHandler("markAliveItem")
-
 
98
    void markAsAlive(ClickEvent event) {
-
 
99
        final long itemId = validateStatusChange(Utils.IN_PROCESS);
-
 
100
        if(itemId <= 0) {
-
 
101
            return;
-
 
102
        }
-
 
103
        catalogService.markInProcess(itemId, new AsyncCallback<Void>() {
-
 
104
            @Override
-
 
105
            public void onSuccess(Void result) {
-
 
106
                Window.alert("Item marked as IN PROCESS");
-
 
107
            }
-
 
108
            @Override
-
 
109
            public void onFailure(Throwable caught) {
-
 
110
                Window.alert("Error while marking item " + itemId + " IN PROCESS");
-
 
111
            }
-
 
112
        });
-
 
113
    }
-
 
114
    
-
 
115
    public void setItemDetails(ItemDetails itemDetails) {
-
 
116
        this.itemDetails = itemDetails;
-
 
117
    }
-
 
118
    
-
 
119
    private long validateStatusChange(int toStatus) {
53
        activateItemListener.onActivatePressed();
120
        final Item item = itemDetails.getItem();
-
 
121
        if(item == null) {
-
 
122
            Window.alert(getAlertString(toStatus)[0]);
-
 
123
            return -1;
-
 
124
        }
-
 
125
        if(!Utils.validateStatusChange(item.getItemStatusValue(), toStatus)) {
-
 
126
            Window.alert(getAlertString(toStatus)[1]);
-
 
127
            return -1;
-
 
128
        }
-
 
129
        return item.getId();
-
 
130
    }
-
 
131
    
-
 
132
    private String[] getAlertString(int toStatus) {
-
 
133
        String[] alertStr = {"", ""};
-
 
134
        switch(toStatus) {
-
 
135
        case Utils.PAUSED: {
-
 
136
            alertStr[0] = "Please select an ACTIVE item to mark PAUSED";
-
 
137
            alertStr[1] = "Cannot mark this item as PAUSED";
-
 
138
            break;
-
 
139
        }
-
 
140
        case Utils.IN_PROCESS: {
-
 
141
            alertStr[0] = "Please select a PHASED OUT item to mark IN PROCESS";
-
 
142
            alertStr[1] = "Cannot mark this item as IN PROCESS";
-
 
143
            break;
-
 
144
        }
-
 
145
        case Utils.ACTIVE: {
-
 
146
            alertStr[0] = "Please select a PAUSED item to mark ACTIVE";
-
 
147
            alertStr[1] = "Cannot mark this item as ACTIVE";
-
 
148
            break;
-
 
149
        }
-
 
150
        case Utils.PHASED_OUT: {
-
 
151
            alertStr[0] = "Please select an item to mark PHASED OUT";
-
 
152
            alertStr[1] = "Cannot mark this item as PHASED OUT";
-
 
153
            break;
-
 
154
        }
-
 
155
        }
-
 
156
        return alertStr;
54
    }
157
    }
55
 
-
 
56
    public void setAddItemListener(AddItemListener addItemListener) {
-
 
57
        this.addItemListener = addItemListener;
-
 
58
    }
-
 
59
 
-
 
60
    public void setPhaseoutItemListener(PhaseoutItemListener phaseoutItemListener) {
-
 
61
        this.phaseoutItemListener = phaseoutItemListener;
-
 
62
    }
-
 
63
 
-
 
64
    public void setActivateItemListener(ActivateItemListener activateItemListener) {
-
 
65
        this.activateItemListener = activateItemListener;
-
 
66
    }
-
 
67
    
-
 
68
}
158
}
-
 
159