StockpileItem showEdit(final StockpileItem addStockpileItem) {
   updateData();
   this.stockpileItem = addStockpileItem;
   this.getDialog().setTitle(TabsStockpile.get().editStockpileItem());
   Item item = StaticData.get().getItems().get(addStockpileItem.getTypeID());
   jItems.setSelectedItem(item);
   jCopy.setSelected(addStockpileItem.isBPC());
   jCountMinimum.setText(String.valueOf(addStockpileItem.getCountMinimum()));
   show();
   return stockpileItem;
 }
 private StockpileItem getExistingItem() {
   Item typeItem = (Item) jItems.getSelectedItem();
   boolean copy = jCopy.isSelected();
   if (getStockpile() != null && typeItem != null) {
     for (StockpileItem item : getStockpile().getItems()) {
       if (item.getTypeID() == typeItem.getTypeID() && (copy == item.isBPC())) {
         return item;
       }
     }
   }
   return null;
 }
 private Stockpile getStockpile() {
   if (stockpile != null) {
     return stockpile;
   } else if (stockpileItem != null) {
     return stockpileItem.getStockpile();
   } else {
     return null;
   }
 }
 @Override
 protected void save() {
   Settings.lock("Stockpile (Items Dialog)"); // Lock for Stockpile (Items Dialog)
   if (stockpileItem != null) { // EDIT
     if (itemExist()) { // EDIT + UPDATING (Editing to an existing item)
       StockpileItem existingItem = getExistingItem();
       existingItem.getStockpile().remove(existingItem);
       program.getStockpileTool().removeItem(existingItem);
     }
     stockpileItem.update(getStockpileItem());
   } else if (itemExist()) { // UPDATING (Adding an existing item)
     stockpileItem = getExistingItem();
     stockpileItem.update(getStockpileItem());
   } else { // ADD
     stockpileItem = getStockpileItem();
     stockpile.add(stockpileItem);
   }
   Settings.unlock("Stockpile (Items Dialog)"); // Unlock for Stockpile (Items Dialog)
   program.saveSettings("Stockpile (Items Dialog)"); // Save Stockpile (Items Dialog)
   super.setVisible(false);
 }