Subversion Repositories SmartDukaan

Rev

Rev 4125 | Rev 4175 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4125 Rev 4133
Line 1... Line 1...
1
package in.shop2020.hotspot.dashbaord.client.inbox;
1
package in.shop2020.hotspot.dashbaord.client.inbox;
2
 
2
 
3
import in.shop2020.hotspot.dashbaord.client.event.LoadOrderDetailsEvent;
3
import in.shop2020.hotspot.dashbaord.client.event.LoadOrderDetailsEvent;
-
 
4
import in.shop2020.hotspot.dashbaord.client.event.LoadOrderListEvent;
4
import in.shop2020.hotspot.dashbaord.shared.actions.Alert;
5
import in.shop2020.hotspot.dashbaord.shared.actions.Alert;
5
import in.shop2020.hotspot.dashbaord.shared.actions.Order;
6
import in.shop2020.hotspot.dashbaord.shared.actions.Order;
-
 
7
import in.shop2020.hotspot.dashbaord.shared.actions.OrderType;
6
 
8
 
7
import java.util.Date;
9
import java.util.Date;
8
import java.util.List;
10
import java.util.List;
9
 
11
 
10
import org.enunes.gwt.mvp.client.EventBus;
12
import org.enunes.gwt.mvp.client.EventBus;
Line 118... Line 120...
118
    AsyncDataProvider<Order> asyncDataProvider = new AsyncDataProvider<Order>() {
120
    AsyncDataProvider<Order> asyncDataProvider = new AsyncDataProvider<Order>() {
119
 
121
 
120
		@Override
122
		@Override
121
		protected void onRangeChanged(HasData<Order> display) {
123
		protected void onRangeChanged(HasData<Order> display) {
122
            Range range = display.getVisibleRange();
124
            Range range = display.getVisibleRange();
123
            int start = range.getStart();
125
            int newStart = range.getStart();
-
 
126
			// This is to prevent the recursive firing of onRangeChanged events.
-
 
127
			// Every time fresh data is pushed into the DataProvider, this
-
 
128
			// method is called. This, in turn, fires an event to refresh the
-
 
129
			// data. If the start of the new range is same as that of the
-
 
130
			// currently loaded data, there is no point in proceeding further.
-
 
131
            GWT.log(this + "Current start: " + start + ", New start:" + newStart);
-
 
132
            if(newStart == start)
-
 
133
            	return;
124
            int limit = range.getLength();
134
            int limit = range.getLength();
125
            int lastIndex = start + limit;
-
 
126
            if(lastIndex > orders.size()){
-
 
127
            	lastIndex = orders.size();
-
 
128
            }
135
            
129
    		asyncDataProvider.updateRowCount(orders.size(), true);
-
 
130
    		asyncDataProvider.updateRowData(start, orders.subList(start, lastIndex));
136
            eventbus.fireEvent(new LoadOrderListEvent(orderType, newStart, limit));
131
		}
137
		}
132
    	
138
    	
133
    };
139
    };
134
    
140
    
135
	private final EventBus eventbus;
141
	private final EventBus eventbus;
136
	
-
 
-
 
142
	private final OrderType orderType;
137
	private final List<Order> orders;
143
	private final List<Order> orders;
-
 
144
	private int count;
-
 
145
	private final int start;
138
	
146
	
139
	public OrderList(EventBus eventbus, List<Order> orders){
147
	public OrderList(EventBus eventbus, OrderType orderType, List<Order> orders, int start, int count){
140
		this.orders = orders;
148
		this.orders = orders;
141
		this.eventbus = eventbus;
149
		this.eventbus = eventbus;
-
 
150
		this.orderType = orderType;
-
 
151
		this.start = start;
-
 
152
		this.count = count;
142
		initWidget(binder.createAndBindUi(this));
153
		initWidget(binder.createAndBindUi(this));
143
		initTable();
154
		initTable();
144
	}
155
	}
145
	
156
	
146
	private void initTable(){
157
	private void initTable(){
Line 148... Line 159...
148
		//Add custom styles to show in case we want to alert the user
159
		//Add custom styles to show in case we want to alert the user
149
		table.setRowStyles(new RowStyles<Order>(){
160
		table.setRowStyles(new RowStyles<Order>(){
150
 
161
 
151
			@Override
162
			@Override
152
			public String getStyleNames(Order order, int rowIndex) {
163
			public String getStyleNames(Order order, int rowIndex) {
-
 
164
				if(order==null)
-
 
165
					return "";
153
				Alert alert = order.getAlert();
166
				Alert alert = order.getAlert();
154
				String style = "";
167
				String style = "";
155
			    switch(alert){
168
			    switch(alert){
156
			    case DELIVERY_TIME_EXCEEDED:
169
			    case DELIVERY_TIME_EXCEEDED:
157
			    case SHIPPING_TIME_EXCEEDED:
170
			    case SHIPPING_TIME_EXCEEDED:
Line 193... Line 206...
193
        table.setColumnWidth(creationDateColumn, 140.0, Unit.PX);
206
        table.setColumnWidth(creationDateColumn, 140.0, Unit.PX);
194
        table.setColumnWidth(promisedDeliveryDateColumn, 140.0, Unit.PX);
207
        table.setColumnWidth(promisedDeliveryDateColumn, 140.0, Unit.PX);
195
        table.setColumnWidth(expectedDeliveryDateColumn, 140.0, Unit.PX);
208
        table.setColumnWidth(expectedDeliveryDateColumn, 140.0, Unit.PX);
196
        table.setColumnWidth(statusMessageColumn, 200.0, Unit.PX);
209
        table.setColumnWidth(statusMessageColumn, 200.0, Unit.PX);
197
        
210
        
-
 
211
        table.setRowCount(count, true);
-
 
212
        table.setVisibleRange(start, orders.size());
-
 
213
		
198
        // Connect the table to the data provider.
214
        // Connect the table to the data provider.
199
        asyncDataProvider.addDataDisplay(table);
215
        asyncDataProvider.addDataDisplay(table);
200
 
216
        
201
        //Add paging support
217
        //Add paging support
202
        pager.setDisplay(table);
218
        pager.setDisplay(table);
203
        
219
        
204
        // Initialize the data
220
        // Initialize the data
205
        int lastIndex = pager.getPageSize();
-
 
206
        if(lastIndex > orders.size()){
-
 
207
        	lastIndex = orders.size();
-
 
208
        }
-
 
209
		asyncDataProvider.updateRowCount(orders.size(), true);
221
		asyncDataProvider.updateRowCount(count, true);
210
		asyncDataProvider.updateRowData(0, orders.subList(0, lastIndex));
222
		asyncDataProvider.updateRowData(start, orders);
211
		
223
		
212
        // Add a selection model to handle item selection.
224
        // Add a selection model to handle item selection.
213
        final SingleSelectionModel<Order> selectionModel = new SingleSelectionModel<Order>();
225
        final SingleSelectionModel<Order> selectionModel = new SingleSelectionModel<Order>();
214
        table.setSelectionModel(selectionModel);
226
        table.setSelectionModel(selectionModel);
215
        selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
227
        selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {