KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > icefaces > samples > showcase > components > dragDrop > StoreTable


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.dragDrop;
35
36 import java.text.NumberFormat JavaDoc;
37 import java.util.Hashtable JavaDoc;
38
39 /**
40  * <p>The StoreTable class is used to represent the available items for sale in
41  * the Drag & Drop demo. This class also handles adding and removing items.</p>
42  *
43  * @see com.icesoft.icefaces.samples.showcase.components.dragDrop.CartBean ,
44  * CartItem
45  */

46 public class StoreTable extends Hashtable JavaDoc {
47     // default size
48
private static final int DEFAULT_SIZE = 4;
49
50     // currency formatting
51
public static final NumberFormat JavaDoc CURRENCY_FORMAT =
52             NumberFormat.getCurrencyInstance();
53
54     // store attributes
55
private int id = 0;
56     private String JavaDoc skuBase = "#skuITEM";
57
58     /**
59      * New store table with default initial capacity.
60      */

61     public StoreTable() {
62         super(DEFAULT_SIZE);
63     }
64
65     /**
66      * New store table with specified initial capacity.
67      *
68      * @param initialCapacity the initial capacity
69      */

70     public StoreTable(int initialCapacity) {
71         super(initialCapacity);
72     }
73
74     /**
75      * Method to add the passed item to this hashtable. A new key is generated
76      * and assigned internally.
77      *
78      * @param CartItem to add
79      * @return String resulting key
80      */

81     public String JavaDoc addItem(CartItem toAdd) {
82         toAdd.setKey(getNextKey());
83         put(toAdd.getKey(), toAdd);
84
85         return (toAdd.getKey());
86     }
87
88     /**
89      * Method to purchase the passed item. The quantity of the item will be
90      * decreased (if possible).
91      *
92      * @param CartItem to purchase
93      * @return boolean true if the item can be purchased
94      */

95     public boolean purchaseItem(CartItem item) {
96         // Check for valid quantity before purchasing
97
if (item.getQuantity() >= 1) {
98             item.decreaseQuantity();
99             return (true);
100         }
101
102         return (false);
103     }
104
105     /**
106      * Method to "return" the passed item to the store. The quantity of the item
107      * will be increased.
108      *
109      * @param CartItem to return
110      * @return void
111      */

112     public void returnItem(CartItem item) {
113         item.increaseQuantity();
114     }
115
116     /**
117      * Convenience method to get a specified CartItem based on the passed key.
118      *
119      * @param String key of desired item
120      * @return CartItem from store table (or null if no matches are found)
121      */

122     public CartItem getItem(String JavaDoc key) {
123         return ((CartItem) get(key));
124     }
125
126     /**
127      * Method to generate and return the next item key
128      *
129      * @param void
130      * @return String generated key
131      */

132     private String JavaDoc getNextKey() {
133         id++;
134         return (skuBase + id);
135     }
136 }
Popular Tags