KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > cms > product > action > AddToCartAction


1 package com.dotmarketing.cms.product.action;
2
3 import java.net.URLDecoder JavaDoc;
4 import java.util.List JavaDoc;
5
6 import javax.servlet.http.HttpServletRequest JavaDoc;
7 import javax.servlet.http.HttpServletResponse JavaDoc;
8 import javax.servlet.http.HttpSession JavaDoc;
9
10 import org.apache.struts.action.ActionForm;
11 import org.apache.struts.action.ActionForward;
12 import org.apache.struts.action.ActionMapping;
13 import org.apache.struts.action.ActionMessage;
14 import org.apache.struts.action.ActionMessages;
15 import org.apache.struts.actions.DispatchAction;
16
17 import com.dotmarketing.cms.product.model.Holder;
18 import com.dotmarketing.cms.product.model.ShoppingCart;
19 import com.dotmarketing.portlets.discountcode.factories.DiscountCodeFactory;
20 import com.dotmarketing.portlets.discountcode.model.DiscountCode;
21 import com.dotmarketing.util.UtilMethods;
22 import com.dotmarketing.util.WebKeys;
23
24 public class AddToCartAction extends DispatchAction
25 {
26     public ActionForward unspecified(ActionMapping mapping, ActionForm lf,
27             HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
28             throws Exception JavaDoc {
29         
30         HttpSession JavaDoc session = request.getSession();
31         ShoppingCart shoppingCart = _getShopingCart(request);
32         long formatInode = Long.parseLong(request.getParameter(WebKeys.SHOPPING_CART_FORMAT_INODE));
33         int quantity = Integer.parseInt(request.getParameter(WebKeys.SHOPPING_CART_FORMAT_QUANTITY));
34         shoppingCart.addItem(quantity,formatInode);
35         
36         String JavaDoc referrer = request.getParameter("referrer");
37         referrer = URLDecoder.decode(referrer,"UTF-8");
38                 
39         ActionMessages messages = new ActionMessages();
40         messages.add("message" ,new ActionMessage ("message.shoppingcart.added"));
41         saveMessages(session, messages);
42         ActionForward af = new ActionForward(referrer);
43         af.setRedirect(true);
44         return af;
45     }
46     
47     public ActionForward remove(ActionMapping mapping, ActionForm lf,
48             HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
49             throws Exception JavaDoc {
50         
51         ShoppingCart shoppingCart = _getShopingCart(request);
52         long formatInode = Long.parseLong(request.getParameter("inode"));
53         shoppingCart.removeItem(formatInode);
54         
55         ActionForward af = mapping.findForward("viewCart");
56         return af;
57     }
58
59     public ActionForward addDiscount(ActionMapping mapping, ActionForm lf,
60             HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
61             throws Exception JavaDoc {
62         
63         ShoppingCart shoppingCart = _getShopingCart(request);
64         String JavaDoc discountString = request.getParameter("discount");
65         String JavaDoc[] discounts = discountString.split(":");
66         
67         for(String JavaDoc discount : discounts)
68         {
69             discount = discount.trim();
70             DiscountCode discountCode = DiscountCodeFactory.getDiscountCodeById(discount);
71             if(discountCode.getInode() != 0)
72             {
73                 shoppingCart.deleteDiscountCode(discount);
74                 shoppingCart.addDiscount(discountCode);
75             }
76         }
77         
78         ActionForward af = mapping.findForward("viewCart");
79         return af;
80     }
81     
82     public ActionForward removeDiscount(ActionMapping mapping, ActionForm lf,
83             HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
84             throws Exception JavaDoc {
85         
86         ShoppingCart shoppingCart = _getShopingCart(request);
87         String JavaDoc discountString = request.getParameter("inode");
88
89         shoppingCart.deleteDiscountCode(discountString);
90         
91         ActionForward af = mapping.findForward("viewCart");
92         return af;
93     }
94     
95     public ActionForward update(ActionMapping mapping, ActionForm lf,
96             HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
97             throws Exception JavaDoc {
98         
99         ShoppingCart shoppingCart = _getShopingCart(request);
100         List JavaDoc<Holder> holders = shoppingCart.getHolders();
101         for(Holder holder : holders)
102         {
103             long formatInode = holder.getFormat().getInode();
104             String JavaDoc quantityString = request.getParameter(Long.toString(formatInode));
105             if(UtilMethods.isInt(quantityString))
106             {
107                 int quantity = Integer.parseInt(quantityString);
108                 holder.setQuantity(quantity);
109             }
110         }
111         ActionForward af = mapping.findForward("viewCart");
112         return af;
113     }
114     
115     
116     
117     private ShoppingCart _getShopingCart(HttpServletRequest JavaDoc request)
118     {
119         HttpSession JavaDoc session = request.getSession();
120         ShoppingCart shoppingCart = (ShoppingCart) session.getAttribute(WebKeys.SHOPPING_CART);
121         if (shoppingCart == null)
122         {
123             shoppingCart = new ShoppingCart();
124             session.setAttribute(WebKeys.SHOPPING_CART,shoppingCart);
125         }
126         return shoppingCart;
127     }
128 }
129
Popular Tags