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