Subversion Repositories SmartDukaan

Rev

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