/*
* RatingReport.java
*
* Copyright (c) 2013 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.campaign.report;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.JTextPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
import megamek.common.Aero;
import megamek.common.BattleArmor;
import megamek.common.ConvFighter;
import megamek.common.Dropship;
import megamek.common.Entity;
import megamek.common.EntityMovementMode;
import megamek.common.EntityWeightClass;
import megamek.common.GunEmplacement;
import megamek.common.Infantry;
import megamek.common.Jumpship;
import megamek.common.Mech;
import megamek.common.Protomech;
import megamek.common.SmallCraft;
import megamek.common.SpaceStation;
import megamek.common.SupportTank;
import megamek.common.SupportVTOL;
import megamek.common.Tank;
import megamek.common.VTOL;
import megamek.common.Warship;
import mekhq.campaign.Campaign;
import mekhq.campaign.unit.Unit;
/**
* @author Jay Lawson
* @version %I% %G%
* @since 3/12/2012
*/
public class HangarReport extends Report {
public HangarReport(Campaign c) {
super(c);
}
public String getTitle() {
return "Hangar Breakdown";
}
public JTree getHangarTree() {
DefaultMutableTreeNode top = new DefaultMutableTreeNode("Hangar");
JTree overviewHangarTree = new JTree(top);
// BattleMechs
// boolean expandMechs = false;
int countMechs = 0;
int countBattleMechs = 0;
int countOmniMechs = 0;
int colossalMech = 0;
int assaultMech = 0;
int heavyMech = 0;
int mediumMech = 0;
int lightMech = 0;
int ultralightMech = 0;
int colossalOmniMech = 0;
int assaultOmniMech = 0;
int heavyOmniMech = 0;
int mediumOmniMech = 0;
int lightOmniMech = 0;
int ultralightOmniMech = 0;
// ASF
//boolean expandASF = false;
int countASF = 0;
int countStandardASF = 0;
int countOmniASF = 0;
int countLightASF = 0;
int countMediumASF = 0;
int countHeavyASF = 0;
int countOmniLightASF = 0;
int countOmniMediumASF = 0;
int countOmniHeavyASF = 0;
// Vehicles
//boolean expandVees = false;
int countVees = 0;
int countStandardVees = 0;
int countOmniVees = 0;
int countVTOL = 0;
int countVTOLLight = 0;
int countSub = 0;
int countSubColossal = 0;
int countSubAssault = 0;
int countSubHeavy = 0;
int countSubMedium = 0;
int countSubLight = 0;
int countNaval = 0;
int countNavalColossal = 0;
int countNavalAssault = 0;
int countNavalHeavy = 0;
int countNavalMedium = 0;
int countNavalLight = 0;
int countWiGE = 0;
int countWiGEAssault = 0;
int countWiGEHeavy = 0;
int countWiGEMedium = 0;
int countWiGELight = 0;
int countTracked = 0;
int countTrackedColossal = 0;
int countTrackedAssault = 0;
int countTrackedHeavy = 0;
int countTrackedMedium = 0;
int countTrackedLight = 0;
int countWheeled = 0;
int countWheeledAssault = 0;
int countWheeledHeavy = 0;
int countWheeledMedium = 0;
int countWheeledLight = 0;
int countHover = 0;
int countHoverMedium = 0;
int countHoverLight = 0;
int countHydrofoil = 0;
int countHydrofoilAssault = 0;
int countHydrofoilHeavy = 0;
int countHydrofoilMedium = 0;
int countHydrofoilLight = 0;
int countOmniVTOL = 0;
int countOmniVTOLLight = 0;
int countOmniSub = 0;
int countOmniSubColossal = 0;
int countOmniSubAssault = 0;
int countOmniSubHeavy = 0;
int countOmniSubMedium = 0;
int countOmniSubLight = 0;
int countOmniNaval = 0;
int countOmniNavalColossal = 0;
int countOmniNavalAssault = 0;
int countOmniNavalHeavy = 0;
int countOmniNavalMedium = 0;
int countOmniNavalLight = 0;
int countOmniWiGE = 0;
int countOmniWiGEAssault = 0;
int countOmniWiGEHeavy = 0;
int countOmniWiGEMedium = 0;
int countOmniWiGELight = 0;
int countOmniTracked = 0;
int countOmniTrackedColossal = 0;
int countOmniTrackedAssault = 0;
int countOmniTrackedHeavy = 0;
int countOmniTrackedMedium = 0;
int countOmniTrackedLight = 0;
int countOmniWheeled = 0;
int countOmniWheeledAssault = 0;
int countOmniWheeledHeavy = 0;
int countOmniWheeledMedium = 0;
int countOmniWheeledLight = 0;
int countOmniHover = 0;
int countOmniHoverMedium = 0;
int countOmniHoverLight = 0;
int countOmniHydrofoil = 0;
int countOmniHydrofoilAssault = 0;
int countOmniHydrofoilHeavy = 0;
int countOmniHydrofoilMedium = 0;
int countOmniHydrofoilLight = 0;
// Battle Armor and Infantry
//boolean expandInfantry = false;
int countInfantry = 0;
int countFootInfantry = 0;
int countJumpInfantry = 0;
int countMotorizedInfantry = 0;
int countMechanizedInfantry = 0;
int countBA = 0;
int countBAPAL = 0;
int countBALight = 0;
int countBAMedium = 0;
int countBAHeavy = 0;
int countBAAssault = 0;
// Jumpships, Warships, Dropships, and SmallCraft
//boolean expandSpace = false;
int countSpace = 0;
int countJumpships = 0;
int countWarships = 0;
int countLargeWS = 0;
int countSmallWS = 0;
int countDropships = 0;
int countLargeDS = 0;
int countMediumDS = 0;
int countSmallDS = 0;
int countSmallCraft = 0;
// Conventional Fighters
int countConv = 0;
// Support Vees
/*boolean expandSupportVees = false;
int countSupportVees = 0;
int countSupportStandardVees = 0;
int countSupportOmniVees = 0;
int countSupportVTOL = 0;
int countSupportVTOLLight = 0;
int countSupportSub = 0;
int countSupportSubColossal = 0;
int countSupportSubAssault = 0;
int countSupportSubHeavy = 0;
int countSupportSubMedium = 0;
int countSupportSubLight = 0;
int countSupportNaval = 0;
int countSupportNavalColossal = 0;
int countSupportNavalAssault = 0;
int countSupportNavalHeavy = 0;
int countSupportNavalMedium = 0;
int countSupportNavalLight = 0;
int countSupportWiGE = 0;
int countSupportWiGEAssault = 0;
int countSupportWiGEHeavy = 0;
int countSupportWiGEMedium = 0;
int countSupportWiGELight = 0;
int countSupportTracked = 0;
int countSupportTrackedColossal = 0;
int countSupportTrackedAssault = 0;
int countSupportTrackedHeavy = 0;
int countSupportTrackedMedium = 0;
int countSupportTrackedLight = 0;
int countSupportWheeled = 0;
int countSupportWheeledAssault = 0;
int countSupportWheeledHeavy = 0;
int countSupportWheeledMedium = 0;
int countSupportWheeledLight = 0;
int countSupportHover = 0;
int countSupportHoverMedium = 0;
int countSupportHoverLight = 0;
int countSupportHydrofoil = 0;
int countSupportHydrofoilAssault = 0;
int countSupportHydrofoilHeavy = 0;
int countSupportHydrofoilMedium = 0;
int countSupportHydrofoilLight = 0;
int countSupportOmniVTOL = 0;
int countSupportOmniVTOLLight = 0;
int countSupportOmniSub = 0;
int countSupportOmniSubColossal = 0;
int countSupportOmniSubAssault = 0;
int countSupportOmniSubHeavy = 0;
int countSupportOmniSubMedium = 0;
int countSupportOmniSubLight = 0;
int countSupportOmniNaval = 0;
int countSupportOmniNavalColossal = 0;
int countSupportOmniNavalAssault = 0;
int countSupportOmniNavalHeavy = 0;
int countSupportOmniNavalMedium = 0;
int countSupportOmniNavalLight = 0;
int countSupportOmniWiGE = 0;
int countSupportOmniWiGEAssault = 0;
int countSupportOmniWiGEHeavy = 0;
int countSupportOmniWiGEMedium = 0;
int countSupportOmniWiGELight = 0;
int countSupportOmniTracked = 0;
int countSupportOmniTrackedColossal = 0;
int countSupportOmniTrackedAssault = 0;
int countSupportOmniTrackedHeavy = 0;
int countSupportOmniTrackedMedium = 0;
int countSupportOmniTrackedLight = 0;
int countSupportOmniWheeled = 0;
int countSupportOmniWheeledAssault = 0;
int countSupportOmniWheeledHeavy = 0;
int countSupportOmniWheeledMedium = 0;
int countSupportOmniWheeledLight = 0;
int countSupportOmniHover = 0;
int countSupportOmniHoverMedium = 0;
int countSupportOmniHoverLight = 0;
int countSupportOmniHydrofoil = 0;
int countSupportOmniHydrofoilAssault = 0;
int countSupportOmniHydrofoilHeavy = 0;
int countSupportOmniHydrofoilMedium = 0;
int countSupportOmniHydrofoilLight = 0;*/
// Turrets
int countGE = 0;
// Protomechs
//boolean expandProtos = false;
int countProtos = 0;
int countLightProtos = 0;
int countMediumProtos = 0;
int countHeavyProtos = 0;
int countAssaultProtos = 0;
// Gather data and load it into the tree
for (Unit u : getCampaign().getUnits()) {
Entity e = u.getEntity();
if (e instanceof Mech) {
countMechs++;
if (e.isOmni()) {
countOmniMechs++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_ULTRA_LIGHT) {
ultralightOmniMech++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
lightOmniMech++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
mediumOmniMech++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
heavyOmniMech++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
assaultOmniMech++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
colossalOmniMech++;
}
} else {
countBattleMechs++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_ULTRA_LIGHT) {
ultralightMech++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
lightMech++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
mediumMech++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
heavyMech++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
assaultMech++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
colossalMech++;
}
}
} else if (e instanceof ConvFighter) {
countConv++;
} else if (e instanceof SpaceStation) {
continue;
} else if (e instanceof Warship) {
countSpace++;
countWarships++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_SMALL_WAR) {
countSmallWS++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_LARGE_WAR) {
countLargeWS++;
}
} else if (e instanceof Jumpship) {
countSpace++;
countJumpships++;
} else if (e instanceof Dropship) {
countSpace++;
countDropships++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_SMALL_DROP) {
countSmallDS++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM_DROP) {
countMediumDS++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_LARGE_DROP) {
countLargeDS++;
}
} else if (e instanceof SmallCraft) {
countSpace++;
countSmallCraft++;
} else if (e instanceof Aero) {
countASF++;
if (e.isOmni()) {
countOmniASF++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countOmniLightASF++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countOmniMediumASF++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countOmniHeavyASF++;
}
} else {
countStandardASF++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countLightASF++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countMediumASF++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countHeavyASF++;
}
}
} else if (e instanceof Protomech) {
countProtos++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countLightProtos++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countMediumProtos++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countHeavyProtos++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
countAssaultProtos++;
}
} else if (e instanceof GunEmplacement) {
countGE++;
} else if (e instanceof SupportTank || e instanceof SupportVTOL) {
continue;
} else if (e instanceof Tank) {
countVees++;
if (e.isOmni()) {
countOmniVees++;
if (e instanceof VTOL) {
countOmniVTOL++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countOmniVTOLLight++;
}
} else if (e.getMovementMode() == EntityMovementMode.TRACKED) {
countOmniTracked++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countOmniTrackedLight++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countOmniTrackedMedium++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countOmniTrackedHeavy++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
countOmniTrackedAssault++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
countOmniTrackedColossal++;
}
} else if (e.getMovementMode() == EntityMovementMode.WHEELED) {
countOmniWheeled++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countOmniWheeledLight++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countOmniWheeledMedium++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countOmniWheeledHeavy++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
countOmniWheeledAssault++;
}
} else if (e.getMovementMode() == EntityMovementMode.HOVER) {
countOmniHover++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countOmniHoverLight++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countOmniHoverMedium++;
}
} else if (e.getMovementMode() == EntityMovementMode.WIGE) {
countOmniWiGE++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countOmniWiGELight++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countOmniWiGEMedium++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countOmniWiGEHeavy++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
countOmniWiGEAssault++;
}
} else if (e.getMovementMode() == EntityMovementMode.NAVAL) {
countOmniNaval++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countOmniNavalLight++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countOmniNavalMedium++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countOmniNavalHeavy++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
countOmniNavalAssault++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
countOmniNavalColossal++;
}
} else if (e.getMovementMode() == EntityMovementMode.SUBMARINE) {
countOmniSub++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countOmniSubLight++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countOmniSubMedium++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countOmniSubHeavy++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
countOmniSubAssault++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
countOmniSubColossal++;
}
} else if (e.getMovementMode() == EntityMovementMode.HYDROFOIL) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countOmniHydrofoilLight++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countOmniHydrofoilMedium++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countOmniHydrofoilHeavy++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
countOmniHydrofoilAssault++;
}
}
} else {
countStandardVees++;
if (e instanceof VTOL) {
countVTOL++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countVTOLLight++;
}
} else if (e.getMovementMode() == EntityMovementMode.TRACKED) {
countTracked++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countTrackedLight++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countTrackedMedium++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countTrackedHeavy++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
countTrackedAssault++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
countTrackedColossal++;
}
} else if (e.getMovementMode() == EntityMovementMode.WHEELED) {
countWheeled++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countWheeledLight++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countWheeledMedium++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countWheeledHeavy++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
countWheeledAssault++;
}
} else if (e.getMovementMode() == EntityMovementMode.HOVER) {
countHover++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countHoverLight++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countHoverMedium++;
}
} else if (e.getMovementMode() == EntityMovementMode.WIGE) {
countWiGE++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countWiGELight++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countWiGEMedium++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countWiGEHeavy++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
countWiGEAssault++;
}
} else if (e.getMovementMode() == EntityMovementMode.NAVAL) {
countNaval++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countNavalLight++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countNavalMedium++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countNavalHeavy++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
countNavalAssault++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
countNavalColossal++;
}
} else if (e.getMovementMode() == EntityMovementMode.SUBMARINE) {
countSub++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countSubLight++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countSubMedium++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countSubHeavy++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
countSubAssault++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
countSubColossal++;
}
} else if (e.getMovementMode() == EntityMovementMode.HYDROFOIL) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countHydrofoilLight++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countHydrofoilMedium++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countHydrofoilHeavy++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
countHydrofoilAssault++;
}
}
}
} else if (e instanceof BattleArmor) {
countBA++;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_ULTRA_LIGHT) {
countBAPAL++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
countBALight++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
countBAMedium++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
countBAHeavy++;
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
countBAAssault++;
}
} else if (e instanceof Infantry) {
countInfantry++;
if (((Infantry) e).isMechanized()) {
countMechanizedInfantry++;
} else if (e.getMovementMode() == EntityMovementMode.INF_JUMP) {
countJumpInfantry++;
} else if (e.getMovementMode() == EntityMovementMode.INF_LEG) {
countFootInfantry++;
} else if (e.getMovementMode() == EntityMovementMode.INF_MOTORIZED) {
countMotorizedInfantry++;
}
}
}
// Mech Nodes
final DefaultMutableTreeNode mechs = new DefaultMutableTreeNode("'Mechs: "+countMechs);
DefaultMutableTreeNode battlemechs = new DefaultMutableTreeNode("BattleMechs: "+countBattleMechs);
DefaultMutableTreeNode omnis = new DefaultMutableTreeNode("OmniMechs: "+countOmniMechs);
mechs.add(battlemechs);
mechs.add(omnis);
DefaultMutableTreeNode colossalmechs = new DefaultMutableTreeNode("Colossal: "+colossalMech);
battlemechs.add(colossalmechs);
DefaultMutableTreeNode assaultmechs = new DefaultMutableTreeNode("Assault: "+assaultMech);
battlemechs.add(assaultmechs);
DefaultMutableTreeNode heavymechs = new DefaultMutableTreeNode("Heavy: "+heavyMech);
battlemechs.add(heavymechs);
DefaultMutableTreeNode mediummechs = new DefaultMutableTreeNode("Medium: "+mediumMech);
battlemechs.add(mediummechs);
DefaultMutableTreeNode lightmechs = new DefaultMutableTreeNode("Light: "+lightMech);
battlemechs.add(lightmechs);
DefaultMutableTreeNode ultralightmechs = new DefaultMutableTreeNode("Ultralight: "+ultralightMech);
battlemechs.add(ultralightmechs);
DefaultMutableTreeNode colossalomnis = new DefaultMutableTreeNode("Colossal: "+colossalOmniMech);
omnis.add(colossalomnis);
DefaultMutableTreeNode assaultomnis = new DefaultMutableTreeNode("Assault: "+assaultOmniMech);
omnis.add(assaultomnis);
DefaultMutableTreeNode heavyomnis = new DefaultMutableTreeNode("Heavy: "+heavyOmniMech);
omnis.add(heavyomnis);
DefaultMutableTreeNode mediumomnis = new DefaultMutableTreeNode("Medium: "+mediumOmniMech);
omnis.add(mediumomnis);
DefaultMutableTreeNode lightomnis = new DefaultMutableTreeNode("Light: "+lightOmniMech);
omnis.add(lightomnis);
DefaultMutableTreeNode ultralightomnis = new DefaultMutableTreeNode("Ultralight: "+ultralightOmniMech);
omnis.add(ultralightomnis);
top.add(mechs);
// ASF Nodes
final DefaultMutableTreeNode ASF = new DefaultMutableTreeNode("'Aerospace Fighters: "+countASF);
DefaultMutableTreeNode sASF = new DefaultMutableTreeNode("Standard Fighters: "+countStandardASF);
DefaultMutableTreeNode oASF = new DefaultMutableTreeNode("OmniFighters: "+countOmniASF);
ASF.add(sASF);
ASF.add(oASF);
DefaultMutableTreeNode sHeavyASF = new DefaultMutableTreeNode("Heavy: "+countHeavyASF);
sASF.add(sHeavyASF);
DefaultMutableTreeNode sMediumASF = new DefaultMutableTreeNode("Medium: "+countMediumASF);
sASF.add(sMediumASF);
DefaultMutableTreeNode sLightASF = new DefaultMutableTreeNode("Light: "+countLightASF);
sASF.add(sLightASF);
DefaultMutableTreeNode oHeavyASF = new DefaultMutableTreeNode("Heavy: "+countOmniHeavyASF);
oASF.add(oHeavyASF);
DefaultMutableTreeNode oMediumASF = new DefaultMutableTreeNode("Medium: "+countOmniMediumASF);
oASF.add(oMediumASF);
DefaultMutableTreeNode oLightASF = new DefaultMutableTreeNode("Light: "+countOmniLightASF);
oASF.add(oLightASF);
top.add(ASF);
// Vee Nodes
final DefaultMutableTreeNode vees = new DefaultMutableTreeNode("Vehicles: "+countVees);
DefaultMutableTreeNode sVees = new DefaultMutableTreeNode("Standard: "+countStandardVees);
DefaultMutableTreeNode oVees = new DefaultMutableTreeNode("OmniVees: "+countOmniVees);
vees.add(sVees);
vees.add(oVees);
DefaultMutableTreeNode sTracked = new DefaultMutableTreeNode("Tracked: "+countTracked);
sVees.add(sTracked);
DefaultMutableTreeNode sTrackedColossal = new DefaultMutableTreeNode("Super Heavy: "+countTrackedColossal);
sTracked.add(sTrackedColossal);
DefaultMutableTreeNode sTrackedAssault = new DefaultMutableTreeNode("Assault: "+countTrackedAssault);
sTracked.add(sTrackedAssault);
DefaultMutableTreeNode sTrackedHeavy = new DefaultMutableTreeNode("Heavy: "+countTrackedHeavy);
sTracked.add(sTrackedHeavy);
DefaultMutableTreeNode sTrackedMedium = new DefaultMutableTreeNode("Medium: "+countTrackedMedium);
sTracked.add(sTrackedMedium);
DefaultMutableTreeNode sTrackedLight = new DefaultMutableTreeNode("Light: "+countTrackedLight);
sTracked.add(sTrackedLight);
DefaultMutableTreeNode oTracked = new DefaultMutableTreeNode("Tracked: "+countOmniTracked);
oVees.add(oTracked);
DefaultMutableTreeNode oTrackedColossal = new DefaultMutableTreeNode("Super Heavy: "+countOmniTrackedColossal);
oTracked.add(oTrackedColossal);
DefaultMutableTreeNode oTrackedAssault = new DefaultMutableTreeNode("Assault: "+countOmniTrackedAssault);
oTracked.add(oTrackedAssault);
DefaultMutableTreeNode oTrackedHeavy = new DefaultMutableTreeNode("Heavy: "+countOmniTrackedHeavy);
oTracked.add(oTrackedHeavy);
DefaultMutableTreeNode oTrackedMedium = new DefaultMutableTreeNode("Medium: "+countOmniTrackedMedium);
oTracked.add(oTrackedMedium);
DefaultMutableTreeNode oTrackedLight = new DefaultMutableTreeNode("Light: "+countOmniTrackedLight);
oTracked.add(oTrackedLight);
DefaultMutableTreeNode sWheeled = new DefaultMutableTreeNode("Wheeled: "+countWheeled);
sVees.add(sWheeled);
DefaultMutableTreeNode sWheeledAssault = new DefaultMutableTreeNode("Assault: "+countWheeledAssault);
sWheeled.add(sWheeledAssault);
DefaultMutableTreeNode sWheeledHeavy = new DefaultMutableTreeNode("Heavy: "+countWheeledHeavy);
sWheeled.add(sWheeledHeavy);
DefaultMutableTreeNode sWheeledMedium = new DefaultMutableTreeNode("Medium: "+countWheeledMedium);
sWheeled.add(sWheeledMedium);
DefaultMutableTreeNode sWheeledLight = new DefaultMutableTreeNode("Light: "+countWheeledLight);
sWheeled.add(sWheeledLight);
DefaultMutableTreeNode oWheeled = new DefaultMutableTreeNode("Wheeled: "+countOmniWheeled);
oVees.add(oWheeled);
DefaultMutableTreeNode oWheeledAssault = new DefaultMutableTreeNode("Assault: "+countOmniWheeledAssault);
oWheeled.add(oWheeledAssault);
DefaultMutableTreeNode oWheeledHeavy = new DefaultMutableTreeNode("Heavy: "+countOmniWheeledHeavy);
oWheeled.add(oWheeledHeavy);
DefaultMutableTreeNode oWheeledMedium = new DefaultMutableTreeNode("Medium: "+countOmniWheeledMedium);
oWheeled.add(oWheeledMedium);
DefaultMutableTreeNode oWheeledLight = new DefaultMutableTreeNode("Light: "+countOmniWheeledLight);
oWheeled.add(oWheeledLight);
DefaultMutableTreeNode sHover = new DefaultMutableTreeNode("Hover: "+countHover);
sVees.add(sHover);
DefaultMutableTreeNode sHoverMedium = new DefaultMutableTreeNode("Medium: "+countHoverMedium);
sHover.add(sHoverMedium);
DefaultMutableTreeNode sHoverLight = new DefaultMutableTreeNode("Light: "+countHoverLight);
sHover.add(sHoverLight);
DefaultMutableTreeNode oHover = new DefaultMutableTreeNode("Hover: "+countOmniHover);
oVees.add(oHover);
DefaultMutableTreeNode oHoverMedium = new DefaultMutableTreeNode("Medium: "+countOmniHoverMedium);
oHover.add(oHoverMedium);
DefaultMutableTreeNode oHoverLight = new DefaultMutableTreeNode("Light: "+countOmniHoverLight);
oHover.add(oHoverLight);
DefaultMutableTreeNode sVTOL = new DefaultMutableTreeNode("VTOL: "+countVTOL);
sVees.add(sVTOL);
DefaultMutableTreeNode sVTOLLight = new DefaultMutableTreeNode("Light: "+countVTOLLight);
sVTOL.add(sVTOLLight);
DefaultMutableTreeNode oVTOL = new DefaultMutableTreeNode("VTOL: "+countOmniVTOL);
oVees.add(oVTOL);
DefaultMutableTreeNode oVTOLLight = new DefaultMutableTreeNode("Light: "+countOmniVTOLLight);
oVTOL.add(oVTOLLight);
DefaultMutableTreeNode sWiGE = new DefaultMutableTreeNode("WiGE: "+countWiGE);
sVees.add(sWiGE);
DefaultMutableTreeNode sWiGEAssault = new DefaultMutableTreeNode("Assault: "+countWiGEAssault);
sWiGE.add(sWiGEAssault);
DefaultMutableTreeNode sWiGEHeavy = new DefaultMutableTreeNode("Heavy: "+countWiGEHeavy);
sWiGE.add(sWiGEHeavy);
DefaultMutableTreeNode sWiGEMedium = new DefaultMutableTreeNode("Medium: "+countWiGEMedium);
sWiGE.add(sWiGEMedium);
DefaultMutableTreeNode sWiGELight = new DefaultMutableTreeNode("Light: "+countWiGELight);
sWiGE.add(sWiGELight);
DefaultMutableTreeNode oWiGE = new DefaultMutableTreeNode("WiGE: "+countOmniWiGE);
oVees.add(oWiGE);
DefaultMutableTreeNode oWiGEAssault = new DefaultMutableTreeNode("Assault: "+countOmniWiGEAssault);
oWiGE.add(oWiGEAssault);
DefaultMutableTreeNode oWiGEHeavy = new DefaultMutableTreeNode("Heavy: "+countOmniWiGEHeavy);
oWiGE.add(oWiGEHeavy);
DefaultMutableTreeNode oWiGEMedium = new DefaultMutableTreeNode("Medium: "+countOmniWiGEMedium);
oWiGE.add(oWiGEMedium);
DefaultMutableTreeNode oWiGELight = new DefaultMutableTreeNode("Light: "+countOmniWiGELight);
oWiGE.add(oWiGELight);
DefaultMutableTreeNode sNaval = new DefaultMutableTreeNode("Naval: "+countNaval);
sVees.add(sNaval);
DefaultMutableTreeNode sNavalColossal = new DefaultMutableTreeNode("Super Heavy: "+countNavalColossal);
sNaval.add(sNavalColossal);
DefaultMutableTreeNode sNavalAssault = new DefaultMutableTreeNode("Assault: "+countNavalAssault);
sNaval.add(sNavalAssault);
DefaultMutableTreeNode sNavalHeavy = new DefaultMutableTreeNode("Heavy: "+countNavalHeavy);
sNaval.add(sNavalHeavy);
DefaultMutableTreeNode sNavalMedium = new DefaultMutableTreeNode("Medium: "+countNavalMedium);
sNaval.add(sNavalMedium);
DefaultMutableTreeNode sNavalLight = new DefaultMutableTreeNode("Light: "+countNavalLight);
sNaval.add(sNavalLight);
DefaultMutableTreeNode oNaval = new DefaultMutableTreeNode("Naval: "+countOmniNaval);
oVees.add(oNaval);
DefaultMutableTreeNode oNavalColossal = new DefaultMutableTreeNode("Super Heavy: "+countOmniNavalColossal);
oNaval.add(oNavalColossal);
DefaultMutableTreeNode oNavalAssault = new DefaultMutableTreeNode("Assault: "+countOmniNavalAssault);
oNaval.add(oNavalAssault);
DefaultMutableTreeNode oNavalHeavy = new DefaultMutableTreeNode("Heavy: "+countOmniNavalHeavy);
oNaval.add(oNavalHeavy);
DefaultMutableTreeNode oNavalMedium = new DefaultMutableTreeNode("Medium: "+countOmniNavalMedium);
oNaval.add(oNavalMedium);
DefaultMutableTreeNode oNavalLight = new DefaultMutableTreeNode("Light: "+countOmniNavalLight);
oNaval.add(oNavalLight);
DefaultMutableTreeNode sSub = new DefaultMutableTreeNode("Sub: "+countSub);
sVees.add(sSub);
DefaultMutableTreeNode sSubColossal = new DefaultMutableTreeNode("Super Heavy: "+countSubColossal);
sSub.add(sSubColossal);
DefaultMutableTreeNode sSubAssault = new DefaultMutableTreeNode("Assault: "+countSubAssault);
sSub.add(sSubAssault);
DefaultMutableTreeNode sSubHeavy = new DefaultMutableTreeNode("Heavy: "+countSubHeavy);
sSub.add(sSubHeavy);
DefaultMutableTreeNode sSubMedium = new DefaultMutableTreeNode("Medium: "+countSubMedium);
sSub.add(sSubMedium);
DefaultMutableTreeNode sSubLight = new DefaultMutableTreeNode("Light: "+countSubLight);
sSub.add(sSubLight);
DefaultMutableTreeNode oSub = new DefaultMutableTreeNode("Sub: "+countOmniSub);
oVees.add(oSub);
DefaultMutableTreeNode oSubColossal = new DefaultMutableTreeNode("Super Heavy: "+countOmniSubColossal);
oSub.add(oSubColossal);
DefaultMutableTreeNode oSubAssault = new DefaultMutableTreeNode("Assault: "+countOmniSubAssault);
oSub.add(oSubAssault);
DefaultMutableTreeNode oSubHeavy = new DefaultMutableTreeNode("Heavy: "+countOmniSubHeavy);
oSub.add(oSubHeavy);
DefaultMutableTreeNode oSubMedium = new DefaultMutableTreeNode("Medium: "+countOmniSubMedium);
oSub.add(oSubMedium);
DefaultMutableTreeNode oSubLight = new DefaultMutableTreeNode("Light: "+countOmniSubLight);
oSub.add(oSubLight);
DefaultMutableTreeNode sHydrofoil = new DefaultMutableTreeNode("Hydrofoil: "+countHydrofoil);
sVees.add(sHydrofoil);
DefaultMutableTreeNode sHydrofoilAssault = new DefaultMutableTreeNode("Assault: "+countHydrofoilAssault);
sHydrofoil.add(sHydrofoilAssault);
DefaultMutableTreeNode sHydrofoilHeavy = new DefaultMutableTreeNode("Heavy: "+countHydrofoilHeavy);
sHydrofoil.add(sHydrofoilHeavy);
DefaultMutableTreeNode sHydrofoilMedium = new DefaultMutableTreeNode("Medium: "+countHydrofoilMedium);
sHydrofoil.add(sHydrofoilMedium);
DefaultMutableTreeNode sHydrofoilLight = new DefaultMutableTreeNode("Light: "+countHydrofoilLight);
sHydrofoil.add(sHydrofoilLight);
DefaultMutableTreeNode oHydrofoil = new DefaultMutableTreeNode("Hydrofoil: "+countOmniHydrofoil);
oVees.add(oHydrofoil);
DefaultMutableTreeNode oHydrofoilAssault = new DefaultMutableTreeNode("Assault: "+countOmniHydrofoilAssault);
oHydrofoil.add(oHydrofoilAssault);
DefaultMutableTreeNode oHydrofoilHeavy = new DefaultMutableTreeNode("Heavy: "+countOmniHydrofoilHeavy);
oHydrofoil.add(oHydrofoilHeavy);
DefaultMutableTreeNode oHydrofoilMedium = new DefaultMutableTreeNode("Medium: "+countOmniHydrofoilMedium);
oHydrofoil.add(oHydrofoilMedium);
DefaultMutableTreeNode oHydrofoilLight = new DefaultMutableTreeNode("Light: "+countOmniHydrofoilLight);
oHydrofoil.add(oHydrofoilLight);
top.add(vees);
// Conventional Fighters
final DefaultMutableTreeNode conv = new DefaultMutableTreeNode("Conventional Fighters: "+countConv);
top.add(conv);
// Infantry Nodes
int allInfantry = (countInfantry+countBA);
final DefaultMutableTreeNode inf = new DefaultMutableTreeNode("Infantry: "+allInfantry);
DefaultMutableTreeNode cInf = new DefaultMutableTreeNode("Conventional: "+countInfantry);
DefaultMutableTreeNode BAInf = new DefaultMutableTreeNode("Battle Armor: "+countBA);
inf.add(cInf);
inf.add(BAInf);
DefaultMutableTreeNode infFoot = new DefaultMutableTreeNode("Foot Platoons: "+countFootInfantry);
cInf.add(infFoot);
DefaultMutableTreeNode infJump = new DefaultMutableTreeNode("Jump Platoons: "+countJumpInfantry);
cInf.add(infJump);
DefaultMutableTreeNode infMechanized = new DefaultMutableTreeNode("Mechanized Platoons: "+countMechanizedInfantry);
cInf.add(infMechanized);
DefaultMutableTreeNode infMotorized = new DefaultMutableTreeNode("Motorized Platoons: "+countMotorizedInfantry);
cInf.add(infMotorized);
DefaultMutableTreeNode baPAL = new DefaultMutableTreeNode("PAL/Exoskeleton: "+countBAPAL);
BAInf.add(baPAL);
DefaultMutableTreeNode baLight = new DefaultMutableTreeNode("Light: "+countBALight);
BAInf.add(baLight);
DefaultMutableTreeNode baMedium = new DefaultMutableTreeNode("Medium: "+countBAMedium);
BAInf.add(baMedium);
DefaultMutableTreeNode baHeavy = new DefaultMutableTreeNode("Heavy: "+countBAHeavy);
BAInf.add(baHeavy);
DefaultMutableTreeNode baAssault = new DefaultMutableTreeNode("Assault: "+countBAAssault);
BAInf.add(baAssault);
top.add(inf);
// Protomechs
final DefaultMutableTreeNode protos = new DefaultMutableTreeNode("Protomechs: "+countProtos);
DefaultMutableTreeNode plight = new DefaultMutableTreeNode("Light: "+countLightProtos);
protos.add(plight);
DefaultMutableTreeNode pmedium = new DefaultMutableTreeNode("Medium: "+countMediumProtos);
protos.add(pmedium);
DefaultMutableTreeNode pheavy = new DefaultMutableTreeNode("Heavy: "+countHeavyProtos);
protos.add(pheavy);
DefaultMutableTreeNode passault = new DefaultMutableTreeNode("Assault: "+countAssaultProtos);
protos.add(passault);
top.add(protos);
// Turrets
final DefaultMutableTreeNode ge = new DefaultMutableTreeNode("Gun Emplacements: "+countGE);
top.add(ge);
// Space
final DefaultMutableTreeNode space = new DefaultMutableTreeNode("Spacecraft: "+countSpace);
DefaultMutableTreeNode ws = new DefaultMutableTreeNode("Warships: "+countWarships);
space.add(ws);
DefaultMutableTreeNode js = new DefaultMutableTreeNode("Jumpships: "+countJumpships);
space.add(js);
DefaultMutableTreeNode ds = new DefaultMutableTreeNode("Dropships: "+countDropships);
space.add(ds);
DefaultMutableTreeNode sc = new DefaultMutableTreeNode("Small Craft: "+countSmallCraft);
space.add(sc);
DefaultMutableTreeNode smws = new DefaultMutableTreeNode("Small Warships: "+countSmallWS);
ws.add(smws);
DefaultMutableTreeNode lgws = new DefaultMutableTreeNode("Large Warships: "+countLargeWS);
ws.add(lgws);
DefaultMutableTreeNode smds = new DefaultMutableTreeNode("Small Dropships: "+countSmallDS);
ds.add(smds);
DefaultMutableTreeNode mdds = new DefaultMutableTreeNode("Medium Dropships: "+countMediumDS);
ds.add(mdds);
DefaultMutableTreeNode lgds = new DefaultMutableTreeNode("Large Dropships: "+countLargeDS);
ds.add(lgds);
top.add(space);
for (Unit u : getCampaign().getUnits()) {
Entity e = u.getEntity();
if (e instanceof Mech) {
//expandMechs = true;
if (e.isOmni()) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_ULTRA_LIGHT) {
ultralightomnis.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
lightomnis.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
mediumomnis.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
heavyomnis.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
assaultomnis.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
colossalomnis.add(new DefaultMutableTreeNode(u.getName()));
}
} else {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_ULTRA_LIGHT) {
ultralightmechs.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
lightmechs.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
mediummechs.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
heavymechs.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
assaultmechs.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
colossalmechs.add(new DefaultMutableTreeNode(u.getName()));
}
}
} else if (e instanceof ConvFighter) {
conv.add(new DefaultMutableTreeNode(u.getName()));
} else if (e instanceof Warship) {
//expandSpace = true;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_SMALL_WAR) {
smws.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_LARGE_WAR) {
lgws.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e instanceof Jumpship) {
//expandSpace = true;
js.add(new DefaultMutableTreeNode(u.getName()));
} else if (e instanceof Dropship) {
//expandSpace = true;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_SMALL_DROP) {
smds.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM_DROP) {
mdds.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_LARGE_DROP) {
lgds.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e instanceof SmallCraft) {
//expandSpace = true;
sc.add(new DefaultMutableTreeNode(u.getName()));
} else if (e instanceof Aero) {
//expandASF = true;
if (e.isOmni()) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
oLightASF.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
oMediumASF.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
oHeavyASF.add(new DefaultMutableTreeNode(u.getName()));
}
} else {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
sLightASF.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
sMediumASF.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
sHeavyASF.add(new DefaultMutableTreeNode(u.getName()));
}
}
} else if (e instanceof Protomech) {
//expandProtos = true;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
plight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
pmedium.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
pheavy.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
passault.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e instanceof GunEmplacement) {
ge.add(new DefaultMutableTreeNode(u.getName()));
} else if (e instanceof SupportTank || e instanceof SupportVTOL) {
continue;
} else if (e instanceof Tank) {
//expandVees = true;
if (e.isOmni()) {
if (e instanceof VTOL) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
oVTOLLight.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e.getMovementMode() == EntityMovementMode.TRACKED) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
oTrackedLight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
oTrackedMedium.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
oTrackedHeavy.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
oTrackedAssault.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
oTrackedColossal.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e.getMovementMode() == EntityMovementMode.WHEELED) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
oWheeledLight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
oWheeledMedium.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
oWheeledHeavy.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
oWheeledAssault.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e.getMovementMode() == EntityMovementMode.HOVER) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
oHoverLight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
oHoverMedium.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e.getMovementMode() == EntityMovementMode.WIGE) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
oWiGELight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
oWiGEMedium.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
oWiGEHeavy.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
oWiGEAssault.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e.getMovementMode() == EntityMovementMode.NAVAL) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
oNavalLight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
oNavalMedium.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
oNavalHeavy.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
oNavalAssault.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
oNavalColossal.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e.getMovementMode() == EntityMovementMode.SUBMARINE) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
oSubLight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
oSubMedium.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
oSubHeavy.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
oSubAssault.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
oSubColossal.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e.getMovementMode() == EntityMovementMode.HYDROFOIL) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
oHydrofoilLight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
oHydrofoilMedium.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
oHydrofoilHeavy.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
oHydrofoilAssault.add(new DefaultMutableTreeNode(u.getName()));
}
}
} else {
if (e instanceof VTOL) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
sVTOLLight.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e.getMovementMode() == EntityMovementMode.TRACKED) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
sTrackedLight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
sTrackedMedium.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
sTrackedHeavy.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
sTrackedAssault.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
sTrackedColossal.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e.getMovementMode() == EntityMovementMode.WHEELED) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
sWheeledLight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
sWheeledMedium.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
sWheeledHeavy.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
sWheeledAssault.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e.getMovementMode() == EntityMovementMode.HOVER) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
sHoverLight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
sHoverMedium.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e.getMovementMode() == EntityMovementMode.WIGE) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
sWiGELight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
sWiGEMedium.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
sWiGEHeavy.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
sWiGEAssault.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e.getMovementMode() == EntityMovementMode.NAVAL) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
sNavalLight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
sNavalMedium.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
sNavalHeavy.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
sNavalAssault.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
sNavalColossal.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e.getMovementMode() == EntityMovementMode.SUBMARINE) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
sSubLight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
sSubMedium.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
sSubHeavy.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
sSubAssault.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_COLOSSAL) {
sSubColossal.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e.getMovementMode() == EntityMovementMode.HYDROFOIL) {
if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
sHydrofoilLight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
sHydrofoilMedium.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
sHydrofoilHeavy.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
sHydrofoilAssault.add(new DefaultMutableTreeNode(u.getName()));
}
}
}
} else if (e instanceof BattleArmor) {
//expandInfantry = true;
if (e.getWeightClass() == EntityWeightClass.WEIGHT_ULTRA_LIGHT) {
baPAL.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_LIGHT) {
baLight.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_MEDIUM) {
baMedium.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_HEAVY) {
baHeavy.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getWeightClass() == EntityWeightClass.WEIGHT_ASSAULT) {
baAssault.add(new DefaultMutableTreeNode(u.getName()));
}
} else if (e instanceof Infantry) {
//expandInfantry = true;
if (((Infantry) e).isMechanized()) {
infMechanized.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getMovementMode() == EntityMovementMode.INF_JUMP) {
infJump.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getMovementMode() == EntityMovementMode.INF_LEG) {
infFoot.add(new DefaultMutableTreeNode(u.getName()));
} else if (e.getMovementMode() == EntityMovementMode.INF_MOTORIZED) {
infMotorized.add(new DefaultMutableTreeNode(u.getName()));
}
}
}
// Reset our UI
/*
final boolean expandMechsFinal = expandMechs;
final boolean expandASFFinal = expandASF;
final boolean expandVeesFinal = expandVees;
final boolean expandInfantryFinal = expandInfantry;
final boolean expandSpaceFinal = expandSpace;
final boolean expandProtosFinal = expandProtos;
*/
overviewHangarTree.setSelectionPath(null);
overviewHangarTree.expandPath(new TreePath(top.getPath()));
/*
if (expandMechsFinal) {
overviewHangarTree.expandPath(new TreePath(mechs.getPath()));
}
if (expandASFFinal) {
overviewHangarTree.expandPath(new TreePath(ASF.getPath()));
}
if (expandVeesFinal) {
overviewHangarTree.expandPath(new TreePath(vees.getPath()));
}
if (expandInfantryFinal) {
overviewHangarTree.expandPath(new TreePath(inf.getPath()));
}
if (expandSpaceFinal) {
overviewHangarTree.expandPath(new TreePath(space.getPath()));
}
if (expandProtosFinal) {
overviewHangarTree.expandPath(new TreePath(protos.getPath()));
}*/
return overviewHangarTree;
}
public String getHangarTotals() {
int countInTransit = 0;
int countPresent = 0;
int countDamaged = 0;
int countDeployed = 0;
for (Unit u : getCampaign().getUnits()) {
if (u.isPresent()) {
countPresent++;
} else {
countInTransit++;
}
if (u.isDamaged()) {
countDamaged++;
}
if (u.isDeployed()) {
countDeployed++;
}
}
return "Total Units: "+getCampaign().getUnits().size()+
"\n Present: "+countPresent+
"\n In Transit: "+countInTransit+
"\n Damaged: "+countDamaged+
"\n Deployed: "+countDeployed;
}
public JTextPane getReport() {
JTextPane txtReport = new JTextPane();
txtReport.setMinimumSize(new Dimension(800, 500));
txtReport.setFont(new Font("Courier New", Font.PLAIN, 12));
txtReport.setAlignmentY(1.0f);
txtReport.setText(getHangarTotals() + "\n\n\n");
txtReport.insertComponent(getHangarTree());
return txtReport;
}
}