Subversion Repositories SmartDukaan

Rev

Rev 4397 | Rev 4420 | 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");
4399 rajveer 44
	private final Anchor alerts = new Anchor("Alerts");
45
 
597 chandransh 46
	private Label orderTreeHeader = new Label("Orders");
584 chandransh 47
	private Label catalogTreeHeader = new Label("Catalog");
760 chandransh 48
	private Label providerTreeHeader = new Label("Couriers");
2835 chandransh 49
	private Label purchaseTreeHeader = new Label("Purchases");
4286 rajveer 50
	private Label inventoryTreeHeader = new Label("Inventory");
4361 rajveer 51
	private Label allPendingTreeHeader = new Label("All Pending");
760 chandransh 52
 
4361 rajveer 53
	private Tree allPendingTree = new Tree();
4308 rajveer 54
	private final Anchor lowInventory = new Anchor("Low Inventory");
55
	private final Anchor poRaised = new Anchor("PO Raised");
56
	private final Anchor reversalInitiated = new Anchor("Reversal Initiated");
57
	private final Anchor notAvailable = new Anchor("Not Available");
58
 
534 chandransh 59
	private Tree catalogTree = new Tree();
60
	private final Anchor allItems = new Anchor("All Items");
61
	private final Anchor bestSellers = new Anchor("Best Sellers");
62
	private final Anchor bestDeals = new Anchor("Best Deals");
63
	private final Anchor latestArrivals = new Anchor("Latest Arrivals");
64
 
760 chandransh 65
	private Tree providerTree = new Tree();
66
	private final Anchor allProviders = new Anchor("All Couriers");
67
 
2835 chandransh 68
	private Tree purchaseTree = new Tree();
69
	private final Anchor newPurchaseOrders = new Anchor("New POs"); 
70
	private final Anchor openPurchaseOrders = new Anchor("Open POs");
71
	private final Anchor closedPurchaseOrders = new Anchor("Closed POs");
72
 
4286 rajveer 73
	private Tree inventoryTree = new Tree();
74
	private final Anchor reportUpload = new Anchor("Upload Report");
75
 
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);
306 ashish 173
		return root;
174
	}
175
 
534 chandransh 176
	private TreeItem createCatalogTree(){
177
		TreeItem root = new TreeItem("Catalog");
178
		root.addItem(allItems);
179
		root.addItem(bestDeals);
180
		root.addItem(bestSellers);
181
		root.addItem(latestArrivals);
182
		return root;
183
	}
760 chandransh 184
 
185
	private TreeItem createProviderTree(){
186
		TreeItem root = new TreeItem("Courier");
187
		root.addItem(allProviders);
188
		return root;
189
	}
2835 chandransh 190
 
191
   private TreeItem createPurchaseTree(){
192
        TreeItem root = new TreeItem("Purchase Orders");
193
        root.addItem(newPurchaseOrders);
194
        root.addItem(openPurchaseOrders);
195
        root.addItem(closedPurchaseOrders);
196
        return root;
197
    }
760 chandransh 198
 
167 ashish 199
	@Override
200
	public Widget asWidget() {
201
 
202
		return this;
203
	}
204
 
205
	@Override
534 chandransh 206
	public void updateDetailsPane(Widget details) {
207
		if(finalWidget != null){
208
			sp.remove(finalWidget);
209
		}
210
		sp.add(details);
211
		finalWidget = details;
212
	}
213
 
214
	@Override
215
	public void removeDetailsPane() {
216
		updateDetailsPane(messageDetails);	
217
	}
167 ashish 218
 
219
	@Override
220
	public void updateOrderList(OrderList orderList) {
221
		if(finalWidget != null){
222
			sp.remove(finalWidget);
223
		}
224
		if(northWidget != null){
225
			sp.remove(northWidget);
226
		}
227
		sp.addNorth(orderList, 200);
228
		this.northWidget = orderList;
229
 
230
		sp.add(finalWidget);
231
	}
584 chandransh 232
 
