Subversion Repositories SmartDukaan

Rev

Rev 2313 | Rev 2509 | 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;
4
 
5
import com.google.gwt.dom.client.Style.Unit;
6
import com.google.gwt.event.dom.client.HasClickHandlers;
7
import com.google.gwt.user.client.ui.Anchor;
8
import com.google.gwt.user.client.ui.Composite;
306 ashish 9
import com.google.gwt.user.client.ui.DockLayoutPanel;
167 ashish 10
import com.google.gwt.user.client.ui.HTML;
584 chandransh 11
import com.google.gwt.user.client.ui.Label;
167 ashish 12
import com.google.gwt.user.client.ui.SplitLayoutPanel;
13
import com.google.gwt.user.client.ui.StackLayoutPanel;
306 ashish 14
import com.google.gwt.user.client.ui.Tree;
15
import com.google.gwt.user.client.ui.TreeItem;
167 ashish 16
import com.google.gwt.user.client.ui.Widget;
17
 
18
public class InboxWidget extends Composite implements Display{
19
 
20
	private final HTML commandList = new HTML("Navigation");
21
	private final HTML messageDetails = new HTML("Message Details");
306 ashish 22
	private DockLayoutPanel dpanel = new DockLayoutPanel(Unit.EM);
167 ashish 23
	private SplitLayoutPanel sp = new SplitLayoutPanel();
534 chandransh 24
 
25
	private Tree orderTree = new Tree();
26
	private final Anchor allOrders = new Anchor("All");
487 rajveer 27
	private final Anchor newOrders = new Anchor("Pending");
534 chandransh 28
	private final Anchor acceptedOrders = new Anchor("Accepted");
306 ashish 29
	private final Anchor billedOrders = new Anchor("Billed");
30
	private final Anchor shippedOrders = new Anchor("Shipped");
2449 chandransh 31
	private final Anchor deliveredOrders = new Anchor("Delivered");
530 chandransh 32
	private final Anchor rejectedOrders = new Anchor("Rejected");
306 ashish 33
	private final Anchor notAvailable = new Anchor("No Stock");
1193 chandransh 34
	private final Anchor printPending = new Anchor("Print Pending");
534 chandransh 35
 
597 chandransh 36
	private Label orderTreeHeader = new Label("Orders");
584 chandransh 37
	private Label catalogTreeHeader = new Label("Catalog");
760 chandransh 38
	private Label providerTreeHeader = new Label("Couriers");
39
 
534 chandransh 40
	private Tree catalogTree = new Tree();
41
	private final Anchor allItems = new Anchor("All Items");
42
	private final Anchor bestSellers = new Anchor("Best Sellers");
43
	private final Anchor bestDeals = new Anchor("Best Deals");
44
	private final Anchor latestArrivals = new Anchor("Latest Arrivals");
45
 
760 chandransh 46
	private Tree providerTree = new Tree();
47
	private final Anchor allProviders = new Anchor("All Couriers");
48
 
306 ashish 49
	private final Anchor alerts = new Anchor("Alerts");
167 ashish 50
	private Widget finalWidget = null;
51
	private Widget northWidget = null;
306 ashish 52
	private TopPanel topPanel = new TopPanel();
534 chandransh 53
 
167 ashish 54
	public InboxWidget(){
534 chandransh 55
		//Prepare the order tree
56
		TreeItem orderRootItem = createOrderTree();
57
		orderTree.addItem(orderRootItem);
58
		orderTree.setWidth("200px");
967 chandransh 59
		orderTree.setSelectedItem(orderRootItem.getChild(0)); //FIXME: 0 is the index of the pending orders. Using numbers in code is bad practice. Fix this.
534 chandransh 60
		orderTree.ensureSelectedItemVisible();
61
 
62
		//Prepare the catalogue tree
63
		TreeItem catalogRootItem = createCatalogTree();
64
		catalogTree.addItem(catalogRootItem);
65
		catalogTree.setWidth("200px");
66
		catalogTree.setSelectedItem(catalogRootItem.getChild(0)); //FIXME: 0 is the index of All Items. Using numbers in code is bad practice.
67
		catalogTree.ensureSelectedItemVisible();
760 chandransh 68
 
69
		TreeItem providerRootItem = createProviderTree();
70
		providerTree.addItem(providerRootItem);
71
		providerTree.setWidth("200px");
72
		providerTree.setSelectedItem(providerRootItem.getChild(0));
73
		providerTree.ensureSelectedItemVisible();
584 chandransh 74
 
534 chandransh 75
		//Prepare the left panel
76
		StackLayoutPanel leftPanel = new StackLayoutPanel(Unit.PX);
597 chandransh 77
		leftPanel.add(orderTree, orderTreeHeader, 25);
584 chandransh 78
		leftPanel.add(catalogTree, catalogTreeHeader, 25);
760 chandransh 79
		leftPanel.add(providerTree, providerTreeHeader, 25);
534 chandransh 80
		leftPanel.add(new HTML("<b>that</b>"), "Reports", 25);
81
 
82
		// Prepare the lower body of dashboard with the left navigation and the
83
		// display area on the right.
84
		sp.addWest(leftPanel, 200);
85
		sp.add(messageDetails);
86
 
87
		//Prepare the complete body with the header
306 ashish 88
		dpanel.addNorth(topPanel, 5);
89
		dpanel.add(sp);
534 chandransh 90
 
167 ashish 91
		finalWidget = messageDetails;
306 ashish 92
		initWidget(dpanel);
167 ashish 93
 
94
		commandList.setHTML("<p> hi, how ae you doing buddy </p><ul><li>one<li>two<li>three</ul>");
306 ashish 95
		messageDetails.setText("");
167 ashish 96
	}
534 chandransh 97
 
98
	private TreeItem createOrderTree(){
306 ashish 99
		TreeItem root = new TreeItem("Orders");
967 chandransh 100
		//root.addItem(allOrders);
306 ashish 101
		root.addItem(newOrders);
102
		root.addItem(acceptedOrders);
103
		root.addItem(billedOrders);
104
		root.addItem(shippedOrders);
105
		root.addItem(rejectedOrders);
106
		root.addItem(notAvailable);
2449 chandransh 107
		root.addItem(printPending);
108
 
109
		root.addItem(deliveredOrders);
306 ashish 110
		root.addItem(alerts);
2449 chandransh 111
		deliveredOrders.setVisible(false);
486 rajveer 112
		alerts.setVisible(false);
306 ashish 113
		return root;
114
	}
115
 
534 chandransh 116
	private TreeItem createCatalogTree(){
117
		TreeItem root = new TreeItem("Catalog");
118
		root.addItem(allItems);
119
		root.addItem(bestDeals);
120
		root.addItem(bestSellers);
121
		root.addItem(latestArrivals);
122
		return root;
123
	}
760 chandransh 124
 
125
	private TreeItem createProviderTree(){
126
		TreeItem root = new TreeItem("Courier");
127
		root.addItem(allProviders);
128
		return root;
129
	}
130
 
167 ashish 131
	@Override
132
	public Widget asWidget() {
133
 
134
		return this;
135
	}
136
 
137
	@Override
534 chandransh 138
	public void updateDetailsPane(Widget details) {
139
		if(finalWidget != null){
140
			sp.remove(finalWidget);
141
		}
142
		sp.add(details);
143
		finalWidget = details;
144
	}
145
 
146
	@Override
147
	public void removeDetailsPane() {
148
		updateDetailsPane(messageDetails);	
149
	}
167 ashish 150
 
151
	@Override
152
	public void updateOrderList(OrderList orderList) {
153
		if(finalWidget != null){
154
			sp.remove(finalWidget);
155
		}
156
		if(northWidget != null){
157
			sp.remove(northWidget);
158
		}
159
		sp.addNorth(orderList, 200);
160
		this.northWidget = orderList;
161
 
162
		sp.add(finalWidget);
163
	}
584 chandransh 164
 
165
	@Override
166
	public void updateItemList(ItemList itemList) {
167
		if(finalWidget != null){
168
			sp.remove(finalWidget);
169
		}
170
		if(northWidget != null){
171
			sp.remove(northWidget);
172
		}
173
		sp.addNorth(itemList, 200);
174
		this.northWidget = itemList;
175
 
176
		sp.add(finalWidget);
177
	}
760 chandransh 178
 
179
	@Override
180
	public void updateProviderList(ProivderList providerList) {
181
		if(finalWidget != null){
182
			sp.remove(finalWidget);
183
		}
184
		if(northWidget != null){
185
			sp.remove(northWidget);
186
		}
187
		sp.addNorth(providerList, 200);
188
		this.northWidget = providerList;
189
 
190
		sp.add(finalWidget);		
191
	}
534 chandransh 192
 
193
	@Override
194
	public void changeGreeting(String greeting) {
195
		topPanel.changeGreeting(greeting);		
196
	}
197
 
198
	@Override
199
	public HasClickHandlers getMessageBox() {
200
		return null;
201
	}	
167 ashish 202
 
203
	@Override
204
	public HasClickHandlers getAcceptedOrdersAnchor() {
205
		return acceptedOrders;
206
	}
207
 
208
	@Override
486 rajveer 209
	public HasClickHandlers getRejectedOrdersAnchor() {
210
		return rejectedOrders;
211
	}
212
 
213
	@Override
167 ashish 214
	public HasClickHandlers getBilledOrdersAnchor() {
215
		return billedOrders;
216
	}
217
 
218
	@Override
219
	public HasClickHandlers getNewOrdersAnchor() {
220
		return newOrders;
221
	}
222
 
223
	@Override
224
	public HasClickHandlers getShippedOrdersAnchor() {
225
		return shippedOrders;
226
	}
227
 
228
	@Override
306 ashish 229
	public HasClickHandlers getSignOutLink() {
230
		return topPanel.getSignOutLink();
231
	}
232
 
233
	@Override
234
	public HasClickHandlers getAllOrdersAnchor() {
235
		return allOrders;
236
	}
237
 
238
	@Override
239
	public HasClickHandlers getAlertsAnchor() {
240
		return alerts;
241
	}
242
 
243
	@Override
244
	public HasClickHandlers getNotAvailableAnchor() {
245
		return notAvailable;
246
	}
247
 
760 chandransh 248
	@Override
597 chandransh 249
	public HasClickHandlers getOrdersTreeHeader(){
250
		return orderTreeHeader;
251
	}
252
 
760 chandransh 253
	@Override
597 chandransh 254
	public HasClickHandlers getAllItemsAnchor(){
255
		return allItems;
256
	}
257
 
760 chandransh 258
	@Override
597 chandransh 259
	public HasClickHandlers getBestDealsAnchor(){
260
		return bestDeals;
261
	}
262
 
760 chandransh 263
	@Override
597 chandransh 264
	public HasClickHandlers getBestSellersAnchor(){
265
		return bestSellers;
266
	}
267
 
760 chandransh 268
	@Override
597 chandransh 269
	public HasClickHandlers getLatestArrivalsAnchor(){
270
		return latestArrivals;
271
	}
272
 
760 chandransh 273
	@Override
584 chandransh 274
	public HasClickHandlers getCatalogTreeHeader(){
275
		return catalogTreeHeader;
276
	}
277
 
760 chandransh 278
	@Override
279
	public HasClickHandlers getProviderTreeHeader(){
280
		return providerTreeHeader;
281
	}
282
 
283
	@Override
284
	public HasClickHandlers getAllProvidersAnchor(){
285
		return allProviders;
286
	}
1193 chandransh 287
 
288
	@Override
289
	public HasClickHandlers getPrintPendingAnchor() {
290
		return printPending;
291
	}
2449 chandransh 292
 
293
	@Override
294
	public HasClickHandlers getDeliveredOrdersAnchor(){
295
		return deliveredOrders;
296
	}
297
 
298
	public void enableAdminControls(){
299
		deliveredOrders.setVisible(true);
300
	}
167 ashish 301
}