/* * MegaMekLab - Copyright (C) 2008 * * Original author - jtighe (torren@users.sourceforge.net) * * This program 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 2 of the License, or (at your option) * any later version. * * This program 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. */ package megameklab.com.ui.Aero.views; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.io.File; import java.util.Vector; import javax.swing.BorderFactory; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.SwingConstants; import megamek.common.verifier.EntityVerifier; import megamek.common.verifier.TestAero; import megameklab.com.ui.EntitySource; import megameklab.com.util.IView; public class SummaryView extends IView{ /** * */ private static final long serialVersionUID = -8492419359401770037L; private JTextField txtStructTon = new JTextField("?"); private JTextField txtEngineTon = new JTextField("?"); private JTextField txtFuelTon = new JTextField("?"); private JTextField txtCockpitTon = new JTextField("?"); private JTextField txtHeatTon = new JTextField("?"); private JTextField txtArmorTon = new JTextField("?"); private JTextField txtEnhancementsTon = new JTextField("?"); private JTextField txtWeapTon = new JTextField("?"); private JTextField txtOtherTon = new JTextField("?"); private EntityVerifier entityVerifier = EntityVerifier.getInstance( new File("data/mechfiles/UnitVerifierOptions.xml")); public SummaryView(EntitySource eSource) { super(eSource); Vector<JTextField> valueFields = new Vector<JTextField>(); valueFields.add(txtStructTon); valueFields.add(txtEngineTon); valueFields.add(txtFuelTon); valueFields.add(txtCockpitTon); valueFields.add(txtHeatTon); valueFields.add(txtArmorTon); valueFields.add(txtEnhancementsTon); valueFields.add(txtWeapTon); valueFields.add(txtOtherTon); Dimension size = new Dimension(45,25); for(JTextField field : valueFields) { field.setEditable(false); field.setSize(size); field.setPreferredSize(size); field.setMinimumSize(size); field.setMaximumSize(size); field.setHorizontalAlignment(SwingConstants.RIGHT); } valueFields.removeAllElements(); size = new Dimension(80,25); for(JTextField field : valueFields) { field.setEditable(false); field.setSize(size); field.setPreferredSize(size); field.setMinimumSize(size); field.setMaximumSize(size); } setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); size = new Dimension(120,25); gbc.gridx = 0; gbc.gridy = 0; gbc.insets = new Insets(0,0,0,5); this.add(createLabel("Category", size, SwingConstants.CENTER), gbc); gbc.gridy = 1; this.add(createLabel("Internal Structure:", size, SwingConstants.RIGHT), gbc); gbc.gridy = 2; this.add(createLabel("Engine:", size, SwingConstants.RIGHT), gbc); gbc.gridy = 3; this.add(createLabel("Fuel:", size, SwingConstants.RIGHT), gbc); gbc.gridy = 4; this.add(createLabel("Cockpit:", size, SwingConstants.RIGHT), gbc); gbc.gridy = 5; this.add(createLabel("Heat Sinks:", size, SwingConstants.RIGHT), gbc); gbc.gridy = 6; this.add(createLabel("Armor:", size, SwingConstants.RIGHT), gbc); gbc.gridy = 7; this.add(createLabel("Enhancements:", size, SwingConstants.RIGHT), gbc); gbc.gridy = 9; this.add(createLabel("Equipment", size, SwingConstants.RIGHT), gbc); gbc.gridy = 10; this.add(createLabel("Weapons:", size, SwingConstants.RIGHT), gbc); gbc.gridy = 11; this.add(createLabel("Other:", size, SwingConstants.RIGHT), gbc); size = new Dimension(45,25); gbc.gridx = 1; gbc.gridy = 0; gbc.insets = new Insets(0,0,0,0); this.add(createLabel("Ton", size, SwingConstants.CENTER), gbc); gbc.gridy = 1; this.add(txtStructTon, gbc); gbc.gridy = 2; this.add(txtEngineTon, gbc); gbc.gridy = 3; this.add(txtFuelTon, gbc); gbc.gridy = 4; this.add(txtCockpitTon, gbc); gbc.gridy = 5; this.add(txtHeatTon, gbc); gbc.gridy = 6; this.add(txtArmorTon, gbc); gbc.gridy = 7; this.add(txtEnhancementsTon, gbc); gbc.gridy = 10; this.add(txtWeapTon, gbc); gbc.gridy = 11; this.add(txtOtherTon, gbc); setBorder(BorderFactory.createTitledBorder("Summary")); } private JLabel createLabel(String text, Dimension size, int align) { JLabel label = new JLabel(text, SwingConstants.TRAILING); setFieldSize(label, size); label.setHorizontalAlignment(align); return label; } public void setFieldSize(JComponent box, Dimension maxSize) { box.setPreferredSize(maxSize); box.setMaximumSize(maxSize); box.setMinimumSize(maxSize); } public void refresh() { TestAero testAero = new TestAero(getAero(), entityVerifier.aeroOption, null); txtStructTon.setText(Double.toString(testAero.getWeightStructure())); txtEngineTon.setText(Double.toString(testAero.getWeightEngine())); txtFuelTon.setText(Double.toString(testAero.getWeightFuel())); txtCockpitTon.setText(Double.toString(testAero.getWeightControls())); txtHeatTon.setText(Double.toString(testAero.getWeightHeatSinks())); txtArmorTon.setText(Double.toString(testAero.getWeightArmor())); txtEnhancementsTon.setText(Double.toString(testAero.getWeightMisc())); txtWeapTon.setText(Double.toString(testAero.getWeightWeapon())); txtOtherTon.setText(Double.toString(testAero.getWeightPowerAmp() + testAero.getWeightCarryingSpace() + testAero.getWeightMisc())); } }