KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > tapestry > pets > presentation > pages > CartPage


1 package org.apache.tapestry.pets.presentation.pages;
2
3 import java.math.BigDecimal JavaDoc;
4 import java.text.NumberFormat JavaDoc;
5 import java.util.Iterator JavaDoc;
6
7
8 import org.apache.tapestry.IRequestCycle;
9 import org.apache.tapestry.PageRedirectException;
10 import org.apache.tapestry.event.PageEvent;
11 import org.apache.tapestry.event.PageRenderListener;
12 import org.apache.tapestry.form.ListEditMap;
13 import org.apache.tapestry.pets.PetshopBasePage;
14 import org.apache.tapestry.pets.domain.model.IBasketItem;
15 import org.apache.tapestry.pets.domain.model.IShoppingCart;
16 import org.apache.tapestry.pets.domain.model.pojo.BasketItem;
17 import org.apache.tapestry.pets.presentation.components.PagedModel;
18 import org.apache.tapestry.valid.IValidationDelegate;
19
20 public abstract class CartPage extends PetshopBasePage implements
21         PageRenderListener {
22
23     public static final int INT_MIN = 1;
24
25     public static final int INT_MAX = 99;
26  
27     public void pageBeginRender(PageEvent event) {
28         if (getModel() == null) setModel(new PagedModel());
29
30         if (getCurrencyFormat() == null)
31                 setCurrencyFormat(NumberFormat.getCurrencyInstance(getEngine()
32                         .getLocale()));
33
34         // Construct a ListEditMap with all the current items.
35

36         ListEditMap map = new ListEditMap();
37
38         IBasketItem[] items = getCartList();
39         int count = items.length;
40
41         for (int i = 0; i < count; i++) {
42             IBasketItem item = (IBasketItem) items[i];
43
44             //map.add(new Integer(i), item);
45
map.add(item.getItemID(), item);
46         }
47
48         setListEditMap(map);
49     }
50
51     public IBasketItem[] getCartList() {
52         IShoppingCart cart = super.getSessionCart();
53         IBasketItem[] bitems = new BasketItem[cart.getCount()];
54
55         int i = 0;
56
57         for (Iterator JavaDoc it = cart.getItems().iterator(); it.hasNext();) {
58             IBasketItem bitem = (IBasketItem) it.next();
59             bitems[i] = bitem;
60             i++;
61         }
62
63         return bitems;
64     }
65
66     public void synchronizeItem(IRequestCycle cycle) {
67         ListEditMap map = getListEditMap();
68
69         IBasketItem item = (IBasketItem) map.getValue();
70
71         if (item == null) throw new PageRedirectException(this);
72
73         setCurrentItem(item);
74     }
75
76     public abstract void setListEditMap(ListEditMap listEditMap);
77
78     public abstract ListEditMap getListEditMap();
79
80     public abstract IBasketItem getCurrentItem();
81
82     public abstract void setCurrentItem(IBasketItem currentItem);
83
84     public abstract NumberFormat JavaDoc getCurrencyFormat();
85
86     public abstract void setCurrencyFormat(NumberFormat JavaDoc format);
87
88     public abstract PagedModel getModel();
89
90     public abstract void setModel(PagedModel model);
91
92     public boolean isEmptyCart() {
93         IShoppingCart cart = super.getSessionCart();
94
95         if ((cart == null) || (cart.getCount() == 0))
96             return true;
97         else
98             return false;
99     }
100
101     // remove specified item form cart
102
public void directRemoveFromCart(IRequestCycle cycle) {
103         Object JavaDoc[] parameters = cycle.getServiceParameters();
104         String JavaDoc itemID = ((String JavaDoc) parameters[0]);
105         // remove the item from the cart
106
IShoppingCart cart = super.getSessionCart();
107         cart.remove(itemID);
108         cycle.activate("Cart");
109     }
110
111     public void directShowItemDetails(IRequestCycle cycle) {
112         Object JavaDoc[] parameters = cycle.getServiceParameters();
113         ProductDetailsPage prodDetails = (ProductDetailsPage) cycle
114                 .getPage("ProductDetails");
115         prodDetails.setItemID(((String JavaDoc) parameters[0]));
116         cycle.activate(prodDetails);
117     }
118
119     public void formCartSumbit(IRequestCycle cycle) {
120         System.out.println("FFFFFFFFFFFFFFFFFFFFFF BEGIN FFFFFFFF 111");
121         IValidationDelegate delegate = (IValidationDelegate) getBeans()
122                 .getBean("delegate");
123         System.out.println("FFFFFFFFFFFFFFFFFFFFFF BEGIN FFFFFFFF 22222");
124         if (delegate.getHasErrors()) return;
125         System.out.println("FFFFFFFFFFFFFFFFFFFFFF BEGIN FFFFFFFF 3333");
126         IShoppingCart cart = super.getSessionCart();
127         System.out.println("FFFFFFFFFFFFFFFFFFFFFF BEGIN FFFFFFFF 44444");
128         cart.updateInStock();
129         System.out.println("FFFFFFFFFFFFFFFFFFFFFF BEGIN FFFFFFFF 55555");
130     }
131
132     public void directJumpToPage(IRequestCycle cycle) {
133         Object JavaDoc[] parameters = cycle.getServiceParameters();
134         int page = ((Integer JavaDoc) parameters[0]).intValue();
135         int pCount = ((Integer JavaDoc) parameters[1]).intValue();
136         PagedModel nmodel = new PagedModel();
137         nmodel.setPageCount(pCount);
138         nmodel.setPageToShow(page);
139         setModel(nmodel);
140     }
141
142     public BigDecimal JavaDoc getSubTotal() {
143         return (getCurrentItem().getPrice().multiply(BigDecimal
144                 .valueOf(getCurrentItem().getQty())));
145     }
146
147     public double getTotalPrice() {
148         IShoppingCart cart = super.getSessionCart();
149         return cart.getTotal();
150     }
151
152 }
Popular Tags