/* * AtBContractViewPanel.java * * Copyright (C) 2014-2016 MegaMek team * 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.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ResourceBundle; import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import megamek.common.util.EncodeControl; import mekhq.campaign.Campaign; import mekhq.campaign.mission.AtBContract; import mekhq.campaign.mission.Contract; /** * @author Neoancient * * A version of ContractViewPanel with additional details for * Against the Bot * */ public class AtBContractViewPanel extends JPanel { private static final long serialVersionUID = -9190665158803529105L; private Campaign campaign; private AtBContract contract; private JPanel pnlStats; private JTextArea txtDesc; private JLabel lblStatus; private JLabel lblLocation; private JTextArea txtLocation; private JLabel lblType; private JTextArea txtType; 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 lblEndDate; private JTextArea txtEndDate; private JLabel lblPayout; private JTextArea txtPayout; private JLabel lblCommand; private JTextArea txtCommand; private JLabel lblBLC; private JTextArea txtBLC; private JLabel lblSalvageValueMerc; private JTextArea txtSalvageValueMerc; private JLabel lblSalvageValueEmployer; private JTextArea txtSalvageValueEmployer; private JLabel lblSalvagePct1; private JLabel lblSalvagePct2; private JLabel lblMorale; private JTextArea txtMorale; private JLabel lblScore; private JTextArea txtScore; private JLabel lblSharePct; private JTextArea txtSharePct; public AtBContractViewPanel(AtBContract contract, Campaign campaign) { this.contract = contract; this.campaign = campaign; initComponents(); } private void initComponents() { GridBagConstraints gridBagConstraints; pnlStats = new JPanel(); txtDesc = new JTextArea(); setLayout(new GridBagLayout()); setBackground(Color.WHITE); pnlStats.setName("pnlStats"); pnlStats.setBorder(BorderFactory.createTitledBorder(contract.getName())); pnlStats.setBackground(Color.WHITE); fillStats(); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 1; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new Insets(5, 5, 5, 20); gridBagConstraints.fill = GridBagConstraints.BOTH; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; add(pnlStats, gridBagConstraints); } private void fillStats() { String[] skillNames = {"Green", "Regular", "Veteran", "Elite"}; String[] ratingNames = {"F", "D", "C", "B", "A"}; lblStatus = new JLabel(); lblLocation = new JLabel(); txtLocation = new JTextArea(); lblEmployer = new JLabel(); txtEmployer = new JTextArea(); lblEnemy = new JLabel(); txtEnemy = new JTextArea(); lblType = new JLabel(); txtType = new JTextArea(); lblStartDate = new JLabel(); txtStartDate = new JTextArea(); lblEndDate = new JLabel(); txtEndDate = new JTextArea(); lblPayout = new JLabel(); txtPayout = new JTextArea(); lblCommand = new JLabel(); txtCommand = new JTextArea(); lblBLC = new JLabel(); txtBLC = new JTextArea(); lblAllyRating = new JLabel(); txtAllyRating = new JTextArea(); lblEnemyRating = new JLabel(); txtEnemyRating = new JTextArea(); lblMorale = new JLabel(); txtMorale = new JTextArea(); lblSharePct = new JLabel(); txtSharePct = new JTextArea(); lblScore = new JLabel(); txtScore = new JTextArea(); ResourceBundle resourceMap = ResourceBundle.getBundle("mekhq.resources.ContractViewPanel", new EncodeControl()); //$NON-NLS-1$ GridBagConstraints gridBagConstraints; pnlStats.setLayout(new GridBagLayout()); SimpleDateFormat shortDateFormat = new SimpleDateFormat("MM/dd/yyyy"); int y = 0; lblStatus.setName("lblOwner"); // NOI18N lblStatus.setText("<html><b>" + contract.getStatusName() + "</b></html>"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y++; gridBagConstraints.gridwidth = 2; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 0.0; gridBagConstraints.insets = new Insets(0, 0, 5, 0); gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblStatus, gridBagConstraints); lblLocation.setName("lblLocation"); // NOI18N lblLocation.setText(resourceMap.getString("lblLocation.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblLocation, gridBagConstraints); txtLocation.setName("txtLocation"); // NOI18N txtLocation.setText(contract.getPlanetName()); txtLocation.setEditable(false); txtLocation.setLineWrap(true); txtLocation.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtLocation, gridBagConstraints); lblEmployer.setName("lblEmployer"); // NOI18N lblEmployer.setText(resourceMap.getString("lblEmployer.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblEmployer, gridBagConstraints); txtEmployer.setName("txtEmployer"); // NOI18N txtEmployer.setText(contract.getEmployerName(campaign.getEra())); txtEmployer.setEditable(false); txtEmployer.setLineWrap(true); txtEmployer.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtEmployer, gridBagConstraints); lblEnemy.setName("lblEnemy"); // NOI18N lblEnemy.setText(resourceMap.getString("lblEnemy.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblEnemy, gridBagConstraints); txtEnemy.setName("txtEnemy"); // NOI18N txtEnemy.setText(contract.getEnemyName(campaign.getEra())); txtEnemy.setEditable(false); txtEnemy.setLineWrap(true); txtEnemy.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtEnemy, gridBagConstraints); lblType.setName("lblType"); // NOI18N lblType.setText(resourceMap.getString("lblType.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblType, gridBagConstraints); txtType.setName("txtType"); // NOI18N txtType.setText(contract.getType()); txtType.setEditable(false); txtType.setLineWrap(true); txtType.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtType, gridBagConstraints); lblAllyRating.setName("lblAllyRating"); // NOI18N lblAllyRating.setText(resourceMap.getString("lblAllyRating.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblAllyRating, gridBagConstraints); txtAllyRating.setName("txtAllyRating"); // NOI18N txtAllyRating.setText(skillNames[contract.getAllySkill()] + "/" + ratingNames[contract.getAllyQuality()]); txtAllyRating.setEditable(false); txtAllyRating.setLineWrap(true); txtAllyRating.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtAllyRating, gridBagConstraints); lblEnemyRating.setName("lblEnemyRating"); // NOI18N lblEnemyRating.setText(resourceMap.getString("lblEnemyRating.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblEnemyRating, gridBagConstraints); txtEnemyRating.setName("txtEnemyRating"); // NOI18N txtEnemyRating.setText(skillNames[contract.getEnemySkill()] + "/" + ratingNames[contract.getEnemyQuality()]); txtEnemyRating.setEditable(false); txtEnemyRating.setLineWrap(true); txtEnemyRating.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtEnemyRating, gridBagConstraints); lblStartDate.setName("lblStartDate"); // NOI18N lblStartDate.setText(resourceMap.getString("lblStartDate.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblStartDate, gridBagConstraints); txtStartDate.setName("txtStartDate"); // NOI18N txtStartDate.setText(shortDateFormat.format(contract.getStartDate())); txtStartDate.setEditable(false); txtStartDate.setLineWrap(true); txtStartDate.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtStartDate, gridBagConstraints); lblEndDate.setName("lblEndDate"); // NOI18N lblEndDate.setText(resourceMap.getString("lblEndDate.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblEndDate, gridBagConstraints); txtEndDate.setName("txtEndDate"); // NOI18N txtEndDate.setText(shortDateFormat.format(contract.getEndingDate())); txtEndDate.setEditable(false); txtEndDate.setLineWrap(true); txtEndDate.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtEndDate, gridBagConstraints); lblPayout.setName("lblPayout"); // NOI18N lblPayout.setText(resourceMap.getString("lblPayout.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblPayout, gridBagConstraints); DecimalFormat numFormatter = new DecimalFormat(); txtPayout.setName("txtPayout"); // NOI18N txtPayout.setText(numFormatter.format(contract.getMonthlyPayOut()) + " C-Bills"); txtPayout.setEditable(false); txtPayout.setLineWrap(true); txtPayout.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtPayout, gridBagConstraints); lblCommand.setName("lblCommand"); // NOI18N lblCommand.setText(resourceMap.getString("lblCommand.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblCommand, gridBagConstraints); txtCommand.setName("txtCommand"); // NOI18N txtCommand.setText(Contract.getCommandRightsName(contract.getCommandRights())); txtCommand.setEditable(false); txtCommand.setLineWrap(true); txtCommand.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtCommand, gridBagConstraints); lblBLC.setName("lblBLC"); // NOI18N lblBLC.setText(resourceMap.getString("lblBLC.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblBLC, gridBagConstraints); txtBLC.setName("txtBLC"); // NOI18N txtBLC.setText(contract.getBattleLossComp() + "%"); txtBLC.setEditable(false); txtBLC.setLineWrap(true); txtBLC.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtBLC, gridBagConstraints); DecimalFormat formatter = new DecimalFormat(); if(contract.getSalvagePct() > 0 && !contract.isSalvageExchange()) { lblSalvageValueMerc = new JLabel(resourceMap.getString("lblSalvageValueMerc.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblSalvageValueMerc, gridBagConstraints); txtSalvageValueMerc = new JTextArea(); txtSalvageValueMerc.setText(formatter.format(contract.getSalvagedByUnit()) + " C-Bills"); txtSalvageValueMerc.setEditable(false); txtSalvageValueMerc.setLineWrap(true); txtSalvageValueMerc.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtSalvageValueMerc, gridBagConstraints); lblSalvageValueEmployer = new JLabel(resourceMap.getString("lblSalvageValueEmployer.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblSalvageValueEmployer, gridBagConstraints); txtSalvageValueEmployer = new JTextArea(); txtSalvageValueEmployer.setText(formatter.format(contract.getSalvagedByEmployer()) + " C-Bills"); txtSalvageValueEmployer.setEditable(false); txtSalvageValueEmployer.setLineWrap(true); txtSalvageValueEmployer.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtSalvageValueEmployer, gridBagConstraints); } lblSalvagePct1 = new JLabel(resourceMap.getString("lblSalvage.text")); lblSalvagePct2 = new JLabel(); if(contract.isSalvageExchange()) { lblSalvagePct2.setText(resourceMap.getString("exchange") + " (" + contract.getSalvagePct() + "%)"); } else if(contract.getSalvagePct() == 0) { lblSalvagePct2.setText(resourceMap.getString("none")); } else { lblSalvagePct1.setText(resourceMap.getString("lblSalvagePct.text")); int maxSalvagePct = contract.getSalvagePct(); int currentSalvagePct = (int)(100*((double)contract.getSalvagedByUnit())/(contract.getSalvagedByUnit()+contract.getSalvagedByEmployer())); String lead = "<html><font color='black'>"; if(currentSalvagePct > maxSalvagePct) { lead = "<html><font color='red'>"; } lblSalvagePct2.setText(lead + currentSalvagePct + "%</font> <font color='black'>(max " + maxSalvagePct + "%)</font></html>"); } gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblSalvagePct1, gridBagConstraints); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblSalvagePct2, gridBagConstraints); lblMorale.setName("lblMorale"); // NOI18N lblMorale.setText(resourceMap.getString("lblMorale.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblMorale, gridBagConstraints); txtMorale.setName("txtMorale"); // NOI18N txtMorale.setText(contract.getMoraleLevelName()); txtMorale.setEditable(false); txtMorale.setLineWrap(true); txtMorale.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtMorale, gridBagConstraints); if (campaign.getCampaignOptions().getUseShareSystem()) { lblSharePct.setName("lblSharePct"); // NOI18N lblSharePct.setText(resourceMap.getString("lblSharePct.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblSharePct, gridBagConstraints); txtSharePct.setName("txtSharePct"); // NOI18N txtSharePct.setText(contract.getSharesPct() + "%"); txtSharePct.setEditable(false); txtSharePct.setLineWrap(true); txtSharePct.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtSharePct, gridBagConstraints); } lblScore.setName("lblScore"); // NOI18N lblScore.setText(resourceMap.getString("lblScore.text")); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(lblScore, gridBagConstraints); txtScore.setName("txtScore"); // NOI18N txtScore.setText(Integer.toString(contract.getScore())); txtScore.setEditable(false); txtScore.setLineWrap(true); txtScore.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = y++; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new Insets(0, 10, 0, 0); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtScore, gridBagConstraints); txtDesc.setName("txtDesc"); txtDesc.setText(contract.getDescription()); txtDesc.setEditable(false); txtDesc.setLineWrap(true); txtDesc.setWrapStyleWord(true); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = y++; gridBagConstraints.gridwidth = 2; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new Insets(5, 5, 5, 20); gridBagConstraints.fill = GridBagConstraints.BOTH; gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlStats.add(txtDesc, gridBagConstraints); } }