Package de.achim.turnier.spielplan

Source Code of de.achim.turnier.spielplan.PrintSPP

package de.achim.turnier.spielplan;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.StringTokenizer;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import de.achim.turnier.Turniervewaltung2;
import de.achim.turnier.tabellen.TabellenPanel;
import de.achim.turnier.utility.Begegnung;
import de.achim.turnier.utility.IPaarungPanels;
import de.achim.turnier.utility.ITabellen;

public class SpielPlanPanel extends JPanel implements IPaarungPanels{
 
  private static final int WIDTH = 400;
  private static final int HEIGHT = 80;

  private Vector<SpielPanel> spieleListe = new Vector<SpielPanel>();

  private Vector<Begegnung> begegnungsListe = new Vector<Begegnung>();
  private TabellenPanel tabelle;
 
  private JLabel title;
  private JPanel spiele;// = new JPanel();
  private JPanel motherPanel;
 
  private String errorMsg = new String();
  private int gruppe = 0;
 
  public JLabel getTitle() {
    return title;
  }
 
  public void setTitle(String title) {
    if(this.title.getText().length() <= 0){
      this.title.setText(title);
      revalidate();
    }
  }

  public SpielPlanPanel(){
   
    setSize(WIDTH, HEIGHT);
    BorderLayout bd = new BorderLayout();
    GridLayout griddy = new GridLayout(0,1);

    setLayout(bd);
   
    title = new JLabel();
    Font font = new Font( Font.SANS_SERIF, Font.PLAIN, 20 );
    title.setFont(font);
    title.setHorizontalAlignment(title.CENTER);
    spiele = new JPanel();
    spiele.setLayout(griddy);
   
    JButton druckButton = new JButton("Drucken");
    ActionListener al = new PrintSPP(this);
    druckButton.addActionListener(al);
   
    add(title, bd.NORTH);
    add(spiele, bd.CENTER);
    add(druckButton, bd.SOUTH);
   
  }
 
  public void initFromFile(Vector<String> vLine){
    // data line has the following format:
    // abc;cde2;0;0;uhrzeit
   
    Iterator<String> iter = vLine.iterator();
    while(iter.hasNext()){
      String line = iter.next();
      initFromLine(line);
    }
   
  }
 
  public void initFromLine(String line){
    StringTokenizer st = new StringTokenizer(line, ";");
   
    String m1 =st.nextToken();
    String m2 =st.nextToken();
    String t1 =st.nextToken();
    String t2 =st.nextToken();
    String u1 = st.nextToken();
    String gruppe = st.nextToken();
    if(u1 == null)
      u1 = "12:00";
    int index = u1.indexOf(" ");
    String datum = u1.substring(0, index).trim();
    String uhrzeit = u1.substring(index, u1.length()).trim();
    setTitle(datum);
    addSpielPaarung(m1, m2, Integer.parseInt(t1), Integer.parseInt(t2), u1, gruppe);
  }
 
  /**
   *
   * @param mannschaft1
   * @param mannschaft2
   * @param date z.B. 12.01.2010 12:12
   */
  public void addSpielPaarung(String mannschaft1, String mannschaft2, String date){
   
    addSpielPaarung(mannschaft1, mannschaft2,0,0, date);
    if(title.getText().length()<=0){
      int index = date.indexOf(" ");
      String datum = date.substring(0, index).trim();
      String uhrzeit = date.substring(index, date.length()).trim();
      title.setText(datum);
    }
  }
 
  /**
   *
   */
  public void addSpielPaarung(String mannschaft1, String mannschaft2, int tore1, int tore2, String date){
    addSpielPaarung(mannschaft1, mannschaft2,tore1, tore2, date, String.valueOf(getGruppe()));
  }
 
  /**
   *
   * @param mannschaft1
   * @param mannschaft2
   * @param tore1
   * @param tore2
   * @param date z.B. 12.01.2010 12:12
   */
  public void addSpielPaarung(String mannschaft1, String mannschaft2, int tore1, int tore2, String date, String gruppe){
    SpielPanel sp = new SpielPanel();
    if(tabelle!=null)
      sp.setTabellenPanel(tabelle);
  //  sp.setMotherPanel(this);
   
    Begegnung bg = new Begegnung();
    bg.setMannschaft1(mannschaft1);
    bg.setMannschaft2(mannschaft2);
    bg.setToreMannschaft1(tore1);
    bg.setToreMannschaft2(tore2);
    bg.setDate(date)
    bg.setGruppe(gruppe);

    if(!isDoppelPaarung(bg)){
      if(!isValidSpielZeit(bg)){
      begegnungsListe.add(bg);
      Comparator comp = new SpielSorter();
      Collections.sort(begegnungsListe, comp);
      //alle bisherigen begegnungen von dem SpielPanel weg
      spiele.removeAll();
      //spielparungen sortiert einfuegen
      addPaarung2Panel(begegnungsListe);
      setErrorMsg("");
      } else {
        setErrorMsg(" Spielzeit schon vergeben");
      }
    } else {
      setErrorMsg(" Paarung bereits angelegt ");
    }
   
    revalidate();
   
  }
 