4361 rajveer 233
	public void updateOrderCount(OrderType type, long count) {
234
		switch (type) {
235
		case ACCEPTED:
236
			acceptedOrders.setText("Accepted (" + count +")");		
237
			break;
238
 
4399 rajveer 239
		case ALL_PENDING:
240
			allPendingTreeHeader.setText("All Pending (" + count +")");		
241
			break;
242
 
4361 rajveer 243
		case NEW:
244
			newOrders.setText("New Orders (" + count +")");
245
			break;
246
 
247
		case BILLED:
248
			billedOrders.setText("Billed (" + count +")");
249
			break;
250
 
251
		case SHIPPED:
252
			shippedOrders.setText("Shipped (" + count +")");
253
			break;
254
 
255
		case LOW_INVENTORY:
256
			lowInventory.setText("Low Inventory (" + count +")");
257
			break;
258
 
259
		case PO_RAISED:
260
			poRaised.setText("PO Raised (" + count +")");
261
			break;
262
 
263
		case REVERSAL_INITIATED:
264
			reversalInitiated.setText("Reversal Initiated (" + count +")");
265
			break;
266
 
267
		case NOT_AVAILABLE:
268
			notAvailable.setText("Not Available (" + count +")");
269
			break;
270
 
271
		case CANCEL_CONFIRMED:
272
			cancelConfirmed.setText("Cancel Confirmed (" + count +")");
273
			break;
274
 
275
		case VERIFICATION_PENDING:
276
			verificationPendingOrders.setText("Verification Pending (" + count +")");
277
			break;
278
 
279
		case SALES_RETURN_AWAITED:
280
			salesReturnPending.setText("Sales Return Awaited (" + count +")");
281
			break;
282
 
283
		case DOA_AWAITED:
284
			doaAwaited.setText("DOA Return Awaited (" + count +")");
285
			break;
286
 
287
		case SALES_RETURNED:
288
			salesReturned.setText("Sales Returned (" + count +")");
289
			break;
290
 
291
		case DOA_RETURNED:
292
			doaReturned.setText("DOA Returned (" + count +")");
293
			break;
294
 
295
		case RESHIPPED:
296
			reshipped.setText("Reshipped (" + count +")");
297
			break;
298
 
299
		case REFUNDED:
300
			rejectedOrders.setText(" Rejected (" + count +")");
301
			break;
302
 
303
		default:
304
			break;
305
		}
306
 
307
	}
308
 
584 chandransh 309
	@Override
2697 chandransh 310
	public void updateReturnOrderList(ReturnOrderList retOrderList) {
311
		if(finalWidget != null){
312
			sp.remove(finalWidget);
313
		}
314
		if(northWidget != null){
315
			sp.remove(northWidget);
316
		}
317
		sp.addNorth(retOrderList, 200);
318
		this.northWidget = retOrderList;
319
 
320
		sp.add(finalWidget);
321
	}
322
 
323
	@Override
4399 rajveer 324
	public void updateAlertList(AlertList alertList) {
325
		if(finalWidget != null){
326
			sp.remove(finalWidget);
327
		}
328
		if(northWidget != null){
329
			sp.remove(northWidget);
330
		}
331
		sp.addNorth(alertList, 200);
332
		this.northWidget = alertList;
333
 
334
		sp.add(finalWidget);
335
	}
336
 
337
	@Override
584 chandransh 338
	public void updateItemList(ItemList itemList) {
339
		if(finalWidget != null){
340
			sp.remove(finalWidget);
341
		}
342
		if(northWidget != null){
343
			sp.remove(northWidget);
344
		}
345
		sp.addNorth(itemList, 200);
346
		this.northWidget = itemList;
347
 
348
		sp.add(finalWidget);
349
	}
760 chandransh 350
 
351
	@Override
352
	public void updateProviderList(ProivderList providerList) {
353
		if(finalWidget != null){
354
			sp.remove(finalWidget);
355
		}
356
		if(northWidget != null){
357
			sp.remove(northWidget);
358
		}
359
		sp.addNorth(providerList, 200);
360
		this.northWidget = providerList;
361
 
362
		sp.add(finalWidget);		
363
	}
534 chandransh 364
 
365
	@Override
366
	public void changeGreeting(String greeting) {
367
		topPanel.changeGreeting(greeting);		
368
	}
369
 
370
	@Override
4397 rajveer 371
	public void updateAlertsCount(long count) {
372
		topPanel.updateAlertsCount(count);		
373
	}
374
 
375
	@Override
534 chandransh 376
	public HasClickHandlers getMessageBox() {
377
		return null;
378
	}	
167 ashish 379
 
380
	@Override
381
	public HasClickHandlers getAcceptedOrdersAnchor() {
382
		return acceptedOrders;
383
	}
384
 
385
	@Override
486 rajveer 386
	public HasClickHandlers getRejectedOrdersAnchor() {
387
		return rejectedOrders;
388
	}
389
 
390
	@Override
167 ashish 391
	public HasClickHandlers getBilledOrdersAnchor() {
392
		return billedOrders;
393
	}
394
 
395
	@Override
396
	public HasClickHandlers getNewOrdersAnchor() {
397
		return newOrders;
398
	}
399
 
400
	@Override
401
	public HasClickHandlers getShippedOrdersAnchor() {
402
		return shippedOrders;
403
	}
404
 
405
	@Override
306 ashish 406
	public HasClickHandlers getSignOutLink() {
407
		return topPanel.getSignOutLink();
408
	}
409
 
410
	@Override
4397 rajveer 411
	public HasClickHandlers getAlertsCountLink() {
412
		return topPanel.getAlertsCountLink();
413
	}
414
 
415
	@Override
4361 rajveer 416
	public HasClickHandlers getAllPendingOrdersAnchor() {
417
		return allPendingTreeHeader;
306 ashish 418
	}
419
 
