1 package org.apache.tapestry.pets.presentation.pages; 2 3 import java.math.BigDecimal ; 4 import java.text.NumberFormat ; 5 import java.util.Iterator ; 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 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(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 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 getCurrencyFormat(); 85 86 public abstract void setCurrencyFormat(NumberFormat 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 public void directRemoveFromCart(IRequestCycle cycle) { 103 Object [] parameters = cycle.getServiceParameters(); 104 String itemID = ((String ) parameters[0]); 105 IShoppingCart cart = super.getSessionCart(); 107 cart.remove(itemID); 108 cycle.activate("Cart"); 109 } 110 111 public void directShowItemDetails(IRequestCycle cycle) { 112 Object [] parameters = cycle.getServiceParameters(); 113 ProductDetailsPage prodDetails = (ProductDetailsPage) cycle 114 .getPage("ProductDetails"); 115 prodDetails.setItemID(((String ) 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 [] parameters = cycle.getServiceParameters(); 134 int page = ((Integer ) parameters[0]).intValue(); 135 int pCount = ((Integer ) parameters[1]).intValue(); 136 PagedModel nmodel = new PagedModel(); 137 nmodel.setPageCount(pCount); 138 nmodel.setPageToShow(page); 139 setModel(nmodel); 140 } 141 142 public BigDecimal 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 |