Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
584 chandransh 1
package in.shop2020.hotspot.dashbaord.client.inbox;
2
 
585 chandransh 3
import in.shop2020.hotspot.dashbaord.client.event.LoadItemDetailsEvent;
584 chandransh 4
import in.shop2020.hotspot.dashbaord.shared.actions.Item;
5
 
6
import java.util.List;
7
 
8
import org.enunes.gwt.mvp.client.EventBus;
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.ui.FlexTable;
17
import com.google.gwt.user.client.ui.HTMLTable.Cell;
18
import com.google.gwt.user.client.ui.ResizeComposite;
19
import com.google.gwt.user.client.ui.Widget;
20
 
21
public class ItemList extends ResizeComposite{
22
 
23
	interface ItemListUiBinder extends UiBinder<Widget, ItemList> {
24
	}
25
 
26
	private static final ItemListUiBinder uiBinder = GWT.create(ItemListUiBinder.class);
27
 
28
	interface SelectionStyle extends CssResource{
29
		String selectedRow();
30
		String alertsRow();
31
	}
32
 
33
	@UiField FlexTable header;
34
	@UiField FlexTable itemDescriptionTable;
35
	@UiField SelectionStyle selectionStyle;
36
 
37
	private int selectedRow = -1;
38
 
39
	private final EventBus eventbus;
40
 
41
	private final List<Item> items;
42
 
43
	public ItemList(EventBus eventbus, List<Item> items) {
44
		this.items = items;
45
		this.eventbus = eventbus;
46
		initWidget(uiBinder.createAndBindUi(this));
47
		initHeader();
48
		updateItemDescriptionTable(this.items);
49
	}
50
 
51
	private void initHeader(){
52
		// Initialize the header.
53
	    header.getColumnFormatter().setWidth(0, "128px");
54
	    header.getColumnFormatter().setWidth(1, "128px");
55
	    header.getColumnFormatter().setWidth(2, "200px");
56
	    header.getColumnFormatter().setWidth(3, "200px");
57
	    header.getColumnFormatter().setWidth(4, "200px");
58
	    header.getColumnFormatter().setWidth(5, "128px");
59
 
60
	    header.setText(0, 0, "Item Id");
61
	    header.setText(0, 1, "Brand");
62
	    header.setText(0, 2, "Model Number");
63
	    header.setText(0, 3, "Model Name");
64
	    header.setText(0, 4, "MRP");
65
	    header.setText(0, 5, "Category");
66
	}
67
 
68
	private void updateItemDescriptionTable(List<Item> items){
69
		itemDescriptionTable.getColumnFormatter().setWidth(0, "128px");
70
		itemDescriptionTable.getColumnFormatter().setWidth(1, "128px");
71
		itemDescriptionTable.getColumnFormatter().setWidth(2, "200px");
72
		itemDescriptionTable.getColumnFormatter().setWidth(3, "200px");
73
		itemDescriptionTable.getColumnFormatter().setWidth(4, "128px");
74
		itemDescriptionTable.getColumnFormatter().setWidth(5, "200px");
75
 
76
		int i=0;
77
		for(final Item item : items){
78
			int col = 0;
79
			itemDescriptionTable.setText(i, col++, item.getId() + "");
80
			itemDescriptionTable.setText(i, col++, item.getManufacturerName());
81
			itemDescriptionTable.setText(i, col++, item.getModelNumber());
82
			itemDescriptionTable.setText(i, col++, item.getModelName());
83
			itemDescriptionTable.setText(i, col++, item.getMrp()+"");
84
			itemDescriptionTable.setText(i, col++, item.getCategory());
85
			i++;
86
		}
87
	}
88
 
89
	@UiHandler("itemDescriptionTable")
90
	void onClick(ClickEvent event) {
91
		Cell cell = itemDescriptionTable.getCellForEvent(event);
92
		int newRowIndex = cell.getRowIndex();
93
		selectRow(newRowIndex);
585 chandransh 94
		String itemId = itemDescriptionTable.getText(newRowIndex, 0);
95
		eventbus.fireEvent(new LoadItemDetailsEvent(itemId));
584 chandransh 96
	}
97
 
98
	private void selectRow(int row) {
99
		String style = selectionStyle.selectedRow();
100
		if(selectedRow != -1){
101
			itemDescriptionTable.getRowFormatter().removeStyleName(selectedRow, style);
102
		}
103
 
104
		itemDescriptionTable.getRowFormatter().addStyleName(row, style);
105
	    selectedRow = row;
106
	  }
107
 
108
}