private void addPart(boolean purchase, boolean bulk, boolean bonus) { int row = partsTable.getSelectedRow(); if (row < 0) { return; } Part selectedPart = partsModel.getPartAt(partsTable.convertRowIndexToModel(row)); int quantity = 1; if (bulk) { PopupValueChoiceDialog pcd = new PopupValueChoiceDialog( campaignGUI.getFrame(), true, "How Many " + selectedPart.getName(), quantity, 1, 100); pcd.setVisible(true); quantity = pcd.getValue(); } if (bonus) { String report = selectedPart.getAcquisitionWork().find(0); if (report.endsWith("0 days.")) { AtBContract contract = null; for (Mission m : campaign.getMissions()) { if (m.isActive() && m instanceof AtBContract && ((AtBContract) m).getNumBonusParts() > 0) { contract = (AtBContract) m; break; } } if (null == contract) { MekHQ.logError("AtB: used bonus part but no contract has bonus parts available."); } else { contract.useBonusPart(); } } } else if (purchase) { campaign .getShoppingList() .addShoppingItem(selectedPart.getAcquisitionWork(), quantity, campaign); } else { while (quantity > 0) { campaign.addPart(selectedPart.clone(), 0); quantity--; } } campaignGUI.refreshReport(); campaignGUI.refreshAcquireList(); campaignGUI.refreshPartsList(); campaignGUI.refreshFinancialTransactions(); campaignGUI.refreshOverview(); }
/** Creates new form PartsStoreDialog */ public PartsStoreDialog(boolean modal, CampaignGUI gui) { this(gui.getFrame(), modal, gui, gui.getCampaign(), true); }