Subversion Repositories SmartDukaan

Rev

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