package cryodex.modules.armada; import javax.swing.JCheckBoxMenuItem; import javax.swing.JDialog; import cryodex.CryodexController; import cryodex.CryodexController.Modules; import cryodex.MenuBar; import cryodex.Player; import cryodex.modules.Menu; import cryodex.modules.Module; import cryodex.modules.ModulePlayer; import cryodex.modules.RegistrationPanel; import cryodex.modules.Tournament; import cryodex.modules.armada.ArmadaTournamentCreationWizard.WizardOptions; import cryodex.xml.XMLUtils; import cryodex.xml.XMLUtils.Element; public class ArmadaModule implements Module { private static ArmadaModule module; public static ArmadaModule getInstance() { if (module == null) { module = new ArmadaModule(); } return module; } private JCheckBoxMenuItem viewMenuItem; private ArmadaRegistrationPanel registrationPanel; private ArmadaMenu menu; private ArmadaOptions options; private boolean isEnabled = true; private ArmadaModule() { } @Override public Menu getMenu() { if (menu == null) { menu = new ArmadaMenu(); } return menu; } @Override public RegistrationPanel getRegistration() { if (registrationPanel == null) { registrationPanel = new ArmadaRegistrationPanel(); } return registrationPanel; } @Override public void setModuleEnabled(Boolean enabled) { isEnabled = enabled; getRegistration().getPanel().setVisible(enabled); getMenu().getMenu().setVisible(enabled); } @Override public boolean isModuleEnabled() { return isEnabled; } public static void createTournament() { JDialog wizard = new ArmadaTournamentCreationWizard(); wizard.setVisible(true); } public static void makeTournament(WizardOptions wizardOptions) { ArmadaTournament tournament = new ArmadaTournament( wizardOptions.getName(), wizardOptions.getPlayerList(), wizardOptions.getInitialSeedingEnum(), wizardOptions.getPoints(), wizardOptions.getEscalationPoints(), wizardOptions.isSingleElimination()); CryodexController.registerTournament(tournament); tournament.startTournament(); MenuBar.getInstance().resetMenuBar(); CryodexController.saveData(); } public ArmadaOptions getOptions() { if (options == null) { options = new ArmadaOptions(); } return options; } @Override public StringBuilder appendXML(StringBuilder sb) { XMLUtils.appendXMLObject(sb, "OPTIONS", getOptions()); XMLUtils.appendObject(sb, "NAME", Modules.ARMADA.getName()); return sb; } @Override public ModulePlayer loadPlayer(Player p, Element element) { return new ArmadaPlayer(p, element); } @Override public Tournament loadTournament(Element element) { return new ArmadaTournament(element); } @Override public void loadModuleData(Element element) { options = new ArmadaOptions(element.getChild("OPTIONS")); } @Override public ModulePlayer getNewModulePlayer(Player player) { return new ArmadaPlayer(player); } @Override public JCheckBoxMenuItem getViewMenuItem() { return viewMenuItem; } @Override public void setViewMenuItem(JCheckBoxMenuItem viewMenuItem) { this.viewMenuItem = viewMenuItem; } }