EditItemDialog(Item it) { super( null, "Edit Item", ModularDialog.OK_CANCEL, 300, new DialogItem[] { new StringItem("Name"), new StringItem("Price"), new StringItem("Wholesale Cost"), new SpinnerItem("Stock", 1, 0, Double.POSITIVE_INFINITY, 1), new TextAreaItem("Description") }); this.i = it; StringItem name = (StringItem) this.components[0]; StringItem price = (StringItem) this.components[1]; StringItem cost = (StringItem) this.components[2]; SpinnerItem stock = (SpinnerItem) this.components[3]; TextAreaItem desc = (TextAreaItem) this.components[4]; name.getComponent().setText(i.name); price.getComponent().setText(i.price.toString()); cost.getComponent().setText(i.cost.toString()); stock.getComponent().setValue(i.stock); ((JTextArea) ((JViewport) desc.getComponent().getComponent(0)).getComponent(0)).setText(i.desc); name.getComponent().setEnabled(false); }
@Override public int inputVerifier(DialogItem[] dis) { StringItem price = (StringItem) dis[1]; StringItem cost = (StringItem) dis[2]; SpinnerItem stock = (SpinnerItem) dis[3]; TextAreaItem desc = (TextAreaItem) dis[4]; // get the price and cost String pStr = price.getText(); String cStr = cost.getText(); pStr = pStr.replaceAll("[^0-9.]+", ""); // we only want numbers and periods cStr = cStr.replaceAll("[^0-9.]+", ""); // same here if (pStr.trim().equals("")) { // stop BigDecimal from complaining pStr = "0.00"; } if (cStr.trim().equals("")) { cStr = "0.00"; } BigDecimal p = new BigDecimal(pStr); // create the price and cost in a currency friendly format BigDecimal c = new BigDecimal(cStr); double s = stock.getValue(); String d = desc.getText(); this.i.setPrice(p); this.i.setCost(c); this.i.setStock((int) s); this.i.setDesc(d); FinalProject.loadItem(this.i.id); return 1; }