/*
* ContractSummaryPanel.java
*
* Copyright (c) 2014 Carl Spain. 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.view;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ResourceBundle;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import megamek.common.util.EncodeControl;
import mekhq.Utilities;
import mekhq.campaign.Campaign;
import mekhq.campaign.JumpPath;
import mekhq.campaign.market.ContractMarket;
import mekhq.campaign.mission.AtBContract;
import mekhq.campaign.mission.Contract;
import mekhq.campaign.personnel.Person;
import mekhq.campaign.personnel.SkillType;
import mekhq.campaign.universe.Planets;
/**
* Contract summary view for ContractMarketDialog
*
* @author Neoancient
*
*/
public class ContractSummaryPanel extends JPanel {
/**
*
*/
private static final long serialVersionUID = 8773615661962644614L;
private Campaign campaign;
private Contract contract;
private boolean allowRerolls;
private int cmdRerolls;
private int logRerolls;
private int tranRerolls;
private JPanel mainPanel;
private JLabel lblName;
private JTextField txtName;
private JLabel lblLocation;
private JTextArea txtLocation;
private JLabel lblDistance;
private JTextArea txtDistance;
private JLabel lblMissionType;
private JTextArea txtMissionType;
private JLabel lblEmployer;
private JTextArea txtEmployer;
private JLabel lblEnemy;
private JTextArea txtEnemy;
private JLabel lblAllyRating;
private JTextArea txtAllyRating;
private JLabel lblEnemyRating;
private JTextArea txtEnemyRating;
private JLabel lblStartDate;
private JTextArea txtStartDate;
private JLabel lblLength;
private JTextArea txtLength;
private JLabel lblCommand;
private JTextArea txtCommand;
private JLabel lblTransport;
private JTextArea txtTransport;
private JLabel lblOverhead;
private JTextArea txtOverhead;
private JLabel lblStraightSupport;
private JTextArea txtStraightSupport;
private JLabel lblBattleLossComp;
private JLabel lblRequiredLances;
private JTextArea txtBattleLossComp;
private JTextArea txtRequiredLances;
private JLabel lblSalvageRights;
private JTextArea txtSalvageRights;
protected JLabel lblBaseAmount2;
protected JLabel lblOverheadAmount2;
protected JLabel lblSupportAmount2;
protected JLabel lblTransportAmount2;
protected JLabel lblTotalAmount2;
protected JLabel lblSignBonusAmount2;
protected JLabel lblFeeAmount2;
protected JLabel lblTotalAmountPlus2;
protected JLabel lblAdvanceMoney2;
protected JLabel lblMonthlyAmount2;
protected JLabel lblProfit2;
public ContractSummaryPanel(Contract contract, Campaign campaign,
boolean allowRerolls) {
this.contract = contract;
this.campaign = campaign;
this.allowRerolls = allowRerolls;
if (allowRerolls) {
Person admin = campaign.findBestInRole(Person.T_ADMIN_COM, SkillType.S_ADMIN, SkillType.S_NEG);
cmdRerolls = (admin == null || admin.getSkill(SkillType.S_NEG) == null)?
0 : admin.getSkill(SkillType.S_NEG).getLevel();
admin = campaign.findBestInRole(Person.T_ADMIN_LOG, SkillType.S_ADMIN, SkillType.S_NEG);
logRerolls = (admin == null || admin.getSkill(SkillType.S_NEG) == null)?
0 : admin.getSkill(SkillType.S_NEG).getLevel();
admin = campaign.findBestInRole(Person.T_ADMIN_TRA, SkillType.S_ADMIN, SkillType.S_NEG);
tranRerolls = (admin == null || admin.getSkill(SkillType.S_NEG) == null)?
0 : admin.getSkill(SkillType.S_NEG).getLevel();
}
initComponents();
}
private void initComponents() {
java.awt.GridBagConstraints gbc;
mainPanel = new JPanel();
setLayout(new java.awt.GridBagLayout());
setBackground(Color.WHITE);
mainPanel.setName("pnlStats");
mainPanel.setBorder(BorderFactory.createTitledBorder(contract.getName()));
mainPanel.setBackground(Color.WHITE);
fillStats();
gbc = new java.awt.GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.gridheight = 1;
gbc.weightx = 1.0;
gbc.weighty = 1.0;
gbc.insets = new java.awt.Insets(5, 5, 5, 20);
gbc.fill = java.awt.GridBagConstraints.BOTH;
gbc.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(mainPanel, gbc);
}
private void fillStats() {
String[] skillNames = {"Green", "Regular", "Veteran", "Elite"};
String[] ratingNames = {"F", "D", "C", "B", "A"};
lblName = new JLabel();
txtName = new JTextField();
lblLocation = new JLabel();
txtLocation = new JTextArea();
lblDistance = new JLabel();
txtDistance = new JTextArea();
lblEmployer = new JLabel();
txtEmployer = new JTextArea();
lblEnemy = new JLabel();
txtEnemy = new JTextArea();
lblMissionType = new JLabel();
txtMissionType = new JTextArea();
lblStartDate = new JLabel();
txtStartDate = new JTextArea();
lblLength = new JLabel();
txtLength = new JTextArea();
lblAllyRating = new JLabel();
txtAllyRating = new JTextArea();
lblEnemyRating = new JLabel();
txtEnemyRating = new JTextArea();
lblOverhead = new JLabel();
txtOverhead = new JTextArea();
lblCommand = new JLabel();
txtCommand = new JTextArea();
lblTransport = new JLabel();
txtTransport = new JTextArea();
lblStraightSupport = new JLabel();
txtStraightSupport = new JTextArea();
lblBattleLossComp = new JLabel();
txtBattleLossComp = new JTextArea();
lblRequiredLances = new JLabel();
txtRequiredLances = new JTextArea();
lblSalvageRights = new JLabel();
txtSalvageRights = new JTextArea();
ResourceBundle resourceMap = ResourceBundle.getBundle("mekhq.resources.ContractMarketDialog", new EncodeControl()); //$NON-NLS-1$
java.awt.GridBagConstraints gridBagConstraints;
mainPanel.setLayout(new java.awt.GridBagLayout());
SimpleDateFormat shortDateFormat = new SimpleDateFormat("MM/dd/yyyy");
int y = 0;
lblName.setName("lblName"); // NOI18N
lblName.setText(resourceMap.getString("lblName.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblName, gridBagConstraints);
txtName.setName("txtName"); // NOI18N
txtName.setText(contract.getName());
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtName, gridBagConstraints);
lblEmployer.setName("lblEmployer"); // NOI18N
lblEmployer.setText(resourceMap.getString("lblEmployer.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblEmployer, gridBagConstraints);
txtEmployer.setName("txtEmployer"); // NOI18N
txtEmployer.setText(contract.getEmployer());
txtEmployer.setEditable(false);
txtEmployer.setLineWrap(true);
txtEmployer.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtEmployer, gridBagConstraints);
if (contract instanceof AtBContract) {
lblEnemy.setName("lblEnemy"); // NOI18N
lblEnemy.setText(resourceMap.getString("lblEnemy.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblEnemy, gridBagConstraints);
txtEnemy.setName("txtEnemy"); // NOI18N
txtEnemy.setText(((AtBContract)contract).getEnemyName(campaign.getEra()));
txtEnemy.setEditable(false);
txtEnemy.setLineWrap(true);
txtEnemy.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtEnemy, gridBagConstraints);
}
lblMissionType.setName("lblMissionType"); // NOI18N
lblMissionType.setText(resourceMap.getString("lblMissionType.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblMissionType, gridBagConstraints);
txtMissionType.setName("txtMissionType"); // NOI18N
txtMissionType.setText(contract.getType());
txtMissionType.setEditable(false);
txtMissionType.setLineWrap(true);
txtMissionType.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtMissionType, gridBagConstraints);
lblLocation.setName("lblLocation"); // NOI18N
lblLocation.setText(resourceMap.getString("lblLocation.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblLocation, gridBagConstraints);
txtLocation.setName("txtLocation"); // NOI18N
txtLocation.setText(Planets.getInstance()
.getPlanetById(contract.getPlanetName()).getName(Utilities.getDateTimeDay(campaign.getCalendar())));
txtLocation.setEditable(false);
txtLocation.setLineWrap(true);
txtLocation.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtLocation, gridBagConstraints);
if(Planets.getInstance().getPlanets().get(contract.getPlanetName()) != null) {
lblDistance.setName("lblDistance"); // NOI18N
lblDistance.setText(resourceMap.getString("lblDistance.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblDistance, gridBagConstraints);
txtDistance.setName("txtDistance"); // NOI18N
JumpPath path = campaign.calculateJumpPath(campaign.getCurrentPlanet(), contract.getPlanet());
int days = (int)Math.ceil((path).getTotalTime(Utilities.getDateTimeDay(contract.getStartDate()), campaign.getLocation().getTransitTime()));
int jumps = path.getJumps();
if (campaign.getCurrentPlanetName().equals(contract.getPlanetName())
&&campaign.getLocation().isOnPlanet()) {
days = 0;
jumps = 0;
}
txtDistance.setText(days + "(" + jumps + ")");
txtDistance.setEditable(false);
txtDistance.setLineWrap(true);
txtDistance.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtDistance, gridBagConstraints);
}
lblAllyRating.setName("lblAllyRating"); // NOI18N
lblAllyRating.setText(resourceMap.getString("lblAllyRating.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblAllyRating, gridBagConstraints);
if (contract instanceof AtBContract) {
txtAllyRating.setName("txtAllyRating"); // NOI18N
txtAllyRating.setText(skillNames[((AtBContract)contract).getAllySkill()] + "/" +
ratingNames[((AtBContract)contract).getAllyQuality()]);
txtAllyRating.setEditable(false);
txtAllyRating.setLineWrap(true);
txtAllyRating.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtAllyRating, gridBagConstraints);
lblEnemyRating.setName("lblEnemyRating"); // NOI18N
lblEnemyRating.setText(resourceMap.getString("lblEnemyRating.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblEnemyRating, gridBagConstraints);
txtEnemyRating.setName("txtEnemyRating"); // NOI18N
txtEnemyRating.setText(skillNames[((AtBContract)contract).getEnemySkill()] + "/" +
ratingNames[((AtBContract)contract).getEnemyQuality()]);
txtEnemyRating.setEditable(false);
txtEnemyRating.setLineWrap(true);
txtEnemyRating.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtEnemyRating, gridBagConstraints);
}
lblStartDate.setName("lblStartDate"); // NOI18N
lblStartDate.setText(resourceMap.getString("lblStartDate.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblStartDate, gridBagConstraints);
txtStartDate.setName("txtStartDate"); // NOI18N
txtStartDate.setText(shortDateFormat.format(contract.getStartDate()));
txtStartDate.setEditable(false);
txtStartDate.setLineWrap(true);
txtStartDate.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtStartDate, gridBagConstraints);
lblLength.setName("lblLength"); // NOI18N
lblLength.setText(resourceMap.getString("lblLength.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblLength, gridBagConstraints);
txtLength.setName("txtLength"); // NOI18N
txtLength.setText(Integer.toString(contract.getLength()));
txtLength.setEditable(false);
txtLength.setLineWrap(true);
txtLength.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtLength, gridBagConstraints);
lblOverhead.setName("lblOverhead"); // NOI18N
lblOverhead.setText(resourceMap.getString("lblOverhead.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblOverhead, gridBagConstraints);
txtOverhead.setName("txtOverhead"); // NOI18N
txtOverhead.setText(Contract.getOverheadCompName(contract.getOverheadComp()));
txtOverhead.setEditable(false);
txtOverhead.setLineWrap(true);
txtOverhead.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtOverhead, gridBagConstraints);
lblCommand.setName("lblCommand"); // NOI18N
lblCommand.setText(resourceMap.getString("lblCommand.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblCommand, gridBagConstraints);
txtCommand.setName("txtCommand"); // NOI18N
txtCommand.setText(Contract.getCommandRightsName(contract.getCommandRights()));
txtCommand.setEditable(false);
txtCommand.setLineWrap(true);
txtCommand.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtCommand, gridBagConstraints);
/* Only allow command clause rerolls for merc and pirates; house units are always integrated */
if (allowRerolls && (campaign.getFactionCode().equals("MERC") || campaign.getFactionCode().equals("PIR")) &&
campaign.getContractMarket().getRerollsUsed(contract, ContractMarket.CLAUSE_COMMAND) < cmdRerolls) {
JButton btnCommand = new JButton("Renegotiate (" +
(cmdRerolls - campaign.getContractMarket().getRerollsUsed(contract, ContractMarket.CLAUSE_COMMAND)) + ")");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = y;
mainPanel.add(btnCommand, gridBagConstraints);
btnCommand.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
JButton btn = null;
if(ev.getSource() instanceof JButton) {
btn = (JButton)ev.getSource();
}
if(null == btn) {
return;
}
if (contract instanceof AtBContract) {
campaign.getContractMarket().rerollClause((AtBContract)contract,
ContractMarket.CLAUSE_COMMAND, campaign);
((JButton)ev.getSource()).setText("Renegotiate (" +
(cmdRerolls - campaign.getContractMarket().getRerollsUsed(contract, ContractMarket.CLAUSE_COMMAND)) + ")");
txtCommand.setText(Contract.getCommandRightsName(contract.getCommandRights()));
if (campaign.getContractMarket().getRerollsUsed(contract, ContractMarket.CLAUSE_COMMAND) >= cmdRerolls) {
btn.setEnabled(false);
}
refreshAmounts();
}
}
});
}
y++;
lblTransport.setName("lblTransport"); // NOI18N
lblTransport.setText(resourceMap.getString("lblTransport.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblTransport, gridBagConstraints);
txtTransport.setName("txtTransport"); // NOI18N
txtTransport.setText(contract.getTransportComp() + "%");
txtTransport.setEditable(false);
txtTransport.setLineWrap(true);
txtTransport.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtTransport, gridBagConstraints);
if (allowRerolls && campaign.getContractMarket().getRerollsUsed(contract, ContractMarket.CLAUSE_TRANSPORT) < tranRerolls) {
JButton btnTransport = new JButton("Renegotiate (" +
(tranRerolls - campaign.getContractMarket().getRerollsUsed(contract, ContractMarket.CLAUSE_TRANSPORT)) + ")");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = y;
mainPanel.add(btnTransport, gridBagConstraints);
btnTransport.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
JButton btn = null;
if(ev.getSource() instanceof JButton) {
btn = (JButton)ev.getSource();
}
if(null == btn) {
return;
}
if (contract instanceof AtBContract) {
campaign.getContractMarket().rerollClause((AtBContract)contract,
ContractMarket.CLAUSE_TRANSPORT, campaign);
((JButton)ev.getSource()).setText("Renegotiate (" +
(tranRerolls - campaign.getContractMarket().getRerollsUsed(contract, ContractMarket.CLAUSE_TRANSPORT)) + ")");
txtTransport.setText(contract.getTransportComp() + "%");
if (campaign.getContractMarket().getRerollsUsed(contract, ContractMarket.CLAUSE_TRANSPORT) >= tranRerolls) {
btn.setEnabled(false);
}
refreshAmounts();
}
}
});
}
y++;
lblSalvageRights.setName("lblSalvageRights"); // NOI18N
lblSalvageRights.setText(resourceMap.getString("lblSalvageRights.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblSalvageRights, gridBagConstraints);
txtSalvageRights.setName("txtSalvageRights"); // NOI18N
txtSalvageRights.setText(contract.getSalvagePct() + "%" +
(contract.isSalvageExchange()?" (Exchange)": ""));
txtSalvageRights.setEditable(false);
txtSalvageRights.setLineWrap(true);
txtSalvageRights.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtSalvageRights, gridBagConstraints);
lblStraightSupport.setName("lblStraightSupport"); // NOI18N
lblStraightSupport.setText(resourceMap.getString("lblStraightSupport.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblStraightSupport, gridBagConstraints);
txtStraightSupport.setName("txtStraightSupport"); // NOI18N
txtStraightSupport.setText(contract.getStraightSupport() + "%");
txtStraightSupport.setEditable(false);
txtStraightSupport.setLineWrap(true);
txtStraightSupport.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtStraightSupport, gridBagConstraints);
if (allowRerolls && campaign.getContractMarket().getRerollsUsed(contract, ContractMarket.CLAUSE_SUPPORT) < logRerolls) {
JButton btnSupport = new JButton("Renegotiate (" +
(logRerolls - campaign.getContractMarket().getRerollsUsed(contract, ContractMarket.CLAUSE_SUPPORT)) + ")");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = y;
mainPanel.add(btnSupport, gridBagConstraints);
btnSupport.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
JButton btn = null;
if(ev.getSource() instanceof JButton) {
btn = (JButton)ev.getSource();
}
if(null == btn) {
return;
}
if (contract instanceof AtBContract) {
campaign.getContractMarket().rerollClause((AtBContract)contract,
ContractMarket.CLAUSE_SUPPORT, campaign);
((JButton)ev.getSource()).setText("Renegotiate (" +
(logRerolls - campaign.getContractMarket().getRerollsUsed(contract, ContractMarket.CLAUSE_SUPPORT)) + ")");
txtStraightSupport.setText(contract.getStraightSupport() + "%");
txtBattleLossComp.setText(contract.getBattleLossComp() + "%");
if (campaign.getContractMarket().getRerollsUsed(contract, ContractMarket.CLAUSE_SUPPORT) >= logRerolls) {
btn.setEnabled(false);
}
refreshAmounts();
}
}
});
}
y++;
lblBattleLossComp.setName("lblBattleLossComp"); // NOI18N
lblBattleLossComp.setText(resourceMap.getString("lblBattleLossComp.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblBattleLossComp, gridBagConstraints);
txtBattleLossComp.setName("txtBattleLossComp"); // NOI18N
txtBattleLossComp.setText(contract.getBattleLossComp() + "%");
txtBattleLossComp.setEditable(false);
txtBattleLossComp.setLineWrap(true);
txtBattleLossComp.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtBattleLossComp, gridBagConstraints);
if(contract instanceof AtBContract) {
lblRequiredLances.setName("lblRequiredLances"); // NOI18N
lblRequiredLances.setText(resourceMap.getString("lblRequiredLances.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.NONE;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(lblRequiredLances, gridBagConstraints);
txtRequiredLances.setName("txtRequiredLances"); // NOI18N
txtRequiredLances.setText(((AtBContract)contract).getRequiredLances() + " Lance(s)");
txtRequiredLances.setEditable(false);
txtRequiredLances.setLineWrap(true);
txtRequiredLances.setWrapStyleWord(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
mainPanel.add(txtRequiredLances, gridBagConstraints);
}
DecimalFormat formatter = new DecimalFormat();
JLabel lblBaseAmount1 = new JLabel(resourceMap.getString("lblBaseAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
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);
mainPanel.add(lblBaseAmount1, gridBagConstraints);
lblBaseAmount2 = new JLabel(formatter.format(contract.getBaseAmount()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
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);
mainPanel.add(lblBaseAmount2, gridBagConstraints);
JLabel lblOverheadAmount1 = new JLabel(resourceMap.getString("lblOverheadAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
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);
mainPanel.add(lblOverheadAmount1, gridBagConstraints);
lblOverheadAmount2 = new JLabel("+" + formatter.format(contract.getOverheadAmount()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
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);
mainPanel.add(lblOverheadAmount2, gridBagConstraints);
JLabel lblSupportAmount1 = new JLabel(resourceMap.getString("lblSupportAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
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);
mainPanel.add(lblSupportAmount1, gridBagConstraints);
lblSupportAmount2 = new JLabel("+" + formatter.format(contract.getSupportAmount()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
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);
mainPanel.add(lblSupportAmount2, gridBagConstraints);
JLabel lblTransportAmount1 = new JLabel(resourceMap.getString("lblTransportAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
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);
mainPanel.add(lblTransportAmount1, gridBagConstraints);
lblTransportAmount2 = new JLabel("+" + formatter.format(contract.getTransportAmount()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
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);
mainPanel.add(lblTransportAmount2, gridBagConstraints);
JLabel lblTotalAmount1 = new JLabel(resourceMap.getString("lblTotalAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
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);
mainPanel.add(lblTotalAmount1, gridBagConstraints);
lblTotalAmount2 = new JLabel(formatter.format(contract.getTotalAmount()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
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);
mainPanel.add(lblTotalAmount2, gridBagConstraints);
JLabel lblSignBonusAmount1 = new JLabel(resourceMap.getString("lblSignBonusAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
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);
mainPanel.add(lblSignBonusAmount1, gridBagConstraints);
lblSignBonusAmount2 = new JLabel("+" + formatter.format(contract.getSigningBonusAmount()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
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);
mainPanel.add(lblSignBonusAmount2, gridBagConstraints);
JLabel lblFeeAmount1 = new JLabel(resourceMap.getString("lblFeeAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
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);
mainPanel.add(lblFeeAmount1, gridBagConstraints);
lblFeeAmount2 = new JLabel("-" + formatter.format(contract.getFeeAmount()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
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);
mainPanel.add(lblFeeAmount2, gridBagConstraints);
JLabel lblTotalAmountPlus1 = new JLabel(resourceMap.getString("lblTotalAmountPlus1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
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);
mainPanel.add(lblTotalAmountPlus1, gridBagConstraints);
lblTotalAmountPlus2 = new JLabel(formatter.format(contract.getTotalAmountPlusFeesAndBonuses()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
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);
mainPanel.add(lblTotalAmountPlus2, gridBagConstraints);
JLabel lblAdvanceMoney1 = new JLabel(resourceMap.getString("lblAdvanceMoney1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
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);
mainPanel.add(lblAdvanceMoney1, gridBagConstraints);
lblAdvanceMoney2 = new JLabel(formatter.format(contract.getTotalAdvanceMonies()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
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);
mainPanel.add(lblAdvanceMoney2, gridBagConstraints);
JLabel lblMonthlyAmount1 = new JLabel(resourceMap.getString("lblMonthlyAmount1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
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);
mainPanel.add(lblMonthlyAmount1, gridBagConstraints);
lblMonthlyAmount2 = new JLabel(formatter.format(contract.getMonthlyPayOut()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
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);
mainPanel.add(lblMonthlyAmount2, gridBagConstraints);
JLabel lblProfit1 = new JLabel(resourceMap.getString("lblProfit1.text"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
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);
mainPanel.add(lblProfit1, gridBagConstraints);
lblProfit2 = new JLabel(formatter.format(contract.getEstimatedTotalProfit(campaign)));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y++;
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);
mainPanel.add(lblProfit2, gridBagConstraints);
}
public void refreshAmounts() {
DecimalFormat formatter = new DecimalFormat();
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)));
}
public String getContractName() {
return txtName.getText();
}
}