Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
167 ashish 1
package in.shop2020.hotspot.dashbaord.client.inbox;
2
 
3
import in.shop2020.hotspot.dashbaord.client.event.LoadOrderDetailsEvent;
4
import in.shop2020.hotspot.dashbaord.shared.actions.Order;
5
 
6
import java.util.Date;
7
import java.util.List;
8
 
9
import org.enunes.gwt.mvp.client.EventBus;
10
 
11
import com.google.gwt.core.client.GWT;
12
import com.google.gwt.event.dom.client.ClickEvent;
13
import com.google.gwt.event.dom.client.ClickHandler;
14
import com.google.gwt.resources.client.CssResource;
15
import com.google.gwt.uibinder.client.UiBinder;
16
import com.google.gwt.uibinder.client.UiField;
17
import com.google.gwt.user.client.ui.Anchor;
18
import com.google.gwt.user.client.ui.FlexTable;
19
import com.google.gwt.user.client.ui.ResizeComposite;
20
import com.google.gwt.user.client.ui.Widget;
21
 
22
public class OrderList extends ResizeComposite{
23
 
24
	private int selectedRow = -1;
306 ashish 25
 
26
	private boolean selectedRowIsAlerted = false;
167 ashish 27
 
28
	public interface Listener{
29
		void onSelectItem();
30
	}
31
 
32
	interface Binder extends UiBinder<Widget, OrderList>{ }
33
 
34
	interface SelectionStyle extends CssResource{
35
		String selectedRow();
306 ashish 36
		String alertsRow();
167 ashish 37
	}
38
	//add gin here
39
	private static final Binder binder = GWT.create(Binder.class);
40
 
41
	@UiField FlexTable header;
42
	@UiField FlexTable table;
43
	@UiField SelectionStyle selectionStyle;
44
 
45
	private final EventBus eventbus;
46
 
47
	private final List<Order> orders;
48
 
49
	public OrderList(EventBus eventbus, List<Order> orders){
50
		this.orders = orders;
51
		initWidget(binder.createAndBindUi(this));
52
		this.eventbus = eventbus;
53
		initTable();
54
		updateTable();
55
		selectedRow = -1;
56
	}
57
 
58
	private void initTable(){
59
		// Initialize the header.
60
	    header.getColumnFormatter().setWidth(0, "128px");
61
	    header.getColumnFormatter().setWidth(1, "128px");
306 ashish 62
	    header.getColumnFormatter().setWidth(2, "200px");
63
	    header.getColumnFormatter().setWidth(3, "200px");
64
	    header.getColumnFormatter().setWidth(4, "200px");
167 ashish 65
	    //header.getColumnFormatter().setWidth(5, "128px");
66
 
67
	    header.setText(0, 0, "Order Id");
68
	    header.setText(0, 1, "Customer Id");
69
	    header.setText(0, 2, "Date Created");
70
	    header.setText(0, 3, "Expected Delivery");
71
	    header.setText(0, 4, "Current Status");
306 ashish 72
	    header.setText(0, 5, "Comments");
167 ashish 73
 
74
	    // Initialize the table.
75
	    table.getColumnFormatter().setWidth(0, "128px");
76
	    table.getColumnFormatter().setWidth(1, "128px");
306 ashish 77
	    table.getColumnFormatter().setWidth(2, "200px");
78
	    table.getColumnFormatter().setWidth(3, "200px");
79
	    table.getColumnFormatter().setWidth(4, "200px");    
167 ashish 80
	}
81
 
82
	private void selectRow(int row) {
83
	    // When a row (other than the first one, which is used as a header) is
84
	    // selected, display its associated MailItem.
85
		if(selectedRow != -1){
86
			styleRow(selectedRow, false);
87
		}
88
 
89
	    styleRow(row, true);
534 chandransh 90
	    selectedRow = row;
167 ashish 91
	  }
92
 
93
 
94
	private void styleRow(int row, boolean selected) {
95
	    if (row != -1) {
96
	      String style = selectionStyle.selectedRow();
97
 
98
	      if (selected) {
99
	        table.getRowFormatter().addStyleName(row, style);
100
	      } else {
101
	        table.getRowFormatter().removeStyleName(row, style);
102
	      }
103
	    }
104
	  }
105
 
306 ashish 106
	private void alertRow(int row, boolean remove){
107
		if (row != -1) {
108
		      String style = selectionStyle.alertsRow();
109
		      if(!remove)
110
		    	  table.getRowFormatter().addStyleName(row, style);
111
		      else{
112
		    	  table.getRowFormatter().removeStyleName(row, style);
113
		      }
114
		}		      
115
	}
116
 
117
	private String getDisplayableDate(Date date){
118
		String dateString = date.toString();
119
		dateString = dateString.substring(0, dateString.lastIndexOf(" "));
120
		dateString = dateString.substring(0, dateString.lastIndexOf(" "));
121
		return dateString;		
122
	}
123
 
167 ashish 124
	private void updateTable(){
125
		int i = 0;
534 chandransh 126
		for(final Order order : orders){
127
			Anchor orderIdAnchor = new Anchor(order.getOrderId() + "");
128
			table.setWidget(i, 0, orderIdAnchor);
129
			table.setText(i, 1, order.getCustomerId()+ "");
130
			table.setText(i, 2, getDisplayableDate(new Date(order.getCreatedOn()))+"");
131
			table.setText(i, 3, getDisplayableDate(new Date(order.getExpectedDeliveryTime()))+"");
132
			table.setText(i, 4, order.getStatusMessage());
487 rajveer 133
			table.setText(i, 5, "");
167 ashish 134
			i++;
135
			final int j =i-1;
306 ashish 136
 
534 chandransh 137
			if (order.isAlert()){
306 ashish 138
				alertRow(i-1, false);
139
			}
140
 
534 chandransh 141
			orderIdAnchor.addClickHandler(new ClickHandler() {
167 ashish 142
 
143
				@Override
144
				public void onClick(ClickEvent event) {
145
					selectRow(j);
534 chandransh 146
					eventbus.fireEvent(new LoadOrderDetailsEvent(order));
167 ashish 147
				}
148
			});
149
		}
150
	}
151
}