/*
* NewContractDialog.java
*
* Copyright (c) 2009 Jay Lawson <jaylawson39 at yahoo.com>. All rights reserved.
*
* This file is part of MekHQ.
*
* MekHQ is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* MekHQ is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with MekHQ. If not, see <http://www.gnu.org/licenses/>.
*/
package mekhq.gui.dialog;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.util.ResourceBundle;
import javax.swing.BorderFactory;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import megamek.common.util.EncodeControl;
import mekhq.campaign.Campaign;
import mekhq.campaign.finances.Transaction;
import mekhq.campaign.mission.Contract;
import mekhq.campaign.mission.Mission;
import mekhq.campaign.personnel.Person;
import mekhq.campaign.personnel.SkillType;
import mekhq.gui.utilities.JSuggestField;
/**
*
* @author Taharqa
*/
public class NewContractDialog extends javax.swing.JDialog {
private static final long serialVersionUID = -8038099101234445018L;
protected Frame frame;
protected Contract contract;
protected Campaign campaign;
protected DecimalFormat formatter;
protected SimpleDateFormat dateFormatter;
private JComboBox<Person> cboNegotiator;
/** Creates new form NewTeamDialog */
public NewContractDialog(java.awt.Frame parent, boolean modal, Campaign c) {
super(parent, modal);
this.frame = parent;
campaign = c;
contract = new Contract("New Contract", "New Employer");
contract.calculateContract(campaign);
formatter = new DecimalFormat();
dateFormatter = new SimpleDateFormat("EEEE, MMMM d yyyy");
initComponents();
setLocationRelativeTo(parent);
}
protected void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
ResourceBundle resourceMap = ResourceBundle.getBundle("mekhq.resources.NewContractDialog", new EncodeControl()); //$NON-NLS-1$
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setName("Form"); // NOI18N
setTitle(resourceMap.getString("Form.title"));
getContentPane().setLayout(new java.awt.GridBagLayout());
JPanel descPanel = new JPanel();
descPanel.setLayout(new java.awt.GridBagLayout());
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.gridheight = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(descPanel, gridBagConstraints);
JPanel contractPanel = new JPanel();
contractPanel.setLayout(new java.awt.GridBagLayout());
contractPanel.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder(resourceMap.getString("contractPanel.title")),
BorderFactory.createEmptyBorder(5, 5, 5, 5)));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(contractPanel, gridBagConstraints);
JPanel totalsPanel = new JPanel();
totalsPanel.setLayout(new java.awt.GridBagLayout());
totalsPanel.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder(resourceMap.getString("totalsPanel.title")),
BorderFactory.createEmptyBorder(5, 5, 5, 5)));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(totalsPanel, gridBagConstraints);
initDescPanel(resourceMap, descPanel);
initTotalsPanel(resourceMap, totalsPanel);
initContractPanel(resourceMap, contractPanel);
btnOK.setText(resourceMap.getString("btnOkay.text")); // NOI18N
btnOK.setName("btnOK"); // NOI18N
btnOK.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnOKActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(btnOK, gridBagConstraints);
btnClose.setText(resourceMap.getString("btnCancel.text")); // NOI18N
btnClose.setName("btnClose"); // NOI18N
btnClose.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnCloseActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(btnClose, gridBagConstraints);
pack();
}
protected void initDescPanel(ResourceBundle resourceMap, JPanel descPanel) {
java.awt.GridBagConstraints gridBagConstraints;
txtName = new javax.swing.JTextField();
JLabel lblName = new JLabel();
txtEmployer = new javax.swing.JTextField();
JLabel lblEmployer = new JLabel();
cboNegotiator = new JComboBox<Person>();
txtType = new javax.swing.JTextField();
JLabel lblType = new JLabel();
btnOK = new javax.swing.JButton();
btnClose = new javax.swing.JButton();
JScrollPane scrDesc = new JScrollPane();
txtDesc = new javax.swing.JTextArea();
JLabel lblPlanetName = new JLabel();
lblName.setText(resourceMap.getString("lblName.text")); // NOI18N
lblName.setName("lblName"); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
descPanel.add(lblName, gridBagConstraints);
txtName.setText(contract.getName());
txtName.setName("txtName"); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
descPanel.add(txtName, gridBagConstraints);
lblPlanetName.setText(resourceMap.getString("lblPlanetName.text")); // NOI18N
lblPlanetName.setName("lblPlanetName"); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
descPanel.add(lblPlanetName, gridBagConstraints);
suggestPlanet = new JSuggestField(this, campaign.getPlanetNames());
/*suggestPlanet.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
contract.setPlanetName(suggestPlanet.getText());
//reset the start date so this can be recalculated
contract.setStartDate(campaign.getDate());
contract.calculateContract(campaign);
btnDate.setText(dateFormatter.format(contract.getStartDate()));
refreshTotals();
}
});*/
suggestPlanet.addFocusListener(contractUpdateFocusListener);
suggestPlanet.addActionListener(contractUpdateActionListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
descPanel.add(suggestPlanet, gridBagConstraints);
lblType.setText(resourceMap.getString("lblType.text")); // NOI18N
lblType.setName("lblType"); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
descPanel.add(lblType, gridBagConstraints);
txtType.setText(contract.getType());
txtType.setName("txtType"); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
descPanel.add(txtType, gridBagConstraints);
lblEmployer.setText(resourceMap.getString("lblEmployer.text")); // NOI18N
lblEmployer.setName("lblEmployer"); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
descPanel.add(lblEmployer, gridBagConstraints);
txtEmployer.setText(contract.getEmployer());
txtEmployer.setName("txtEmployer"); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
descPanel.add(txtEmployer, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
descPanel.add(new JLabel("Negotiator"), gridBagConstraints);
cboNegotiator.setName("cboNegotiator");
// Add negotiators
for (Person p : campaign.getPersonnel()) {
if (p.hasSkill(SkillType.S_NEG)) {
cboNegotiator.addItem(p);
}
}
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 4;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
descPanel.add(cboNegotiator, gridBagConstraints);
txtDesc.setText(contract.getDescription());
txtDesc.setName("txtDesc");
txtDesc.setEditable(true);
txtDesc.setLineWrap(true);
txtDesc.setWrapStyleWord(true);
txtDesc.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder(resourceMap.getString("txtDesc.title")),
BorderFactory.createEmptyBorder(5,5,5,5)));
scrDesc.setViewportView(txtDesc);
scrDesc.setPreferredSize(new Dimension(400, 200));
scrDesc.setMinimumSize(new Dimension(400, 200));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 0, 0);
descPanel.add(scrDesc, gridBagConstraints);
}
protected void initTotalsPanel(ResourceBundle resourceMap,
JPanel totalsPanel) {
java.awt.GridBagConstraints gridBagConstraints;
JLabel lblBaseAmount1 = new JLabel(resourceMap.getString("lblBaseAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblBaseAmount1, gridBagConstraints);
lblBaseAmount2 = new JLabel(formatter.format(contract.getBaseAmount()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblBaseAmount2, gridBagConstraints);
lblBaseAmount2.addFocusListener(contractUpdateFocusListener);
JLabel lblOverheadAmount1 = new JLabel(resourceMap.getString("lblOverheadAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblOverheadAmount1, gridBagConstraints);
lblOverheadAmount2 = new JLabel("+" + formatter.format(contract.getOverheadAmount()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblOverheadAmount2, gridBagConstraints);
lblOverheadAmount2.addFocusListener(contractUpdateFocusListener);
JLabel lblSupportAmount1 = new JLabel(resourceMap.getString("lblSupportAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblSupportAmount1, gridBagConstraints);
lblSupportAmount2 = new JLabel("+" + formatter.format(contract.getSupportAmount()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblSupportAmount2, gridBagConstraints);
lblSupportAmount2.addFocusListener(contractUpdateFocusListener);
JLabel lblTransportAmount1 = new JLabel(resourceMap.getString("lblTransportAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblTransportAmount1, gridBagConstraints);
lblTransportAmount2 = new JLabel("+" + formatter.format(contract.getTransportAmount()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblTransportAmount2, gridBagConstraints);
lblTransportAmount2.addFocusListener(contractUpdateFocusListener);
JLabel lblTotalAmount1 = new JLabel(resourceMap.getString("lblTotalAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblTotalAmount1, gridBagConstraints);
lblTotalAmount2 = new JLabel(formatter.format(contract.getTotalAmount()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 4;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblTotalAmount2, gridBagConstraints);
JLabel lblSignBonusAmount1 = new JLabel(resourceMap.getString("lblSignBonusAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblSignBonusAmount1, gridBagConstraints);
lblSignBonusAmount2 = new JLabel("+" + formatter.format(contract.getSigningBonusAmount()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 5;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblSignBonusAmount2, gridBagConstraints);
JLabel lblFeeAmount1 = new JLabel(resourceMap.getString("lblFeeAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 6;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblFeeAmount1, gridBagConstraints);
lblFeeAmount2 = new JLabel("-" + formatter.format(contract.getFeeAmount()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 6;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblFeeAmount2, gridBagConstraints);
JLabel lblTotalAmountPlus1 = new JLabel(resourceMap.getString("lblTotalAmountPlus1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 7;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblTotalAmountPlus1, gridBagConstraints);
lblTotalAmountPlus2 = new JLabel(formatter.format(contract.getTotalAmountPlusFeesAndBonuses()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 7;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblTotalAmountPlus2, gridBagConstraints);
JLabel lblAdvanceMoney1 = new JLabel(resourceMap.getString("lblAdvanceMoney1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 8;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblAdvanceMoney1, gridBagConstraints);
lblAdvanceMoney2 = new JLabel(formatter.format(contract.getTotalAdvanceMonies()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 8;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblAdvanceMoney2, gridBagConstraints);
JLabel lblMonthlyAmount1 = new JLabel(resourceMap.getString("lblMonthlyAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 9;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblMonthlyAmount1, gridBagConstraints);
lblMonthlyAmount2 = new JLabel(formatter.format(contract.getMonthlyPayOut()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 9;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblMonthlyAmount2, gridBagConstraints);
JLabel lblProfit1 = new JLabel(resourceMap.getString("lblProfit1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 10;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblProfit1, gridBagConstraints);
lblProfit2 = new JLabel(formatter.format(contract.getEstimatedTotalProfit(campaign)));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 10;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
totalsPanel.add(lblProfit2, gridBagConstraints);
}
protected void initContractPanel(ResourceBundle resourceMap,
JPanel contractPanel) {
java.awt.GridBagConstraints gridBagConstraints;
JLabel lblDate = new JLabel(resourceMap.getString("lblDate.text"));
JLabel lblLength = new JLabel(resourceMap.getString("lblLength.text"));
JLabel lblMultiplier = new JLabel(resourceMap.getString("lblMultiplier.text"));
JLabel lblOverhead = new JLabel(resourceMap.getString("lblOverhead.text"));
JLabel lblCommandRights = new JLabel(resourceMap.getString("lblCommand.text"));
JLabel lblTransport = new JLabel(resourceMap.getString("lblTransport.text"));
JLabel lblSalvageRights = new JLabel(resourceMap.getString("lblSalvageRights.text"));
JLabel lblStraightSupport = new JLabel(resourceMap.getString("lblStraightSupport.text"));
JLabel lblBattleLossComp = new JLabel(resourceMap.getString("lblBattleLossComp.text"));
JLabel lblSignBonus = new JLabel(resourceMap.getString("lblSignBonus.text"));
JLabel lblAdvance = new JLabel(resourceMap.getString("lblAdvance.text"));
btnDate = new javax.swing.JButton();
btnDate.setText(dateFormatter.format(contract.getStartDate()));
//btnDate.setMinimumSize(new java.awt.Dimension(400, 30));
btnDate.setName("btnDate"); // NOI18N
//btnDate.setPreferredSize(new java.awt.Dimension(400, 30));
btnDate.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
changeStartDate();
}
});
checkMRBC = new JCheckBox(resourceMap.getString("checkMRBC.text"));
checkMRBC.setSelected(contract.payMRBCFee());
checkMRBC.addItemListener(contractUpdateItemListener);
checkSalvageExchange = new JCheckBox(resourceMap.getString("checkSalvageExchange.text"));
checkSalvageExchange.setSelected(contract.isSalvageExchange());
checkSalvageExchange.addItemListener(contractUpdateItemListener);
spnLength = new JSpinner(new SpinnerNumberModel(contract.getLength(), 1, 120, 1));
spnLength.addChangeListener(contractUpdateChangeListener);
spnMultiplier = new JSpinner(new SpinnerNumberModel(contract.getMultiplier(), 1.0, 10.0, 0.1));
spnMultiplier.addChangeListener(contractUpdateChangeListener);
DefaultComboBoxModel<String> overheadModel = new DefaultComboBoxModel<String>();
for (int i = 0; i < Contract.OH_NUM; i++) {
overheadModel.addElement(Contract.getOverheadCompName(i));
}
choiceOverhead = new JComboBox<String>(overheadModel);
choiceOverhead.setSelectedIndex(contract.getOverheadComp());
choiceOverhead.addActionListener(contractUpdateActionListener);
choiceOverhead.addFocusListener(contractUpdateFocusListener);
DefaultComboBoxModel<String> commandModel = new DefaultComboBoxModel<String>();
for (int i = 0; i < Contract.COM_NUM; i++) {
commandModel.addElement(Contract.getCommandRightsName(i));
}
choiceCommand = new JComboBox<String>(commandModel);
choiceCommand.setSelectedIndex(contract.getCommandRights());
choiceCommand.addActionListener(contractUpdateActionListener);
spnTransport = new JSpinner(new SpinnerNumberModel(contract.getTransportComp(), 0, 100, 10));
spnTransport.addChangeListener(contractUpdateChangeListener);
spnSalvageRights = new JSpinner(new SpinnerNumberModel(contract.getSalvagePct(), 0, 100, 10));
spnSalvageRights.addChangeListener(contractUpdateChangeListener);
spnStraightSupport = new JSpinner(new SpinnerNumberModel(contract.getStraightSupport(), 0, 100, 10));
spnStraightSupport.addChangeListener(contractUpdateChangeListener);
spnBattleLossComp = new JSpinner(new SpinnerNumberModel(contract.getBattleLossComp(), 0, 100, 10));
spnBattleLossComp.addChangeListener(contractUpdateChangeListener);
spnSignBonus = new JSpinner(new javax.swing.SpinnerNumberModel(contract.getSigningBonusPct(), 0, 10, 1));
spnSignBonus.addChangeListener(contractUpdateChangeListener);
spnAdvance = new JSpinner(new javax.swing.SpinnerNumberModel(contract.getAdvancePct(), 0, 25, 5));
spnAdvance.addChangeListener(contractUpdateChangeListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(checkMRBC, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 0.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(lblDate, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(btnDate, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 0.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(lblLength, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(spnLength, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 0.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(lblMultiplier, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(spnMultiplier, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 0.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(lblCommandRights, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 4;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(choiceCommand, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 0.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(lblOverhead, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 5;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(choiceOverhead, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 6;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 0.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(lblTransport, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 6;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(spnTransport, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 7;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 0.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(lblSalvageRights, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 7;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(spnSalvageRights, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 8;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(checkSalvageExchange, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 9;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 0.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(lblBattleLossComp, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 9;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(spnBattleLossComp, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 10;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 0.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(lblStraightSupport, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 10;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(spnStraightSupport, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 11;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 0.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(lblSignBonus, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 11;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(spnSignBonus, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 12;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 0.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(lblAdvance, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 12;
gridBagConstraints.gridwidth = 1;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
contractPanel.add(spnAdvance, gridBagConstraints);
}
protected void btnOKActionPerformed(ActionEvent evt) {//GEN-FIRST:event_btnHireActionPerformed
if (!btnOK.equals(evt.getSource())) {
return;
}
String chosenName = txtName.getText();
for(Mission m : campaign.getMissions()) {
if(m.getName().equals(chosenName)) {
JOptionPane.showMessageDialog(frame,
"There is already a mission with the name " + chosenName,
"Duplicate Mission Name",
JOptionPane.ERROR_MESSAGE);
return;
}
}
contract.setName(txtName.getText());
//contract.setPlanetName(suggestPlanet.getText());
contract.setEmployer(txtEmployer.getText());
contract.setType(txtType.getText());
contract.setDesc(txtDesc.getText());
contract.setCommandRights(choiceCommand.getSelectedIndex());
campaign.getFinances().credit(contract.getTotalAdvanceMonies(), Transaction.C_CONTRACT, "Advance monies for " + contract.getName(), campaign.getCalendar().getTime());
campaign.addMission(contract);
// Negotiator XP
Person negotiator = (Person)cboNegotiator.getSelectedItem();
if (negotiator != null && campaign.getCampaignOptions().getContractNegotiationXP() > 0) {
negotiator.awardXP(campaign.getCampaignOptions().getContractNegotiationXP());
}
this.setVisible(false);
}
private void changeStartDate() {
// show the date chooser
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(contract.getStartDate());
DateChooser dc = new DateChooser(frame, cal);
// user can eiter choose a date or cancel by closing
if (dc.showDateChooser() == DateChooser.OK_OPTION) {
if(campaign.getCalendar().getTime().after(dc.getDate().getTime())) {
JOptionPane.showMessageDialog(frame,
"You cannot choose a start date before the current date.",
"Invalid date",
JOptionPane.ERROR_MESSAGE);
return;
}
contract.setStartDate(dc.getDate().getTime());
contract.calculateContract(campaign);
btnDate.setText(dateFormatter.format(contract.getStartDate()));
}
}
public int getContractId() {
return contract.getId();
}
private void refreshTotals() {
lblBaseAmount2.setText(formatter.format(contract.getBaseAmount()));
lblOverheadAmount2.setText("+" + formatter.format(contract.getOverheadAmount()));
lblSupportAmount2.setText("+" + formatter.format(contract.getSupportAmount()));
lblTransportAmount2.setText("+" + formatter.format(contract.getTransportAmount()));
lblTotalAmount2.setText(formatter.format(contract.getTotalAmount()));
lblSignBonusAmount2.setText("+" + formatter.format(contract.getSigningBonusAmount()));
lblFeeAmount2.setText("-" + formatter.format(contract.getFeeAmount()));
lblTotalAmountPlus2.setText(formatter.format(contract.getTotalAmountPlusFeesAndBonuses()));
lblAdvanceMoney2.setText(formatter.format(contract.getTotalAdvanceMonies()));
lblMonthlyAmount2.setText(formatter.format(contract.getMonthlyPayOut()));
lblProfit2.setText(formatter.format(contract.getEstimatedTotalProfit(campaign)));
}
private void btnCloseActionPerformed(ActionEvent evt) {//GEN-FIRST:event_btnCloseActionPerformed
if (!btnClose.equals(evt.getSource())) {
return;
}
setVisible(false);
}
protected javax.swing.JButton btnClose;
protected javax.swing.JButton btnOK;
protected javax.swing.JTextField txtName;
protected javax.swing.JTextField txtEmployer;
protected javax.swing.JTextField txtType;
protected javax.swing.JTextArea txtDesc;
protected JSuggestField suggestPlanet;
protected javax.swing.JButton btnDate;
protected JComboBox<String> choiceOverhead;
protected JComboBox<String> choiceCommand;
protected JSpinner spnLength;
protected JSpinner spnMultiplier;
protected JSpinner spnTransport;
protected JSpinner spnSalvageRights;
protected JCheckBox checkSalvageExchange;
protected JSpinner spnStraightSupport;
protected JSpinner spnBattleLossComp;
protected JSpinner spnSignBonus;
protected JSpinner spnAdvance;
protected JCheckBox checkMRBC;
protected javax.swing.JLabel lblBaseAmount2;
protected javax.swing.JLabel lblOverheadAmount2;
protected javax.swing.JLabel lblSupportAmount2;
protected javax.swing.JLabel lblTransportAmount2;
protected javax.swing.JLabel lblTotalAmount2;
protected javax.swing.JLabel lblSignBonusAmount2;
protected javax.swing.JLabel lblFeeAmount2;
protected javax.swing.JLabel lblTotalAmountPlus2;
protected javax.swing.JLabel lblAdvanceMoney2;
protected javax.swing.JLabel lblMonthlyAmount2;
protected javax.swing.JLabel lblProfit2;
protected FocusListener contractUpdateFocusListener = new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
//unused
}
@Override
public void focusLost(FocusEvent e) {
doUpdateContract(e.getSource());
}
};
protected ActionListener contractUpdateActionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
doUpdateContract(e.getSource());
}
};
protected ItemListener contractUpdateItemListener = new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
doUpdateContract(e.getSource());
}
};
protected ChangeListener contractUpdateChangeListener = new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
doUpdateContract(e.getSource());
}
};
protected void doUpdateContract(Object source) {
if (suggestPlanet.equals(source)) {
contract.setPlanetName(suggestPlanet.getText());
//reset the start date as null so we recalculate travel time
contract.setStartDate(null);
} else if (choiceOverhead.equals(source)) {
contract.setOverheadComp(choiceOverhead.getSelectedIndex());
} else if (choiceCommand.equals(source)) {
contract.setCommandRights(choiceCommand.getSelectedIndex());
} else if (checkMRBC.equals(source)) {
contract.setMRBCFee(checkMRBC.isSelected());
} else if (checkSalvageExchange.equals(source)) {
contract.setSalvageExchange(checkSalvageExchange.isSelected());
} else if (spnLength.equals(source)) {
contract.setLength((Integer)spnLength.getModel().getValue());
} else if (spnMultiplier.equals(source)) {
contract.setMultiplier((Double)spnMultiplier.getModel().getValue());
} else if (spnTransport.equals(source)) {
contract.setTransportComp((Integer)spnTransport.getModel().getValue());
} else if (spnSalvageRights.equals(source)) {
contract.setSalvagePct((Integer)spnSalvageRights.getModel().getValue());
} else if (spnStraightSupport.equals(source)) {
contract.setStraightSupport((Integer)spnStraightSupport.getModel().getValue());
} else if (spnBattleLossComp.equals(source)) {
contract.setBattleLossComp((Integer)spnBattleLossComp.getModel().getValue());
} else if (spnSignBonus.equals(source)) {
contract.setSigningBonusPct((Integer)spnSignBonus.getModel().getValue());
} else if (spnAdvance.equals(source)) {
contract.setAdvancePct((Integer)spnAdvance.getModel().getValue());
}
contract.calculateContract(campaign);
refreshTotals();
btnDate.setText(dateFormatter.format(contract.getStartDate()));
}
// End of variables declaration//GEN-END:variables
}