package cryodex.widget; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.List; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTabbedPane; import javax.swing.JTextField; import cryodex.CryodexController; import cryodex.Main; import cryodex.Player; public class MassDropPanel extends JDialog { private static final long serialVersionUID = 1L; public MassDropPanel() { super(Main.getInstance(), "Mass Drop Players", true); JTabbedPane tabPanel = new JTabbedPane(); tabPanel.add("By Points", new ByPointsPanel()); tabPanel.add("Player Select", new PlayerSelect()); this.add(tabPanel); MassDropPanel.this.setLocationRelativeTo(Main.getInstance()); MassDropPanel.this.pack(); this.setMinimumSize(new Dimension(300, 300)); } private class PlayerSelect extends JPanel { private static final long serialVersionUID = 1L; private DoubleList<Player> playerList; private JButton ok; private JButton cancel; public PlayerSelect() { super(new BorderLayout()); init(); buildPanel(); } private void init() { List<Player> players = CryodexController.getActiveTournament().getPlayers(); playerList = new DoubleList<Player>(players, null, "Player List", "Dropping"); ok = new JButton("Ok"); ok.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { List<Player> playersToDrop = playerList.getList2Values(); CryodexController.getActiveTournament().massDropPlayers(playersToDrop); MassDropPanel.this.setVisible(false); } }); cancel = new JButton("Cancel"); cancel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { MassDropPanel.this.setVisible(false); } }); } private void buildPanel() { this.add(playerList, BorderLayout.CENTER); JPanel buttonPanel = ComponentUtils.addToHorizontalBorderLayout(ok, null, cancel); this.add(ComponentUtils.addToFlowLayout(buttonPanel, FlowLayout.CENTER), BorderLayout.SOUTH); } } private class ByPointsPanel extends JPanel { private static final long serialVersionUID = 1L; JLabel minPointsLabel; JLabel maxPlayersLabel; JTextField minPointsTF; JTextField maxPlayersTF; JButton ok; JButton cancel; public ByPointsPanel() { super(new BorderLayout()); init(); buildPanel(); } private void init() { minPointsLabel = new JLabel("Min Points"); maxPlayersLabel = new JLabel("Max Players"); minPointsTF = new JTextField(3); maxPlayersTF = new JTextField(3); ok = new JButton("Ok"); ok.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { Integer minScore = null; Integer maxPlayers = null; try { minScore = Integer.parseInt(minPointsTF.getText()); maxPlayers = Integer.parseInt(maxPlayersTF.getText()); } catch (Exception e) { MassDropPanel.this.setVisible(false); return; } CryodexController.getActiveTournament().massDropPlayers(minScore, maxPlayers); MassDropPanel.this.setVisible(false); } }); cancel = new JButton("Cancel"); cancel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { MassDropPanel.this.setVisible(false); } }); } private void buildPanel() { JPanel optionPanel = new JPanel(new BorderLayout()); optionPanel.add(ComponentUtils.addToHorizontalBorderLayout(minPointsLabel, minPointsTF, null), BorderLayout.NORTH); optionPanel.add(ComponentUtils.addToHorizontalBorderLayout(maxPlayersLabel, maxPlayersTF, null), BorderLayout.CENTER); this.add(ComponentUtils.addToFlowLayout(optionPanel, FlowLayout.CENTER), BorderLayout.NORTH); JPanel buttonPanel = ComponentUtils.addToHorizontalBorderLayout(ok, null, cancel); this.add(ComponentUtils.addToFlowLayout(buttonPanel, FlowLayout.CENTER), BorderLayout.CENTER); } } }