420
	@Override
421
	public HasClickHandlers getAlertsAnchor() {
422
		return alerts;
423
	}
424
 
425
	@Override
4308 rajveer 426
	public HasClickHandlers getLowInventoryAnchor() {
427
		return lowInventory;
428
	}
429
 
430
	@Override
431
	public HasClickHandlers getPoRaisedAnchor() {
432
		return poRaised;
433
	}
434
 
435
	@Override
436
	public HasClickHandlers getReversalInitiatedAnchor() {
437
		return reversalInitiated;
438
	}
439
 
440
	@Override
306 ashish 441
	public HasClickHandlers getNotAvailableAnchor() {
442
		return notAvailable;
443
	}
760 chandransh 444
	@Override
4248 rajveer 445
	public HasClickHandlers getCancelConfirmedAnchor() {
446
		return cancelConfirmed;
447
	}
448
 
449
	@Override
597 chandransh 450
	public HasClickHandlers getOrdersTreeHeader(){
451
		return orderTreeHeader;
452
	}
453
 
760 chandransh 454
	@Override
597 chandransh 455
	public HasClickHandlers getAllItemsAnchor(){
456
		return allItems;
457
	}
458
 
760 chandransh 459
	@Override
597 chandransh 460
	public HasClickHandlers getBestDealsAnchor(){
461
		return bestDeals;
462
	}
463
 
760 chandransh 464
	@Override
597 chandransh 465
	public HasClickHandlers getBestSellersAnchor(){
466
		return bestSellers;
467
	}
468
 
760 chandransh 469
	@Override
597 chandransh 470
	public HasClickHandlers getLatestArrivalsAnchor(){
471
		return latestArrivals;
472
	}
473
 
760 chandransh 474
	@Override
584 chandransh 475
	public HasClickHandlers getCatalogTreeHeader(){
476
		return catalogTreeHeader;
477
	}
478
 
760 chandransh 479
	@Override
480
	public HasClickHandlers getProviderTreeHeader(){
481
		return providerTreeHeader;
482
	}
483
 
484
	@Override
485
	public HasClickHandlers getAllProvidersAnchor(){
486
		return allProviders;
487
	}
1193 chandransh 488
 
489
	@Override
490
	public HasClickHandlers getPrintPendingAnchor() {
491
		return printPending;
492
	}
2449 chandransh 493
 
494
	@Override
495
	public HasClickHandlers getDeliveredOrdersAnchor(){
496
		return deliveredOrders;
497
	}
498
 
499
	public void enableAdminControls(){
4361 rajveer 500
		verificationPendingOrders.setVisible(true);
2449 chandransh 501
		deliveredOrders.setVisible(true);
2509 chandransh 502
		doaReturned.setVisible(true);
503
		salesReturned.setVisible(true);
2630 chandransh 504
		reshipped.setVisible(true);
2449 chandransh 505
	}
2509 chandransh 506
 
507
	@Override
508
	public HasClickHandlers getDoaAwaitedAnchor() {
509
		return doaAwaited;
510
	}
511
 
512
	@Override
513
	public HasClickHandlers getDoaReturnedAnchor() {
514
		return doaReturned;
515
	}
516
 
517
	@Override
518
	public HasClickHandlers getSalesReturnPendingAnchor() {
519
		return salesReturnPending;
520
	}
521
 
522
	@Override
523
	public HasClickHandlers getSalesReturnedAnchor() {
524
		return salesReturned;
525
	}
2630 chandransh 526
 
527
	@Override
528
	public HasClickHandlers getReshippedAnchor() {
529
		return reshipped;
530
	}
2697 chandransh 531
 
532
	@Override
533
	public HasClickHandlers getReturnOrdersAnchor(){
534
		return returnOrders;
535
	}
2835 chandransh 536
 
537
    @Override
538
    public HasClickHandlers getPurchaseTreeHeader() {
539
        return purchaseTreeHeader;
540
    }
541
 
542
    @Override
543
    public HasClickHandlers getNewPurchaseOrdersAnchor() {
544
        return newPurchaseOrders;
545
    }
546
 
547
    @Override
548
    public HasClickHandlers getOpenPurchaseOrdersAnchor() {
549
        return openPurchaseOrders;
550
    }
551
 
552
    @Override
553
    public HasClickHandlers getClosedPurchaseOrdersAnchor() {
554
        return closedPurchaseOrders;
555
    }
3065 chandransh 556
 
557
    @Override
558
    public HasClickHandlers getVerificationPendingOrdersAnchor() {
559
        return verificationPendingOrders;
560
    }
4113 chandransh 561
 
562
    @Override
563
    public HasClickHandlers getSearchOrdersAnchor() {
564
        return searchOrders;
565
    }
4248 rajveer 566
 
4286 rajveer 567
	@Override
568
	public HasClickHandlers getReportUploadAnchor() {
569
		return reportUpload;
570
	}
167 ashish 571
}