Package generators

Source Code of generators.HeatCreatorGenerator

package generators;

import entities.Event;
import entities.Registration;
import generators.behaviors.CreateHeatsBehavior;
import generators.behaviors.SwimmerRelated;

import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import utils.SwimmersPerHeatSingleton;
import work.Operations;

public class HeatCreatorGenerator extends HeatGenerator {

  private GridBagLayout controlLayout = new GridBagLayout();
  private JButton jBCancel = new JButton("Cancel");
  private JButton jBGenerate = new JButton("Generate");
  private JTextField jTSwimmersPerHeat = new JTextField(5);
  private String poolType;
  private String competitionTitle;
  private SwimmersPerHeatSingleton swimmerPerHeat = SwimmersPerHeatSingleton.getInstance();
  private JLabel nrSwimmers = new JLabel();
  private static Operations operations = new Operations();

  public HeatCreatorGenerator(String poolType, String competitionTitle, String title) {
    super(poolType, competitionTitle, title);
    generateHeatBehavior = new CreateHeatsBehavior();
    swimmerRelated = (SwimmerRelated) generateHeatBehavior;
    setPoolType(poolType);
    setCompetitionTitle(competitionTitle);
    jBGenerate.setPreferredSize(new Dimension(100, 26));
    jBCancel.setPreferredSize(new Dimension(100, 26));
    addComponentsToPane(getContentPane());
    showNumberOfSwimmersForEvent();
  }

  public void addComponentsToPane(final Container pane) {
    pane.setLayout(controlLayout);
    GridBagConstraints c = new GridBagConstraints();

    // c.weightx = 0.0;
    // c.gridwidth = 5;

    c.gridx = 0;
    c.gridy = 0;
    c.insets = new Insets(10, 10, 10, 10);
    pane.add(new JLabel("Numele probei"), c);

    c.gridx = 2;
    c.gridy = 0;
    pane.add(jCBHeatName, c);

    c.gridx = 3;
    c.gridy = 0;
    pane.add(new JLabel("Inscrisi la proba"), c);

    c.gridx = 0;
    c.gridy = 1;
    c.insets = new Insets(10, 10, 10, 10);
    pane.add(new JLabel("Tipul probei"), c);

    c.gridx = 2;
    c.gridy = 1;
    pane.add(jCBHeatsGender, c);

    c.gridx = 3;
    c.gridy = 1;
    pane.add(nrSwimmers, c);

    c.gridx = 0;
    c.gridy = 2;
    c.insets = new Insets(10, 10, 10, 10);
    pane.add(new JLabel("Concurenti pe serie"), c);

    c.gridx = 2;
    c.gridy = 2;
    pane.add(jTSwimmersPerHeat, c);

    c.gridx = 0;
    c.gridy = 3;
    pane.add(jBGenerate, c);

    c.gridx = 3;
    c.gridy = 3;
    pane.add(jBCancel, c);

    jBCancel.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        dispose();
      }
    });
    jBGenerate.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        if (jTSwimmersPerHeat.getText().isEmpty()) {
          JOptionPane
              .showMessageDialog(null, "Specificati numarul de concurenti pe serie!", "Warrning...", 1);
        } else {
          // adding the number of swimmers / heat / event. It needs to
          // be used later
          swimmerPerHeat.push(jCBHeatName.getSelectedItem().toString(),
              Integer.parseInt(jTSwimmersPerHeat.getText()));
          swimmerRelated.setSwimmersPerHeat(Integer.parseInt(jTSwimmersPerHeat.getText()));
          generateHeatBehavior.generateHeats(jCBHeatName.getSelectedItem().toString(), getPoolType(),
              getCompetitionTitle(), jCBHeatsGender.getSelectedItem().toString());
        }
      }
    });

    jCBHeatName.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        showNumberOfSwimmersForEvent();
      }
    });

    pack();
    setVisible(true);

  }

  public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
      public void run() {
        HeatCreatorGenerator dialog = new HeatCreatorGenerator(new String(), new String(), new String());
        dialog.addWindowListener(new java.awt.event.WindowAdapter() {
          public void windowClosing(java.awt.event.WindowEvent e) {
            System.exit(0);
          }
        });
        dialog.setVisible(true);
      }
    });
  }

  public String getPoolType() {
    return poolType;
  }

  public void setPoolType(String poolType) {
    this.poolType = poolType;
  }

  public String getCompetitionTitle() {
    return competitionTitle;
  }

  public void setCompetitionTitle(String competitionTitle) {
    this.competitionTitle = competitionTitle;
  }

  private void showNumberOfSwimmersForEvent() {
    List<Registration> selectedEventRegistrationCount = operations.getRegistrationsForEvent(operations
        .returnEvent(jCBHeatName.getSelectedItem().toString()), jCBHeatsGender.getSelectedItem()
        .toString());
    nrSwimmers.setText(Integer.toString(selectedEventRegistrationCount.size()));
  }
}
TOP

Related Classes of generators.HeatCreatorGenerator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.