Subversion Repositories SmartDukaan

Rev

Rev 2066 | Rev 2119 | 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
    public interface Listener {
2027 ankur.sing 28
        void onItemSelected(long itemId);
1961 ankur.sing 29
      }
30
 
2027 ankur.sing 31
    //Map<Long, Item> itemsMap = new HashMap<Long, Item>();
1961 ankur.sing 32
 
33
    private final CatalogServiceAsync catalogService = GWT.create(CatalogService.class);
34
 
35
    interface ItemListUiBinder extends UiBinder<Widget, ItemList> { }
36
    private static final ItemListUiBinder uiBinder = GWT.create(ItemListUiBinder.class);
37
 
38
    interface SelectionStyle extends CssResource{
39
        String selectedRow();
40
        String alertsRow();
41
    }
42
 
43
    @UiField FlexTable header;
44
    @UiField FlexTable itemDescriptionTable;
45
    @UiField SelectionStyle selectionStyle;
46
    private Listener listener;
47
    private int selectedRow = -1;
48
 
49
 
50
    private List<Item> items;
51
 
52
    public ItemList() {
53
        initWidget(uiBinder.createAndBindUi(this));
54
        initHeader();
55
        initItemList();
56
    }
57
 
58
    private void initItemList() {
1992 ankur.sing 59
        loadBestDeals();
60
        //loadDummyItems();
61
        //updateItemDescriptionTable(items);
1961 ankur.sing 62
    }
63
 
64
    private void initHeader(){
65
        // Initialize the header.
2027 ankur.sing 66
        header.getColumnFormatter().setWidth(0, "80px");
1961 ankur.sing 67
        header.getColumnFormatter().setWidth(1, "128px");
2027 ankur.sing 68
        header.getColumnFormatter().setWidth(2, "150px");
1961 ankur.sing 69
        header.getColumnFormatter().setWidth(3, "200px");
70
        header.getColumnFormatter().setWidth(4, "200px");
71
        header.getColumnFormatter().setWidth(5, "128px");
2027 ankur.sing 72
        header.getColumnFormatter().setWidth(6, "220px");
1961 ankur.sing 73
 
74
        header.setText(0, 0, "Item Id");
75
        header.setText(0, 1, "Product Group");
76
        header.setText(0, 2, "Brand");
77
        header.setText(0, 3, "Model Number");
78
        header.setText(0, 4, "Model Name");
2027 ankur.sing 79
        header.setText(0, 5, "Color");
1961 ankur.sing 80
        header.setText(0, 6, "Category");
81
    }
82
 
83
    private void updateItemDescriptionTable(List<Item> items){
2027 ankur.sing 84
        itemDescriptionTable.removeAllRows();
85
        itemDescriptionTable.getColumnFormatter().setWidth(0, "80px");
1961 ankur.sing 86
        itemDescriptionTable.getColumnFormatter().setWidth(1, "128px");
2027 ankur.sing 87
        itemDescriptionTable.getColumnFormatter().setWidth(2, "150px");
1961 ankur.sing 88
        itemDescriptionTable.getColumnFormatter().setWidth(3, "200px");
89
        itemDescriptionTable.getColumnFormatter().setWidth(4, "200px");
90
        itemDescriptionTable.getColumnFormatter().setWidth(5, "128px");
2027 ankur.sing 91
        itemDescriptionTable.getColumnFormatter().setWidth(6, "220px");
1961 ankur.sing 92
 
93
        int i=0;
94
        for(final Item item : items){
2027 ankur.sing 95
            //itemsMap.put(item.getId(), item);
1961 ankur.sing 96
            int col = 0;
97
            itemDescriptionTable.setText(i, col++, item.getId() + "");
98
            itemDescriptionTable.setText(i, col++, item.getProductGroup());
99
            itemDescriptionTable.setText(i, col++, item.getBrand());
100
            itemDescriptionTable.setText(i, col++, item.getModelNumber());
101
            itemDescriptionTable.setText(i, col++, item.getModelName());
2027 ankur.sing 102
            itemDescriptionTable.setText(i, col++, item.getColor());
2105 ankur.sing 103
            itemDescriptionTable.setText(i, col++, item.getContentCategory()+"");
1961 ankur.sing 104
            i++;
105
        }
106
    }
