CallPageFlowController.jpf Sample

This topic inludes the source code for the CallPageFlowController.jpf Sample.

Sample Location

This sample is located in the following directory in your WebLogic Workshop installation:

BEA_HOME/weblogic81/samples/workshop/SamplesApp/WebApp/tagSamples/netui_databinding/callPageFlow/

Sample Source Code


001 /*
002  * The JSP pages in this sample use the <netui-data:callPageFlow> tag
003  * to invoke methods defined in this page flow file.
004  */
005 package tagSamples.netui_databinding.callPageFlow;
006 
007 // java imports
008 import java.io.Serializable;
009 
010 import java.util.ArrayList;
011 import java.util.List;
012 
013 // internal imports
014 import com.bea.wlw.netui.pageflow.PageFlowController;
015 import com.bea.wlw.netui.pageflow.Forward;
016 
017 // external imports
018 
019 /**
020  *
021  * @jpf:view-properties view-properties::
022  <!-- This data is auto-generated. Hand-editing this section is not recommended. -->
023  <view-properties>
024  <pageflow-object id="pageflow:/tagSamples/netui_databinding/callPageFlow/callPageFlowController.jpf"/>
025  <pageflow-object id="action:Sum.do">
026  *   <property value="220" name="x"/>
027  *   <property value="60" name="y"/>
028  </pageflow-object>
029  <pageflow-object id="action:Simple.do">
030  *   <property value="340" name="x"/>
031  *   <property value="60" name="y"/>
032  </pageflow-object>
033  <pageflow-object id="action:begin.do">
034  *   <property value="100" name="x"/>
035  *   <property value="60" name="y"/>
036  </pageflow-object>
037  <pageflow-object id="action-call:@page:sum.jsp@#@action:begin.do@">
038  *   <property value="184,160,160,136" name="elbowsX"/>
039  *   <property value="212,212,52,52" name="elbowsY"/>
040  *   <property value="West_1" name="fromPort"/>
041  *   <property value="East_1" name="toPort"/>
042  </pageflow-object>
043  <pageflow-object id="page:sum.jsp">
044  *   <property value="220" name="x"/>
045  *   <property value="220" name="y"/>
046  </pageflow-object>
047  <pageflow-object id="action-call:@page:simple.jsp@#@action:begin.do@">
048  *   <property value="304,220,220,136" name="elbowsX"/>
049  *   <property value="212,212,63,63" name="elbowsY"/>
050  *   <property value="West_1" name="fromPort"/>
051  *   <property value="East_2" name="toPort"/>
052  </pageflow-object>
053  <pageflow-object id="page:simple.jsp">
054  *   <property value="340" name="x"/>
055  *   <property value="220" name="y"/>
056  </pageflow-object>
057  <pageflow-object id="page:index.jsp">
058  *   <property value="100" name="x"/>
059  *   <property value="220" name="y"/>
060  </pageflow-object>
061  <pageflow-object id="forward:path#Sum#sum.jsp#@action:Sum.do@">
062  *   <property value="104,140,140,176" name="elbowsY"/>
063  *   <property value="North_1" name="toPort"/>
064  *   <property value="220,220,220,220" name="elbowsX"/>
065  *   <property value="Sum" name="label"/>
066  *   <property value="South_1" name="fromPort"/>
067  </pageflow-object>
068  <pageflow-object id="forward:path#Simple#simple.jsp#@action:Simple.do@">
069  *   <property value="104,140,140,176" name="elbowsY"/>
070  *   <property value="North_1" name="toPort"/>
071  *   <property value="340,340,340,340" name="elbowsX"/>
072  *   <property value="Simple" name="label"/>
073  *   <property value="South_1" name="fromPort"/>
074  </pageflow-object>
075  <pageflow-object id="forward:path#index#index.jsp#@action:begin.do@">
076  *   <property value="104,140,140,176" name="elbowsY"/>
077  *   <property value="100,100,100,100" name="elbowsX"/>
078  *   <property value="North_1" name="toPort"/>
079  *   <property value="South_1" name="fromPort"/>
080  *   <property value="index" name="label"/>
081  </pageflow-object>
082  </view-properties>
083  * ::
084  
085  */
086 public class callPageFlowController extends PageFlowController
087 {
088     private String defaultText = "Hello World!";
089 
090     private Cart cart = null;
091 
092     public String getDefaultText()
093     {
094         return defaultText;
095     }
096 
097     public String echo(String echo)
098     {
099         return echo;
100     }
101 
102     public Cart getCart()
103     {
104         return cart;
105     }
106 
107     public Double sumCartItems(List items)
108     {
109         if(items == nullreturn new Double(0);
110 
111         double sum = 0.0;
112         for(int i = 0; i < items.size(); i++)
113         {
114             LineItem item = (LineItem)items.get(i);
115 //            sum += item.getQuantity() * item.getPrice();
116                 sum += item.getTotal();
117         }
118 
119         return new Double(sum);
120     }
121     
122     public String getShippingState(int shipState)
123     {
124         if(shipState == LineItem.IN_TRANSIT)
125             return "inTransit";
126         else if(shipState == LineItem.NOT_SHIPPED)
127             return "notShipped";
128         else if(shipState == LineItem.ARRIVED)
129             return "arrived";
130         else return "unknown";
131     }
132 
133     /**
134      * @jpf:action
135      * @jpf:forward name="Sum" path="sum.jsp"
136      */
137     public Forward Sum()
138     {
139         if(cart == null)
140             cart = initCart();
141 
142         return new Forward("Sum");
143     }
144 
145     /**
146      * @jpf:action
147      * @jpf:forward name="Simple" path="simple.jsp"
148      */
149     public Forward Simple()
150     {
151         return new Forward("Simple");
152     }
153 
154     /**
155      * @jpf:action 
156      * @jpf:forward name="index" path="index.jsp"
157      */
158     public Forward begin()
159     {
160         cart = initCart();
161         return new Forward("index");
162     }
163 
164     private Cart initCart()
165     {
166         Cart c = new Cart();
167         c.addItem(new LineItem("Product A"39.951));
168         c.addItem(new LineItem("Product C"219.952));
169         c.addItem(new LineItem("Product B"529.953));
170         c.addItem(new LineItem("Product D"139.954));
171         c.addItem(new LineItem("Product E"359.953));
172         c.addItem(new LineItem("Product F"21.952));
173         c.addItem(new LineItem("Product G"24.952));
174 
175         return c;
176     }
177 
178     public static class Cart
179         implements Serializable
180     {
181         private List items = null;
182         
183         public void addItem(LineItem item)
184         {
185             if(items == nullitems = new ArrayList();
186 
187             items.add(item);
188         }
189 
190         public List getLineItemList()
191         {
192             return items;
193         }
194 
195         public LineItem[] getLineItemArray()
196         {
197             if(items == nullreturn null;
198             else return (LineItem[])items.toArray();
199         }
200     }
201 
202     public static class LineItem
203         implements Serializable
204     {
205         public static final int NOT_SHIPPED = 1;
206         public static final int IN_TRANSIT = 2;
207         public static final int ARRIVED = 3;
208         public static final int UNKNOWN = 4;
209 
210         private String name = null;
211         private int quantity = 0;
212         private double price = 0.0;
213         private double total = 0.0;
214         private int shipState = NOT_SHIPPED;
215 
216         public LineItem(String name, int quantity, double price, int shipState)
217         {
218             this.name = name;
219             this.quantity = quantity;
220             this.price = price;
221             this.total = price * quantity;
222             this.shipState = shipState;
223         }
224 
225         public String getName() {return name;}
226         public double getPrice() {return price;}
227         public int getQuantity() {return quantity;}
228         public double getTotal() {return total;}
229         public int getShipState() {return shipState;}
230     }
231 }