  public void setTabellenPanel(ITabellen tabelle){
    if(tabelle!=null)
      this.tabelle = (TabellenPanel) tabelle;
  }
 
  public TabellenPanel getTabellenPanel(){
    return this.tabelle;
  }
 
  public Vector<SpielPanel> getSpieleListe() {
    return spieleListe;
  }
 
 
  private void addPaarung2Panel(Vector<Begegnung> bl){
    Iterator<Begegnung> iter = bl.iterator();
    while(iter.hasNext()){
      Begegnung bg = iter.next();
      fillSpielPanel(bg);
    }
  }
 
  private void fillSpielPanel(Begegnung bg){
    SpielPanel sp = new SpielPanel();
    if(tabelle!=null)
      sp.setTabellenPanel(tabelle);
    sp.setMotherPanel(this);
    sp.setMannschaft1(bg.getMannschaft1());
    sp.setMannschaft2(bg.getMannschaft2());
    sp.setTore1(bg.getToreMannschaft1());
    sp.setTore2(bg.getToreMannschaft2());
   
    int index = bg.getDate().indexOf(" ");;
    String datum = bg.getDate().substring(0, index).trim();
    String uhrzeit = bg.getDate().substring(index, bg.getDate().length()).trim();
    sp.setUhrzeit(uhrzeit);
    sp.setDatum(datum);
   
    Component[] coms = sp.getComponents();
    for (int i = 0; i < coms.length; i++){
      System.out.println(coms[i].getName());
      if(coms[i].getName() != null){
        if(coms[i].getName().equals("tfTore1")){
          JTextField tx = (JTextField)coms[i];
          tx.setText(String.valueOf(bg.getToreMannschaft1()));
        }
        if(coms[i].getName().equals("tfTore2")){
          JTextField tx = (JTextField)coms[i];
          tx.setText(String.valueOf(bg.getToreMannschaft2()));
        }
      }
    } //end of for loop
    sp.setBegegnung(bg);
    if(bg.isSpielfertig()){
      sp.setBtnStatus(false);
    }
    spiele.add(sp);
    //spieleListe.add(sp);
    revalidate();
  }
  /*
   * ist die eingegebene Paarung schon vorhanden?
   */
  private boolean isDoppelPaarung(SpielPanel sp){
   
    boolean result = false;
   
    String m1 = sp.getMannschaft1();
    String m2 = sp.getMannschaft2();
   
    Iterator<SpielPanel> iter = spieleListe.iterator();
    while(iter.hasNext()){
      SpielPanel spp = iter.next();
      String sppM1 = spp.getMannschaft1();
      String sppM2 = spp.getMannschaft2();
      if(m1.equals(sppM1) && m2.equals(sppM2)) {
        return true;
      } else if (m2.equals(sppM1) && m1.equals(sppM2)){
        return true;
      }
      else {
        result = false;
      }
    }

    return result;
  }
 
  /*
   * ist die eingegebene Paarung schon vorhanden?
   */
  private boolean isDoppelPaarung(Begegnung sp){
   
    boolean result = false;
   
    String m1 = sp.getMannschaft1();
    String m2 = sp.getMannschaft2();
   
    Iterator<Begegnung> iter = begegnungsListe.iterator();
    while(iter.hasNext()){
      Begegnung spp = iter.next();
      String sppM1 = spp.getMannschaft1();
      String sppM2 = spp.getMannschaft2();
      if(m1.equals(sppM1) && m2.equals(sppM2)) {
        return true;
      } else if (m2.equals(sppM1) && m1.equals(sppM2)){
        return true;
      }
      else {
        result = false;
      }
    }

    return result;
  }
 
  private boolean isValidSpielZeit(Begegnung bg){
    boolean result = false;
    String date1 = bg.getDate();
    Iterator<Begegnung> iter = begegnungsListe.iterator();
    while(iter.hasNext()){
      String date = iter.next().getDate();
      if(date.equals(date1))
        return true;
    }
    return result;
  }

  public Vector<Begegnung> getBegegnungsListe() {
    return this.begegnungsListe;
  }

  public void setErrorMsg(String errorMsg) {
    this.errorMsg = errorMsg;
  }

  public String getErrorMsg() {
    return errorMsg;
  }

  public JPanel getMotherPanel() {
    return this.motherPanel;
  }

  public void setMotherPanel(JPanel motherPanel) {
    this.motherPanel = motherPanel;
  }

  public void updateData(JComponent comp){

    ((SpielPlanContainer)getMotherPanel()).updateData(comp);

  }

  /**
   * @param gruppe the gruppe to set
   */
  public void setGruppe(int gruppe) {
    this.gruppe = gruppe;
  }

  /**
   * @return the gruppe
   */
  public int getGruppe() {
    return this.gruppe;
  }
}

class PrintSPP implements ActionListener {

  SpielPlanPanel spp;
 
  public PrintSPP(SpielPlanPanel s){
    this.spp = s;
  }
 
  @Override
  public void actionPerformed(ActionEvent e) {
    ((Turniervewaltung2)((SpielPlanContainer)spp.getMotherPanel()).getMotherFrame()).printData(spp);
  }
 
}
TOP

Related Classes of de.achim.turnier.spielplan.PrintSPP

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.