107
 
108
    public void setListener(Listener listener) {
109
        this.listener = listener;
110
      }
111
 
112
    @UiHandler("itemDescriptionTable")
113
    void onClick(ClickEvent event) {
2066 ankur.sing 114
 
1961 ankur.sing 115
        Cell cell = itemDescriptionTable.getCellForEvent(event);
116
        int newRowIndex = cell.getRowIndex();
1992 ankur.sing 117
        selectRow(newRowIndex);
1961 ankur.sing 118
        String itemId = itemDescriptionTable.getText(newRowIndex, 0);
2027 ankur.sing 119
        listener.onItemSelected(Long.parseLong(itemId));
1961 ankur.sing 120
    }
121
 
122
    private void selectRow(int row) {
123
        String style = selectionStyle.selectedRow();
124
        if(selectedRow != -1){
125
            itemDescriptionTable.getRowFormatter().removeStyleName(selectedRow, style);
126
        }
127
 
128
        itemDescriptionTable.getRowFormatter().addStyleName(row, style);
129
        selectedRow = row;
130
    }
131
 
132
    private void loadDummyItems() {
1992 ankur.sing 133
 
2027 ankur.sing 134
        Item i = new Item(1, "Handset", "Spice", "mi310", "phone", "White", 324, "comments", 1, 1, 
2066 ankur.sing 135
                "", 3000.50, 3000.00, 3000, 3000, 12, 12345, 12345, 12345, 12345, "status", null, "best", 2990, 1, true, null, null);
1961 ankur.sing 136
        List<Item> items = new ArrayList<Item>();
137
        items.add(i);
138
        this.items = items;
2027 ankur.sing 139
        //itemsMap.put(i.getId(), i);
1992 ankur.sing 140
 
1961 ankur.sing 141
    }
142
 
1992 ankur.sing 143
    public void loadAllItems() {
1961 ankur.sing 144
        catalogService.getAllItems(new AsyncCallback<List<Item>>() {
145
            public void onFailure(Throwable caught) {
1992 ankur.sing 146
                Window.alert("Could not get all items...");
1961 ankur.sing 147
            }
148
            public void onSuccess(List<Item> result) {
1992 ankur.sing 149
                updateItemDescriptionTable(result);
150
                //setItems(result);
1961 ankur.sing 151
            }
152
        });
153
    }
154
 
1992 ankur.sing 155
    public void loadBestDeals() {
156
        catalogService.getBestDeals(new AsyncCallback<List<Item>>() {
157
            public void onFailure(Throwable caught) {
158
                Window.alert("Could not load best deals.");
159
            }
160
            public void onSuccess(List<Item> result) {
161
                updateItemDescriptionTable(result);
162
                //setItems(result);
163
            }
164
        });
165
    }
166
 
167
    public void loadLatestArrivals() {
168
        catalogService.getLatestArrivals(new AsyncCallback<List<Item>>() {
169
            public void onFailure(Throwable caught) {
170
                Window.alert("Could not load latest arrivals.");
171
            }
172
            public void onSuccess(List<Item> result) {
173
                updateItemDescriptionTable(result);
174
                //setItems(result);
175
            }
176
        });
177
    }
178
 
179
    public void loadBestSellers() {
180
        catalogService.getBestSellers(new AsyncCallback<List<Item>>() {
181
            public void onFailure(Throwable caught) {
182
                Window.alert("Could not load best sellers.");
183
            }
184
            public void onSuccess(List<Item> result) {
185
                updateItemDescriptionTable(result);
186
                //setItems(result);
187
            }
188
        });
189
    }
190
 
1961 ankur.sing 191
}