Subversion Repositories SmartDukaan

Rev

Rev 4361 | Rev 4399 | Go to most recent revision | Details | Compare with Previous | 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.inbox.InboxPresenter.Display;
4361 rajveer 4
import in.shop2020.hotspot.dashbaord.shared.actions.OrderType;
167 ashish 5
 
6
import com.google.gwt.dom.client.Style.Unit;
7
import com.google.gwt.event.dom.client.HasClickHandlers;
8
import com.google.gwt.user.client.ui.Anchor;
9
import com.google.gwt.user.client.ui.Composite;
306 ashish 10
import com.google.gwt.user.client.ui.DockLayoutPanel;
167 ashish 11
import com.google.gwt.user.client.ui.HTML;
584 chandransh 12
import com.google.gwt.user.client.ui.Label;
167 ashish 13
import com.google.gwt.user.client.ui.SplitLayoutPanel;
14
import com.google.gwt.user.client.ui.StackLayoutPanel;
306 ashish 15
import com.google.gwt.user.client.ui.Tree;
16
import com.google.gwt.user.client.ui.TreeItem;
167 ashish 17
import com.google.gwt.user.client.ui.Widget;
18
 
19
public class InboxWidget extends Composite implements Display{
20
 
21
	private final HTML commandList = new HTML("Navigation");
22
	private final HTML messageDetails = new HTML("Message Details");
306 ashish 23
	private DockLayoutPanel dpanel = new DockLayoutPanel(Unit.EM);
167 ashish 24
	private SplitLayoutPanel sp = new SplitLayoutPanel();
534 chandransh 25
 
26
	private Tree orderTree = new Tree();
27
	private final Anchor allOrders = new Anchor("All");
3065 chandransh 28
	private final Anchor verificationPendingOrders = new Anchor("Verification Pending");
4353 rajveer 29
	private final Anchor newOrders = new Anchor("New Orders");
534 chandransh 30
	private final Anchor acceptedOrders = new Anchor("Accepted");
306 ashish 31
	private final Anchor billedOrders = new Anchor("Billed");
32
	private final Anchor shippedOrders = new Anchor("Shipped");
2449 chandransh 33
	private final Anchor deliveredOrders = new Anchor("Delivered");
530 chandransh 34
	private final Anchor rejectedOrders = new Anchor("Rejected");
4248 rajveer 35
	private final Anchor cancelConfirmed = new Anchor("Cancel Confirmed");
1193 chandransh 36
	private final Anchor printPending = new Anchor("Print Pending");
2509 chandransh 37
	private final Anchor doaAwaited = new Anchor("DOA Return Awaited");
38
	private final Anchor salesReturnPending = new Anchor("Sales Return Awaited");
4113 chandransh 39
	private final Anchor searchOrders = new Anchor("Search");
2509 chandransh 40
	private final Anchor doaReturned = new Anchor("DOA Returned");
41
	private final Anchor salesReturned = new Anchor("Sales Returned");
2630 chandransh 42
	private final Anchor reshipped = new Anchor("Reshipped");
2697 chandransh 43
	private final Anchor returnOrders = new Anchor("Returns");
534 chandransh 44
 
597 chandransh 45
	private Label orderTreeHeader = new Label("Orders");
584 chandransh 46
	private Label catalogTreeHeader = new Label("Catalog");
760 chandransh 47
	private Label providerTreeHeader = new Label("Couriers");
2835 chandransh 48
	private Label purchaseTreeHeader = new Label("Purchases");
4286 rajveer 49
	private Label inventoryTreeHeader = new Label("Inventory");
4361 rajveer 50
	private Label allPendingTreeHeader = new Label("All Pending");
760 chandransh 51
 
4361 rajveer 52
	private Tree allPendingTree = new Tree();
4308 rajveer 53
	private final Anchor lowInventory = new Anchor("Low Inventory");
54
	private final Anchor poRaised = new Anchor("PO Raised");
55
	private final Anchor reversalInitiated = new Anchor("Reversal Initiated");
56
	private final Anchor notAvailable = new Anchor("Not Available");
57
 
534 chandransh 58
	private Tree catalogTree = new Tree();
59
	private final Anchor allItems = new Anchor("All Items");
60
	private final Anchor bestSellers = new Anchor("Best Sellers");
61
	private final Anchor bestDeals = new Anchor("Best Deals");
62
	private final Anchor latestArrivals = new Anchor("Latest Arrivals");
63
 
760 chandransh 64
	private Tree providerTree = new Tree();
65
	private final Anchor allProviders = new Anchor("All Couriers");
66
 
2835 chandransh 67
	private Tree purchaseTree = new Tree();
68
	private final Anchor newPurchaseOrders = new Anchor("New POs"); 
69
	private final Anchor openPurchaseOrders = new Anchor("Open POs");
70
	private final Anchor closedPurchaseOrders = new Anchor("Closed POs");
71
 
4286 rajveer 72
	private Tree inventoryTree = new Tree();
73
	private final Anchor reportUpload = new Anchor("Upload Report");
74
 
306 ashish 75
	private final Anchor alerts = new Anchor("Alerts");
167 ashish 76
	private Widget finalWidget = null;
77
	private Widget northWidget = null;
306 ashish 78
	private TopPanel topPanel = new TopPanel();
534 chandransh 79
 
167 ashish 80
	public InboxWidget(){
534 chandransh 81
		//Prepare the order tree
82
		TreeItem orderRootItem = createOrderTree();
83
		orderTree.addItem(orderRootItem);
84
		orderTree.setWidth("200px");
3065 chandransh 85
		orderTree.setSelectedItem(orderRootItem.getChild(1)); //FIXME: 0 is the index of the pending orders. Using numbers in code is bad practice. Fix this.
534 chandransh 86
		orderTree.ensureSelectedItemVisible();
87
 
88
		//Prepare the catalogue tree
89
		TreeItem catalogRootItem = createCatalogTree();
90
		catalogTree.addItem(catalogRootItem);
91
		catalogTree.setWidth("200px");
92
		catalogTree.setSelectedItem(catalogRootItem.getChild(0)); //FIXME: 0 is the index of All Items. Using numbers in code is bad practice.
93
		catalogTree.ensureSelectedItemVisible();
760 chandransh 94
 
95
		TreeItem providerRootItem = createProviderTree();
96
		providerTree.addItem(providerRootItem);
97
		providerTree.setWidth("200px");
98
		providerTree.setSelectedItem(providerRootItem.getChild(0));
99
		providerTree.ensureSelectedItemVisible();
584 chandransh 100
 
2835 chandransh 101
		TreeItem purchaseRootItem = createPurchaseTree();
102
        providerTree.addItem(purchaseRootItem);
103
        providerTree.setWidth("200px");
104
        providerTree.setSelectedItem(purchaseRootItem.getChild(0));
105
        providerTree.ensureSelectedItemVisible();
4286 rajveer 106
 
107
        //Prepare the left panel
534 chandransh 108
		StackLayoutPanel leftPanel = new StackLayoutPanel(Unit.PX);
597 chandransh 109
		leftPanel.add(orderTree, orderTreeHeader, 25);
584 chandransh 110
		leftPanel.add(catalogTree, catalogTreeHeader, 25);
760 chandransh 111
		leftPanel.add(providerTree, providerTreeHeader, 25);
2835 chandransh 112
		//leftPanel.add(purchaseTree, purchaseTreeHeader, 25);
4286 rajveer 113
		inventoryTree.addItem(reportUpload);
114
		leftPanel.add(inventoryTree, inventoryTreeHeader, 25);
534 chandransh 115
 
4286 rajveer 116
 
534 chandransh 117
		// Prepare the lower body of dashboard with the left navigation and the
118
		// display area on the right.
119
		sp.addWest(leftPanel, 200);
120
		sp.add(messageDetails);
121
 
122
		//Prepare the complete body with the header
306 ashish 123
		dpanel.addNorth(topPanel, 5);
124
		dpanel.add(sp);
534 chandransh 125
 
167 ashish 126
		finalWidget = messageDetails;
306 ashish 127
		initWidget(dpanel);
167 ashish 128
 
129
		commandList.setHTML("<p> hi, how ae you doing buddy </p><ul><li>one<li>two<li>three</ul>");
306 ashish 130
		messageDetails.setText("");
167 ashish 131
	}
534 chandransh 132
 
133
	private TreeItem createOrderTree(){
306 ashish 134
		TreeItem root = new TreeItem("Orders");
967 chandransh 135
		//root.addItem(allOrders);
3065 chandransh 136
		root.addItem(verificationPendingOrders);
4308 rajveer 137
 
4361 rajveer 138
		TreeItem lowInventoryItem = new TreeItem(allPendingTreeHeader);
139
		allPendingTree.addItem(lowInventoryItem);
140
		allPendingTree.setSelectedItem(lowInventoryItem);
141
		allPendingTree.ensureSelectedItemVisible();
4353 rajveer 142
		lowInventoryItem.addItem(newOrders);
4308 rajveer 143
		lowInventoryItem.addItem(lowInventory);
144
		lowInventoryItem.addItem(poRaised);
145
		lowInventoryItem.addItem(reversalInitiated);
146
		lowInventoryItem.addItem(notAvailable);
4361 rajveer 147
		root.addItem(allPendingTree);
4308 rajveer 148
 
4353 rajveer 149
		root.addItem(acceptedOrders);
150
		root.addItem(billedOrders);
151
		root.addItem(shippedOrders);
152
		root.addItem(rejectedOrders);
4308 rajveer 153
 
4251 rajveer 154
		root.addItem(cancelConfirmed);
4248 rajveer 155
		root.addItem(salesReturnPending);
2449 chandransh 156
		root.addItem(printPending);
2509 chandransh 157
		root.addItem(doaAwaited);
4113 chandransh 158
		root.addItem(searchOrders);
2449 chandransh 159
 
4248 rajveer 160
 
2697 chandransh 161
		root.addItem(returnOrders);
2630 chandransh 162
 
2449 chandransh 163
		root.addItem(deliveredOrders);
2509 chandransh 164
		root.addItem(doaReturned);
165
		root.addItem(salesReturned);
2630 chandransh 166
		root.addItem(reshipped);
306 ashish 167
		root.addItem(alerts);
4361 rajveer 168
		verificationPendingOrders.setVisible(false);
2449 chandransh 169
		deliveredOrders.setVisible(false);
2509 chandransh 170
		doaReturned.setVisible(false);
171
		salesReturned.setVisible(false);
2630 chandransh 172
		reshipped.setVisible(false);
486 rajveer 173
		alerts.setVisible(false);
306 ashish 174
		return root;
175
	}
176
 
534 chandransh 177
	private TreeItem createCatalogTree(){
178
		TreeItem root = new TreeItem("Catalog");
179
		root.addItem(allItems);
180
		root.addItem(bestDeals);
181
		root.addItem(bestSellers);
182
		root.addItem(latestArrivals);
183
		return root;
184
	}
760 chandransh 185
 
186
	private TreeItem createProviderTree(){
187
		TreeItem root = new TreeItem("Courier");
188
		root.addItem(allProviders);
189
		return root;
190
	}
2835 chandransh 191
 
192
   private TreeItem createPurchaseTree(){
193
        TreeItem root = new TreeItem("Purchase Orders");
194
        root.addItem(newPurchaseOrders);
195
        root.addItem(openPurchaseOrders);
196
        root.addItem(closedPurchaseOrders);
197
        return root;
198
    }
760 chandransh 199
 
167 ashish 200
	@Override
201
	public Widget asWidget() {
202
 
203
		return this;
204
	}
205
 
206
	@Override
534 chandransh 207
	public void updateDetailsPane(Widget details) {
208
		if(finalWidget != null){
209
			sp.remove(finalWidget);
210
		}
211
		sp.add(details);
212
		finalWidget = details;
213
	}
214
 
215
	@Override
216
	public void removeDetailsPane() {
217
		updateDetailsPane(messageDetails);	
218
	}
167 ashish 219
 
220
	@Override
221
	public void updateOrderList(OrderList orderList) {
222
		if(finalWidget != null){
223
			sp.remove(finalWidget);
224
		}
225
		if(northWidget != null){
226
			sp.remove(northWidget);
227
		}
228
		sp.addNorth(orderList, 200);
229
		this.northWidget = orderList;
230
 
231
		sp.add(finalWidget);
232
	}
584 chandransh 233
 
4361 rajveer 234
	public void updateOrderCount(OrderType type, long count) {
235
		switch (type) {
236
		case ACCEPTED:
237
			acceptedOrders.setText("Accepted (" + count +")");		
238
			break;
239
 
240
		case NEW:
241
			newOrders.setText("New Orders (" + count +")");
242
			break;
243
 
244
		case BILLED:
245
			billedOrders.setText("Billed (" + count +")");
246
			break;
247
 
248
		case SHIPPED:
249
			shippedOrders.setText("Shipped (" + count +")");
250
			break;
251
 
252
		case LOW_INVENTORY:
253
			lowInventory.setText("Low Inventory (" + count +")");
254
			break;
255
 
256
		case PO_RAISED:
257
			poRaised.setText("PO Raised (" + count +")");
258
			break;
259
 
260
		case REVERSAL_INITIATED:
261
			reversalInitiated.setText("Reversal Initiated (" + count +")");
262
			break;
263
 
264
		case NOT_AVAILABLE:
265
			notAvailable.setText("Not Available (" + count +")");
266
			break;
267
 
268
		case CANCEL_CONFIRMED:
269
			cancelConfirmed.setText("Cancel Confirmed (" + count +")");
270
			break;
271
 
272
		case VERIFICATION_PENDING:
273
			verificationPendingOrders.setText("Verification Pending (" + count +")");
274
			break;
275
 
276
		case SALES_RETURN_AWAITED:
277
			salesReturnPending.setText("Sales Return Awaited (" + count +")");
278
			break;
279
 
280
		case DOA_AWAITED:
281
			doaAwaited.setText("DOA Return Awaited (" + count +")");
282
			break;
283
 
284
		case SALES_RETURNED:
285
			salesReturned.setText("Sales Returned (" + count +")");
286
			break;
287
 
288
		case DOA_RETURNED:
289
			doaReturned.setText("DOA Returned (" + count +")");
290
			break;
291
 
292
		case RESHIPPED:
293
			reshipped.setText("Reshipped (" + count +")");
294
			break;
295
 
296
		case REFUNDED:
297
			rejectedOrders.setText(" Rejected (" + count +")");
298
			break;
299
 
300
		default:
301
			break;
302
		}
303
 
304
	}
305
 
584 chandransh 306
	@Override
2697 chandransh 307
	public void updateReturnOrderList(ReturnOrderList retOrderList) {
308
		if(finalWidget != null){
309
			sp.remove(finalWidget);
310
		}
311
		if(northWidget != null){
312
			sp.remove(northWidget);
313
		}
314
		sp.addNorth(retOrderList, 200);
315
		this.northWidget = retOrderList;
316
 
317
		sp.add(finalWidget);
318
	}
319
 
320
	@Override
584 chandransh 321
	public void updateItemList(ItemList itemList) {
322
		if(finalWidget != null){
323
			sp.remove(finalWidget);
324
		}
325
		if(northWidget != null){
326
			sp.remove(northWidget);
327
		}
328
		sp.addNorth(itemList, 200);
329
		this.northWidget = itemList;
330
 
331
		sp.add(finalWidget);
332
	}
760 chandransh 333
 
334
	@Override
335
	public void updateProviderList(ProivderList providerList) {
336
		if(finalWidget != null){
337
			sp.remove(finalWidget);
338
		}
339
		if(northWidget != null){
340
			sp.remove(northWidget);
341
		}
342
		sp.addNorth(providerList, 200);
343
		this.northWidget = providerList;
344
 
345
		sp.add(finalWidget);		
346
	}
534 chandransh 347
 
348
	@Override
349
	public void changeGreeting(String greeting) {
350
		topPanel.changeGreeting(greeting);		
351
	}
352
 
353
	@Override
4397 rajveer 354
	public void updateAlertsCount(long count) {
355
		topPanel.updateAlertsCount(count);		
356
	}
357
 
358
	@Override
534 chandransh 359
	public HasClickHandlers getMessageBox() {
360
		return null;
361
	}	
167 ashish 362
 
363
	@Override
364
	public HasClickHandlers getAcceptedOrdersAnchor() {
365
		return acceptedOrders;
366
	}
367
 
368
	@Override
486 rajveer 369
	public HasClickHandlers getRejectedOrdersAnchor() {
370
		return rejectedOrders;
371
	}
372
 
373
	@Override
167 ashish 374
	public HasClickHandlers getBilledOrdersAnchor() {
375
		return billedOrders;
376
	}
377
 
378
	@Override
379
	public HasClickHandlers getNewOrdersAnchor() {
380
		return newOrders;
381
	}
382
 
383
	@Override
384
	public HasClickHandlers getShippedOrdersAnchor() {
385
		return shippedOrders;
386
	}
387
 
388
	@Override
306 ashish 389
	public HasClickHandlers getSignOutLink() {
390
		return topPanel.getSignOutLink();
391
	}
392
 
393
	@Override
4397 rajveer 394
	public HasClickHandlers getAlertsCountLink() {
395
		return topPanel.getAlertsCountLink();
396
	}
397
 
398
	@Override
4361 rajveer 399
	public HasClickHandlers getAllPendingOrdersAnchor() {
400
		return allPendingTreeHeader;
306 ashish 401
	}
402
 
403
	@Override
404
	public HasClickHandlers getAlertsAnchor() {
405
		return alerts;
406
	}
407
 
408
	@Override
4308 rajveer 409
	public HasClickHandlers getLowInventoryAnchor() {
410
		return lowInventory;
411
	}
412
 
413
	@Override
414
	public HasClickHandlers getPoRaisedAnchor() {
415
		return poRaised;
416
	}
417
 
418
	@Override
419
	public HasClickHandlers getReversalInitiatedAnchor() {
420
		return reversalInitiated;
421
	}
422
 
423
	@Override
306 ashish 424
	public HasClickHandlers getNotAvailableAnchor() {
425
		return notAvailable;
426
	}
760 chandransh 427
	@Override
4248 rajveer 428
	public HasClickHandlers getCancelConfirmedAnchor() {
429
		return cancelConfirmed;
430
	}
431
 
432
	@Override
597 chandransh 433
	public HasClickHandlers getOrdersTreeHeader(){
434
		return orderTreeHeader;
435
	}
436
 
760 chandransh 437
	@Override
597 chandransh 438
	public HasClickHandlers getAllItemsAnchor(){
439
		return allItems;
440
	}
441
 
760 chandransh 442
	@Override
597 chandransh 443
	public HasClickHandlers getBestDealsAnchor(){
444
		return bestDeals;
445
	}
446
 
760 chandransh 447
	@Override
597 chandransh 448
	public HasClickHandlers getBestSellersAnchor(){
449
		return bestSellers;
450
	}
451
 
760 chandransh 452
	@Override
597 chandransh 453
	public HasClickHandlers getLatestArrivalsAnchor(){
454
		return latestArrivals;
455
	}
456
 
760 chandransh 457
	@Override
584 chandransh 458
	public HasClickHandlers getCatalogTreeHeader(){
459
		return catalogTreeHeader;
460
	}
461
 
760 chandransh 462
	@Override
463
	public HasClickHandlers getProviderTreeHeader(){
464
		return providerTreeHeader;
465
	}
466
 
467
	@Override
468
	public HasClickHandlers getAllProvidersAnchor(){
469
		return allProviders;
470
	}
1193 chandransh 471
 
472
	@Override
473
	public HasClickHandlers getPrintPendingAnchor() {
474
		return printPending;
475
	}
2449 chandransh 476
 
477
	@Override
478
	public HasClickHandlers getDeliveredOrdersAnchor(){
479
		return deliveredOrders;
480
	}
481
 
482
	public void enableAdminControls(){
4361 rajveer 483
		verificationPendingOrders.setVisible(true);
2449 chandransh 484
		deliveredOrders.setVisible(true);
2509 chandransh 485
		doaReturned.setVisible(true);
486
		salesReturned.setVisible(true);
2630 chandransh 487
		reshipped.setVisible(true);
2449 chandransh 488
	}
2509 chandransh 489
 
490
	@Override
491
	public HasClickHandlers getDoaAwaitedAnchor() {
492
		return doaAwaited;
493
	}
494
 
495
	@Override
496
	public HasClickHandlers getDoaReturnedAnchor() {
497
		return doaReturned;
498
	}
499
 
500
	@Override
501
	public HasClickHandlers getSalesReturnPendingAnchor() {
502
		return salesReturnPending;
503
	}
504
 
505
	@Override
506
	public HasClickHandlers getSalesReturnedAnchor() {
507
		return salesReturned;
508
	}
2630 chandransh 509
 
510
	@Override
511
	public HasClickHandlers getReshippedAnchor() {
512
		return reshipped;
513
	}
2697 chandransh 514
 
515
	@Override
516
	public HasClickHandlers getReturnOrdersAnchor(){
517
		return returnOrders;
518
	}
2835 chandransh 519
 
520
    @Override
521
    public HasClickHandlers getPurchaseTreeHeader() {
522
        return purchaseTreeHeader;
523
    }
524
 
525
    @Override
526
    public HasClickHandlers getNewPurchaseOrdersAnchor() {
527
        return newPurchaseOrders;
528
    }
529
 
530
    @Override
531
    public HasClickHandlers getOpenPurchaseOrdersAnchor() {
532
        return openPurchaseOrders;
533
    }
534
 
535
    @Override
536
    public HasClickHandlers getClosedPurchaseOrdersAnchor() {
537
        return closedPurchaseOrders;
538
    }
3065 chandransh 539
 
540
    @Override
541
    public HasClickHandlers getVerificationPendingOrdersAnchor() {
542
        return verificationPendingOrders;
543
    }
4113 chandransh 544
 
545
    @Override
546
    public HasClickHandlers getSearchOrdersAnchor() {
547
        return searchOrders;
548
    }
4248 rajveer 549
 
4286 rajveer 550
	@Override
551
	public HasClickHandlers getReportUploadAnchor() {
552
		return reportUpload;
553
	}
167 ashish 554
}