package cryodex.modules.xwing.wizard.common; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import cryodex.CryodexController; import cryodex.Language; import cryodex.Main; import cryodex.modules.Tournament; import cryodex.modules.xwing.wizard.Page; import cryodex.modules.xwing.wizard.WizardOptions; import cryodex.modules.xwing.wizard.XWingWizard; import cryodex.modules.xwing.wizard.merge.MergeTournamentSelectionPage; import cryodex.modules.xwing.wizard.progression.ProgressionCutPage; import cryodex.widget.ComponentUtils; public class MainPage implements Page { JTextField nameTextField; JCheckBox mergeCB; JCheckBox splitCB; JTextField numSubs; JCheckBox progressionCut; JPanel pagePanel; @Override public JPanel getPanel() { XWingWizard.getInstance().setButtonVisibility(null, true, null); XWingWizard.getInstance().setMinimumSize(new Dimension(450, 300)); if (pagePanel == null) { JPanel namePanel = new JPanel(new BorderLayout()); JLabel nameHeader = new JLabel("<HTML><H1>" + Language.name_event + "</H1></HTML>"); nameTextField = new JTextField(10); namePanel.add(ComponentUtils.addToFlowLayout(nameHeader, FlowLayout.LEFT), BorderLayout.NORTH); namePanel.add(ComponentUtils.addToFlowLayout(nameTextField, FlowLayout.LEFT)); JPanel creationOptionsPanel = new JPanel(new BorderLayout()); JPanel creationOptionsContentPanel = new JPanel(new BorderLayout()); JLabel additionalOptionsHeader = new JLabel("<HTML><H1>" + Language.additional_options + "</H1></HTML>"); creationOptionsPanel.add(ComponentUtils.addToFlowLayout(additionalOptionsHeader, FlowLayout.LEFT), BorderLayout.NORTH); JPanel splitEntryPanel = new JPanel(new BorderLayout()); ComponentUtils.forceSize(splitEntryPanel, 210, 60); splitCB = new JCheckBox(Language.split_into_subtournaments); final JLabel splitLabel = new JLabel(Language.number_of_sub_tournaments + ":"); numSubs = new JTextField(3); splitLabel.setVisible(false); numSubs.setVisible(false); splitCB.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { splitLabel.setVisible(splitCB.isSelected()); numSubs.setVisible(splitCB.isSelected()); } }); splitEntryPanel.add(splitCB, BorderLayout.NORTH); splitEntryPanel.add( ComponentUtils.addToFlowLayout(ComponentUtils.addToHorizontalBorderLayout(splitLabel, numSubs, null), FlowLayout.LEFT), BorderLayout.CENTER); creationOptionsContentPanel.add(ComponentUtils.addToFlowLayout(splitEntryPanel, FlowLayout.LEFT), BorderLayout.SOUTH); mergeCB = new JCheckBox(Language.merge_multiple_tournaments_into_one); progressionCut = new JCheckBox(Language.progression_cut); progressionCut.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (progressionCut.isSelected()) { mergeCB.setSelected(false); mergeCB.setEnabled(false); splitCB.setSelected(false); splitCB.setEnabled(false); } else { mergeCB.setEnabled(true); splitCB.setEnabled(true); } } }); creationOptionsContentPanel.add(ComponentUtils.addToFlowLayout(mergeCB, FlowLayout.LEFT), BorderLayout.CENTER); creationOptionsContentPanel.add(ComponentUtils.addToFlowLayout(progressionCut, FlowLayout.LEFT), BorderLayout.NORTH); creationOptionsPanel.add(ComponentUtils.addToFlowLayout(creationOptionsContentPanel, FlowLayout.LEFT), BorderLayout.CENTER); pagePanel = ComponentUtils.addToFlowLayout(ComponentUtils.addToVerticalBorderLayout(namePanel, creationOptionsPanel, null), FlowLayout.CENTER); } return pagePanel; } @Override public void onNext() { WizardOptions wizardOptions = XWingWizard.getInstance().getWizardOptions(); wizardOptions.setName(nameTextField.getText()); for(Tournament t : CryodexController.getAllTournaments()){ if(wizardOptions.getName().equals(t.getName())){ JOptionPane.showMessageDialog(Main.getInstance(), "Tournament name already used. Please pick something different."); return; } } if (splitCB.isSelected()) { int subs = Integer.parseInt(numSubs.getText()); wizardOptions.setSplit(subs); } if (progressionCut.isSelected()) { XWingWizard.getInstance().setCurrentPage(new ProgressionCutPage()); } else if (mergeCB.isSelected()) { XWingWizard.getInstance().setCurrentPage(new MergeTournamentSelectionPage()); } else { XWingWizard.getInstance().setCurrentPage(new PlayerSelectionPage()); } } @Override public void onPrevious() { // Do nothing } @Override public void onFinish() { // Do nothing } }