Subversion Repositories SmartDukaan

Rev

Rev 2252 | Rev 2427 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1961 ankur.sing 1
package in.shop2020.catalog.dashboard.client;
2
 
3
import in.shop2020.catalog.dashboard.shared.Item;
4
 
5
import java.util.ArrayList;
6
import java.util.HashMap;
7
import java.util.List;
8
import java.util.Map;
9
 
10
import com.google.gwt.core.client.GWT;
11
import com.google.gwt.event.dom.client.ClickEvent;
12
import com.google.gwt.resources.client.CssResource;
13
import com.google.gwt.uibinder.client.UiBinder;
14
import com.google.gwt.uibinder.client.UiField;
15
import com.google.gwt.uibinder.client.UiHandler;
16
import com.google.gwt.user.client.Window;
17
import com.google.gwt.user.client.rpc.AsyncCallback;
18
import com.google.gwt.user.client.ui.FlexTable;
19
import com.google.gwt.user.client.ui.HTMLTable.Cell;
20
import com.google.gwt.user.client.ui.ResizeComposite;
21
import com.google.gwt.user.client.ui.Widget;
22
 
23
public class ItemList extends ResizeComposite{
24
 
25
    public static final int VISIBLE_ITEMS_COUNT = 10;
26
 
27
    private final CatalogServiceAsync catalogService = GWT.create(CatalogService.class);
28
 
29
    interface ItemListUiBinder extends UiBinder<Widget, ItemList> { }
30
    private static final ItemListUiBinder uiBinder = GWT.create(ItemListUiBinder.class);
31
 
32
    interface SelectionStyle extends CssResource{
33
        String selectedRow();
34
        String alertsRow();
35
    }
36
 
37
    @UiField FlexTable header;
38
    @UiField FlexTable itemDescriptionTable;
39
    @UiField SelectionStyle selectionStyle;
40
    private int selectedRow = -1;
41
 
2208 ankur.sing 42
    private HashMap map;
1961 ankur.sing 43
    private List<Item> items;
44
 
2126 ankur.sing 45
    private ItemDetails itemDetails;
46
 
1961 ankur.sing 47
    public ItemList() {
48
        initWidget(uiBinder.createAndBindUi(this));
49
        initHeader();
50
        initItemList();
51
    }
52
 
53
    private void initItemList() {
2359 ankur.sing 54
        loadAllRiskyItems();
2126 ankur.sing 55
 
1992 ankur.sing 56
        //loadDummyItems();
57
        //updateItemDescriptionTable(items);
1961 ankur.sing 58
    }
59
 
60
    private void initHeader(){
61
        // Initialize the header.
2027 ankur.sing 62
        header.getColumnFormatter().setWidth(0, "80px");
1961 ankur.sing 63
        header.getColumnFormatter().setWidth(1, "128px");
2027 ankur.sing 64
        header.getColumnFormatter().setWidth(2, "150px");
1961 ankur.sing 65
        header.getColumnFormatter().setWidth(3, "200px");
66
        header.getColumnFormatter().setWidth(4, "200px");
67
        header.getColumnFormatter().setWidth(5, "128px");
2027 ankur.sing 68
        header.getColumnFormatter().setWidth(6, "220px");
1961 ankur.sing 69
 
70
        header.setText(0, 0, "Item Id");
71
        header.setText(0, 1, "Product Group");
72
        header.setText(0, 2, "Brand");
73
        header.setText(0, 3, "Model Number");
74
        header.setText(0, 4, "Model Name");
2027 ankur.sing 75
        header.setText(0, 5, "Color");
1961 ankur.sing 76
        header.setText(0, 6, "Category");
77
    }
78
 
79
    private void updateItemDescriptionTable(List<Item> items){
2027 ankur.sing 80
        itemDescriptionTable.removeAllRows();
81
        itemDescriptionTable.getColumnFormatter().setWidth(0, "80px");
1961 ankur.sing 82
        itemDescriptionTable.getColumnFormatter().setWidth(1, "128px");
2027 ankur.sing 83
        itemDescriptionTable.getColumnFormatter().setWidth(2, "150px");
1961 ankur.sing 84
        itemDescriptionTable.getColumnFormatter().setWidth(3, "200px");
85
        itemDescriptionTable.getColumnFormatter().setWidth(4, "200px");
86
        itemDescriptionTable.getColumnFormatter().setWidth(5, "128px");
2027 ankur.sing 87
        itemDescriptionTable.getColumnFormatter().setWidth(6, "220px");
1961 ankur.sing 88
 
89
        int i=0;
90
        for(final Item item : items){
2027 ankur.sing 91
            //itemsMap.put(item.getId(), item);
1961 ankur.sing 92
            int col = 0;
93
            itemDescriptionTable.setText(i, col++, item.getId() + "");
94
            itemDescriptionTable.setText(i, col++, item.getProductGroup());
95
            itemDescriptionTable.setText(i, col++, item.getBrand());
96
            itemDescriptionTable.setText(i, col++, item.getModelNumber());
97
            itemDescriptionTable.setText(i, col++, item.getModelName());
2027 ankur.sing 98
            itemDescriptionTable.setText(i, col++, item.getColor());
2105 ankur.sing 99
            itemDescriptionTable.setText(i, col++, item.getContentCategory()+"");
1961 ankur.sing 100
            i++;
101
        }
102
    }
103
 
104
    @UiHandler("itemDescriptionTable")
105
    void onClick(ClickEvent event) {
2066 ankur.sing 106
 
1961 ankur.sing 107
        Cell cell = itemDescriptionTable.getCellForEvent(event);
108
        int newRowIndex = cell.getRowIndex();
1992 ankur.sing 109
        selectRow(newRowIndex);
1961 ankur.sing 110
        String itemId = itemDescriptionTable.getText(newRowIndex, 0);
2126 ankur.sing 111
 
112
        catalogService.getItem(Long.parseLong(itemId), new AsyncCallback<Item>() {
113
            @Override
114
            public void onSuccess(Item result) {
115
                itemDetails.setItemDetails(result);
116
            }
117
            @Override
118
            public void onFailure(Throwable caught) {
119
                Window.alert("Unable to fetch item details.");
120
            }
121
        });
1961 ankur.sing 122
    }
123
 
124
    private void selectRow(int row) {
125
        String style = selectionStyle.selectedRow();
126
        if(selectedRow != -1){
127
            itemDescriptionTable.getRowFormatter().removeStyleName(selectedRow, style);
128
        }
129
 
130
        itemDescriptionTable.getRowFormatter().addStyleName(row, style);
131
        selectedRow = row;
132
    }
133
 
134
    private void loadDummyItems() {
1992 ankur.sing 135
 
2126 ankur.sing 136
        Item i = new Item(1, "Handset", "Spice", "mi310", "phone", "White", "Business Phone",1, "comments", 1, 1, 
2359 ankur.sing 137
                "", 3000.50, 3000.00, 3000, 3000, 12, 12345, 12345, 12345, 12345, "ACTIVE", 1, "This item is active",
138
                null, "best", 2990, 1, true, true, null, null, null);
1961 ankur.sing 139
        List<Item> items = new ArrayList<Item>();
140
        items.add(i);
141
        this.items = items;
2027 ankur.sing 142
        //itemsMap.put(i.getId(), i);
1992 ankur.sing 143
 
1961 ankur.sing 144
    }
145
 
1992 ankur.sing 146
    public void loadAllItems() {
1961 ankur.sing 147
        catalogService.getAllItems(new AsyncCallback<List<Item>>() {
148
            public void onFailure(Throwable caught) {
2126 ankur.sing 149
                caught.printStackTrace();
1992 ankur.sing 150
                Window.alert("Could not get all items...");
1961 ankur.sing 151
            }
152
            public void onSuccess(List<Item> result) {
1992 ankur.sing 153
                updateItemDescriptionTable(result);
1961 ankur.sing 154
            }
155
        });
156
    }
157
 
2119 ankur.sing 158
    public void loadAllActiveItems() {
159
        catalogService.getAllActiveItems(new AsyncCallback<List<Item>>() {
160
            public void onFailure(Throwable caught) {
2126 ankur.sing 161
                caught.printStackTrace();
2119 ankur.sing 162
                Window.alert("Could not get all active items...");
163
            }
164
            public void onSuccess(List<Item> result) {
165
                updateItemDescriptionTable(result);
166
            }
167
        });
168
    }
169
 
2208 ankur.sing 170
    public void loadAllPhasedOutItems() {
171
        catalogService.getAllPhasedOutItems(new AsyncCallback<List<Item>>() {
172
            public void onFailure(Throwable caught) {
173
                caught.printStackTrace();
174
                Window.alert("Could not load phased out items...");
175
            }
176
            public void onSuccess(List<Item> result) {
177
                updateItemDescriptionTable(result);
178
            }
179
        });
180
    }
181
 
182
    public void loadAllPausedItems() {
183
        catalogService.getAllPausedItems(new AsyncCallback<List<Item>>() {
184
            public void onFailure(Throwable caught) {
185
                caught.printStackTrace();
186
                Window.alert("Could not load paused items...");
187
            }
188
            public void onSuccess(List<Item> result) {
189
                updateItemDescriptionTable(result);
190
            }
191
        });
192
    }
193
 
2359 ankur.sing 194
    public void loadAllInProcessItems() {
195
        catalogService.getAllInProcessItems(new AsyncCallback<List<Item>>() {
196
            public void onFailure(Throwable caught) {
197
                caught.printStackTrace();
198
                Window.alert("Could not load IN_PROCESS items...");
199
            }
200
            public void onSuccess(List<Item> result) {
201
                updateItemDescriptionTable(result);
202
            }
203
        });
204
    }
205
 
206
    public void loadAllContentCompleteItems() {
207
        catalogService.getAllContentCompleteItems(new AsyncCallback<List<Item>>() {
208
            public void onFailure(Throwable caught) {
209
                caught.printStackTrace();
210
                Window.alert("Could not load CONTENT_COMPLETE items...");
211
            }
212
            public void onSuccess(List<Item> result) {
213
                updateItemDescriptionTable(result);
214
            }
215
        });
216
    }
217
 
218
    public void loadAllRiskyItems() {
219
        catalogService.getRiskyItems(new AsyncCallback<List<Item>>() {
220
            public void onFailure(Throwable caught) {
221
                caught.printStackTrace();
222
                Window.alert("Could not load RISKY items...");
223
            }
224
            public void onSuccess(List<Item> result) {
225
                updateItemDescriptionTable(result);
226
            }
227
        });
228
    }
229
 
1992 ankur.sing 230
    public void loadBestDeals() {
231
        catalogService.getBestDeals(new AsyncCallback<List<Item>>() {
232
            public void onFailure(Throwable caught) {
2126 ankur.sing 233
                caught.printStackTrace();
1992 ankur.sing 234
                Window.alert("Could not load best deals.");
235
            }
236
            public void onSuccess(List<Item> result) {
237
                updateItemDescriptionTable(result);
238
            }
239
        });
240
    }
241
 
242
    public void loadLatestArrivals() {
243
        catalogService.getLatestArrivals(new AsyncCallback<List<Item>>() {
244
            public void onFailure(Throwable caught) {
2126 ankur.sing 245
                caught.printStackTrace();
1992 ankur.sing 246
                Window.alert("Could not load latest arrivals.");
247
            }
248
            public void onSuccess(List<Item> result) {
249
                updateItemDescriptionTable(result);
250
            }
251
        });
252
    }
253
 
254
    public void loadBestSellers() {
255
        catalogService.getBestSellers(new AsyncCallback<List<Item>>() {
256
            public void onFailure(Throwable caught) {
2126 ankur.sing 257
                caught.printStackTrace();
1992 ankur.sing 258
                Window.alert("Could not load best sellers.");
259
            }
260
            public void onSuccess(List<Item> result) {
261
                updateItemDescriptionTable(result);
262
            }
263
        });
264
    }
2126 ankur.sing 265
 
266
    public void setItemDetails(ItemDetails itemDetails) {
267
        this.itemDetails = itemDetails;
268
    }
1992 ankur.sing 269
 
1961 ankur.sing 270
}