class AddModifyListener implements ActionListener {
/** * Adds an order item to the current order.
*
* @param event
* the event object.
*/
public void actionPerformed(ActionEvent event) {
if (!catalogList.getValueIsAdjusting()) {
String code = (String) catalogList.getSelectedValue(); Product product = catalog.getProduct(code);
ArrayList<DataField> dataField = product.getDataFields();
/* * 获得所选产品的基本信息
*/
String[] str = new String[3];
Iterator<DataField> i = dataField.iterator();
for (int j = 0; j < 3; ++j) {
str[j] = ((DataField) i.next()).getValue(); }
int number = Integer.parseInt(quantityTextField.getText()); // 得到quantityTextField框中的值
/* * 判断所选产品是否与原orderList中所选产品有一样的,如果一样则数量相加再显示
*/
if (vector.size() == 0) {
vector.add(number + DELIM + str[0] + DELIM + str[2]);
orderList.setListData(vector); //显示Order
totalCost += number * Double.parseDouble(str[2]);
totalTextField.setText(dollarFormatter.format(totalCost));
OrderItem item = new OrderItem(product, number); currentOrder.addItem(item);
} else if(vector.size() != 0) {
for (int k = 0; k < vector.size(); ++k) {
String vectorStr = (String) vector.get(k);
StringTokenizer tokenizer = new StringTokenizer(
vectorStr, DELIM);
int quan = Integer.parseInt(tokenizer.nextToken());
/* * 判断是否为同一产品
*/
if (str[0].equals(tokenizer.nextToken())) {
number += quan;
/*
* 移除原先的记录
*/
vector.remove(k);
OrderItem item = currentOrder.getItem(product);
currentOrder.removeItem(item);
}
}
vector.add(number + DELIM + str[0] + DELIM
+ str[2]);
orderList.setListData(vector); //显示Order
totalCost += number * Double.parseDouble(str[2]);
totalTextField.setText(dollarFormatter.format(totalCost));
OrderItem item = new OrderItem(product, number); currentOrder.addItem(item);
}
}
} }