Subversion Repositories SmartDukaan

Rev

Rev 2208 | Rev 2359 | 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() {
2126 ankur.sing 54
        loadBestSellers();
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, 
2252 ankur.sing 137
                "", 3000.50, 3000.00, 3000, 3000, 12, 12345, 12345, 12345, 12345, "status", 1,  null, "best", 2990, 1, true, true, null, null, null);
1961 ankur.sing 138
        List<Item> items = new ArrayList<Item>();
139
        items.add(i);
140
        this.items = items;
2027 ankur.sing 141
        //itemsMap.put(i.getId(), i);
1992 ankur.sing 142
 
1961 ankur.sing 143
    }
144
 
1992 ankur.sing 145
    public void loadAllItems() {
1961 ankur.sing 146
        catalogService.getAllItems(new AsyncCallback<List<Item>>() {
147
            public void onFailure(Throwable caught) {
2126 ankur.sing 148
                caught.printStackTrace();
1992 ankur.sing 149
                Window.alert("Could not get all items...");
1961 ankur.sing 150
            }
151
            public void onSuccess(List<Item> result) {
1992 ankur.sing 152
                updateItemDescriptionTable(result);
153
                //setItems(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
                //setItems(result);
167
            }
168
        });
169
    }
170
 
2208 ankur.sing 171
    public void loadAllPhasedOutItems() {
172
        catalogService.getAllPhasedOutItems(new AsyncCallback<List<Item>>() {
173
            public void onFailure(Throwable caught) {
174
                caught.printStackTrace();
175
                Window.alert("Could not load phased out items...");
176
            }
177
            public void onSuccess(List<Item> result) {
178
                updateItemDescriptionTable(result);
179
            }
180
        });
181
    }
182
 
183
    public void loadAllPausedItems() {
184
        catalogService.getAllPausedItems(new AsyncCallback<List<Item>>() {
185
            public void onFailure(Throwable caught) {
186
                caught.printStackTrace();
187
                Window.alert("Could not load paused items...");
188
            }
189
            public void onSuccess(List<Item> result) {
190
                updateItemDescriptionTable(result);
191
            }
192
        });
193
    }
194
 
1992 ankur.sing 195
    public void loadBestDeals() {
196
        catalogService.getBestDeals(new AsyncCallback<List<Item>>() {
197
            public void onFailure(Throwable caught) {
2126 ankur.sing 198
                caught.printStackTrace();
1992 ankur.sing 199
                Window.alert("Could not load best deals.");
200
            }
201
            public void onSuccess(List<Item> result) {
202
                updateItemDescriptionTable(result);
203
                //setItems(result);
204
            }
205
        });
206
    }
207
 
208
    public void loadLatestArrivals() {
209
        catalogService.getLatestArrivals(new AsyncCallback<List<Item>>() {
210
            public void onFailure(Throwable caught) {
2126 ankur.sing 211
                caught.printStackTrace();
1992 ankur.sing 212
                Window.alert("Could not load latest arrivals.");
213
            }
214
            public void onSuccess(List<Item> result) {
215
                updateItemDescriptionTable(result);
216
                //setItems(result);
217
            }
218
        });
219
    }
220
 
221
    public void loadBestSellers() {
222
        catalogService.getBestSellers(new AsyncCallback<List<Item>>() {
223
            public void onFailure(Throwable caught) {
2126 ankur.sing 224
                caught.printStackTrace();
1992 ankur.sing 225
                Window.alert("Could not load best sellers.");
226
            }
227
            public void onSuccess(List<Item> result) {
228
                updateItemDescriptionTable(result);
229
                //setItems(result);
230
            }
231
        });
232
    }
2126 ankur.sing 233
 
234
    public void setItemDetails(ItemDetails itemDetails) {
235
        this.itemDetails = itemDetails;
236
    }
1992 ankur.sing 237
 
1961 ankur.sing 238
}