KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > icefaces > samples > showcase > components > expandableTable > SalesGroupRecord


1 /*
2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3  *
4  * "The contents of this file are subject to the Mozilla Public License
5  * Version 1.1 (the "License"); you may not use this file except in
6  * compliance with the License. You may obtain a copy of the License at
7  * http://www.mozilla.org/MPL/
8  *
9  * Software distributed under the License is distributed on an "AS IS"
10  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
11  * License for the specific language governing rights and limitations under
12  * the License.
13  *
14  * The Original Code is ICEfaces 1.5 open source software code, released
15  * November 5, 2006. The Initial Developer of the Original Code is ICEsoft
16  * Technologies Canada, Corp. Portions created by ICEsoft are Copyright (C)
17  * 2004-2006 ICEsoft Technologies Canada, Corp. All Rights Reserved.
18  *
19  * Contributor(s): _____________________.
20  *
21  * Alternatively, the contents of this file may be used under the terms of
22  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"
23  * License), in which case the provisions of the LGPL License are
24  * applicable instead of those above. If you wish to allow use of your
25  * version of this file only under the terms of the LGPL License and not to
26  * allow others to use your version of this file under the MPL, indicate
27  * your decision by deleting the provisions above and replace them with
28  * the notice and other provisions required by the LGPL License. If you do
29  * not delete the provisions above, a recipient may use your version of
30  * this file under either the MPL or the LGPL License."
31  *
32  */

33
34 package com.icesoft.icefaces.samples.showcase.components.expandableTable;
35
36 import java.util.ArrayList JavaDoc;
37
38 /**
39  * <p>The <code>SalesGroupRecord</code> is responsible for storing a list of
40  * child <code>SalesRecords</code>. It is this list of child records which make
41  * up an expandable node in the dataTable. When a node is expanded its'
42  * children are added to the dataTable.</p>
43  */

44 public class SalesGroupRecord extends SalesRecord {
45
46     // list of child SalesRecords.
47
protected ArrayList JavaDoc childSalesRecords = new ArrayList JavaDoc(5);
48
49     /**
50      * Gets the list of child sales records.
51      *
52      * @return list of child sales records.
53      */

54     public ArrayList JavaDoc getChildSalesRecords() {
55         return childSalesRecords;
56     }
57
58     /**
59      * Return the calculated total of this sales group. That is the sum of all
60      * the child SalesGroup Records if any.
61      *
62      * @return total dollar amount of price * quantity.
63      */

64     public int getQuantity() {
65         if (childSalesRecords != null && childSalesRecords.size() > 0) {
66             // sum up the group items.
67
int total = 0;
68             SalesGroupRecord tmp;
69             for (int i = 0; i < childSalesRecords.size(); i++) {
70                 tmp = (SalesGroupRecord) childSalesRecords.get(i);
71                 total += tmp.getQuantity();
72             }
73             return total;
74         } else {
75             return super.getQuantity();
76         }
77     }
78
79     /**
80      * Return the calculated total of this sales group. That is the sum of all
81      * the child SalesGroup Records if any.
82      *
83      * @return total dollar amount of price * quantity.
84      */

85     public double getTotal() {
86         if (childSalesRecords != null && childSalesRecords.size() > 0) {
87             // sum up the group itmes.
88
double total = 0.0;
89             SalesGroupRecord tmp;
90             for (int i = 0; i < childSalesRecords.size(); i++) {
91                 tmp = (SalesGroupRecord) childSalesRecords.get(i);
92                 total += tmp.getTotal();
93             }
94             return total;
95         } else {
96             return super.getTotal();
97         }
98     }
99
100     /**
101      * Return sales group price. If the group has no children then its price is
102      * returned, otherwise the sum of all child prices is returned.
103      *
104      * @return total price of child records if any, unit sales price otherwise.
105      */

106     public double getPrice() {
107         if (childSalesRecords != null && childSalesRecords.size() > 0) {
108             // sum up the group itmes.
109
return getTotal();
110         } else {
111             return super.getPrice();
112         }
113     }
114 }
Popular Tags