package de.achim.turnier.spielplan;
import java.awt.Component;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.util.Iterator;
import java.util.StringTokenizer;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import de.achim.turnier.tabellen.TabellenPanel;
import de.achim.turnier.utility.Begegnung;
import de.achim.turnier.utility.MannschaftErgebnis;
public class SpielPanel extends JPanel {
private static final int WIDTH = 400;
private static final int HEIGHT = 70;
protected int tore1 = 0;
protected int tore2 = 0;
protected String uhrzeit = "12:00";
protected String datum = "01.01.2010";
private String mannschaft1 = "";
private String mannschaft2 = "";
private Begegnung bg;
private boolean btnStatus = true;
JLabel lblMannschaft1;
JLabel lblMannschaft2;
JLabel lbUhrzeit;
JTextField tfTore1;
JTextField tfTore2;
JLabel lblTrennzeichen = new JLabel(":");
JLabel lblTrennzeichen2 = new JLabel(":");
JButton btnOK = new JButton("OK");
TabellenPanel tabelle;
private JPanel motherPanel;
private String zeilentrenner = ";";
/*
* constructor
*/
public SpielPanel(){
setSize(WIDTH, HEIGHT);
setName("spielpanel");
GridLayout griddy = new GridLayout(0,8);
setLayout(griddy);
lblMannschaft1 = new JLabel();
lblMannschaft2 = new JLabel();
lblMannschaft1.setName("mannschaft1");
lblMannschaft2.setName("mannschaft2");
lbUhrzeit = new JLabel(uhrzeit);
lbUhrzeit.setName("uhrzeit");
tfTore1 = new JTextField("0");
tfTore2 = new JTextField("0");
tfTore1.setName("tfTore1");
tfTore2.setName("tfTore2");
ActionListener alText = new AlTextFieldListener(this);
ActionListener alButton = new AlButtonListener(this);
ActionListener alButton2 = new AlButtonListener2(this);
MyFocusListener my = new MyFocusListener(this);
tfTore1.addActionListener(alText);
tfTore2.addActionListener(alText);
tfTore1.addFocusListener(my);
tfTore2.addFocusListener(my);
tfTore1.setActionCommand("tore1");
tfTore2.setActionCommand("tore2");
btnOK.addActionListener(alButton2);
add(lbUhrzeit);
add(lblMannschaft1);
add(lblTrennzeichen);
add(lblMannschaft2);
add(tfTore1);
add(lblTrennzeichen2);
add(tfTore2);
add(btnOK);
}
public String getMannschaft1() {
return mannschaft1;
}
public void setMannschaft1(String mannschaft1) {
this.mannschaft1 = mannschaft1;
lblMannschaft1.setText(this.mannschaft1);
revalidate();
}
public String getMannschaft2() {
return mannschaft2;
}
public void setMannschaft2(String mannschaft2) {
this.mannschaft2 = mannschaft2;
lblMannschaft2.setText(this.mannschaft2);
revalidate();
}
public int getTore1() {
return this.tore1;
}
public void setTore1(int tore1) {
this.tore1 = tore1;
//tfTore1.setText(String.valueOf(tore1));
//revalidate();
}
public int getTore2() {
return this.tore2;
}
public void setTore2(int tore2) {
this.tore2 = tore2;
//tfTore2.setText(String.valueOf(tore2));
//revalidate();
}
public void setTabellenPanel(TabellenPanel tabelle){
if(tabelle!=null)
this.tabelle = tabelle;
}
/*
* noch ein problem hier
*/
public TabellenPanel getTabellenPanel(){
return this.tabelle;
}
public String getUhrzeit() {
return uhrzeit;
}
public void setUhrzeit(String uhrzeit) {
this.uhrzeit = uhrzeit;
lbUhrzeit.setText(uhrzeit);
}
public String getDatum() {
return datum;
}
public void setDatum(String datum) {
this.datum = datum;
}
@Override
public String toString(){
StringBuffer sb = new StringBuffer();
String date = datum + " " + uhrzeit;
sb.append(lblMannschaft1.getText()).append(zeilentrenner);
sb.append(lblMannschaft2.getText()).append(zeilentrenner);
sb.append(tfTore1.getText()).append(zeilentrenner);
sb.append(tfTore2.getText()).append(zeilentrenner);
sb.append(date);
sb.append("\n");
return sb.toString();
}
public void setBegegnung(Begegnung bg) {
this.bg = bg;
}
public Begegnung getBegegnung() {
return bg;
}
public void setBtnStatus(boolean btnStatus) {
this.btnStatus = btnStatus;
btnOK.setEnabled(btnStatus);
}
public boolean isBtnStatus() {
return btnStatus;
}
public JPanel getMotherPanel() {
return this.motherPanel;
}
public void setMotherPanel(JPanel motherPanel) {
this.motherPanel = motherPanel;
}
/*public void initFromFile(String zeile){
StringTokenizer str = new StringTokenizer(zeile, zeilentrenner);
lblMannschaft1.setText(str.nextToken());
lblMannschaft2.setText(str.nextToken());
tfTore1.setText(str.nextToken());
tfTore2.setText(str.nextToken());
}*/
} //ende Spielpanel
class AlTextFieldListener implements ActionListener {
SpielPanel sp;
public AlTextFieldListener(SpielPanel comp){
this.sp = comp;
}
public void actionPerformed( ActionEvent e ) {
String sTore1;
String sTore2;
if(e.getActionCommand().equals("tore1")) {
JTextField txtf = (JTextField) e.getSource();
sTore1 = txtf.getText().trim();
// sp.setTore1(Integer.parseInt(sTore1));
sp.tore1 = Integer.parseInt(sTore1);
MannschaftErgebnis me1 = new MannschaftErgebnis(sp.getMannschaft1());
me1.setManschaftTorePlus(new Integer(sTore1));
}
if(e.getActionCommand().equals("tore2")) {
JTextField txtf = (JTextField) e.getSource();
sTore2 = txtf.getText().trim();
// sp.setTore2(Integer.parseInt(sTore2));
sp.tore2 = Integer.parseInt(sTore2);
MannschaftErgebnis me2 = new MannschaftErgebnis(sp.getMannschaft2());
me2.setManschaftTorePlus(new Integer(sTore2));
}
}
}
class AlButtonListener implements ActionListener {
private SpielPanel sp;
private int gewinn = 3;
private int niederlage = 0;
private int unentschieden = 1;
public AlButtonListener(SpielPanel comp){
this.sp = comp;
}
public void actionPerformed( ActionEvent e ) {
MannschaftErgebnis me1 = new MannschaftErgebnis(sp.getMannschaft1());
me1.setManschaftTorePlus(new Integer(sp.tore1));
me1.setMannschaftToreMinus(new Integer(sp.tore2));
me1.setMannschaftSpiele(1);
if(sp.getBegegnung() != null){
Begegnung bg = sp.getBegegnung();
bg.setToreMannschaft1(sp.tore1);
bg.setToreMannschaft2(sp.tore2);
bg.setSpielfertig(true);
}
if(sp.tore1>sp.tore2)
me1.setMannschaftPunkte(gewinn);
else if(sp.tore1<sp.tore2)
me1.setMannschaftPunkte(niederlage);
else
me1.setMannschaftPunkte(unentschieden);
MannschaftErgebnis me2 = new MannschaftErgebnis(sp.getMannschaft2());
me2.setManschaftTorePlus(new Integer(sp.tore2));
me2.setMannschaftToreMinus(new Integer(sp.tore1));
me2.setMannschaftSpiele(1);
if(sp.tore1>sp.tore2)
me2.setMannschaftPunkte(niederlage);
else if(sp.tore1<sp.tore2)
me2.setMannschaftPunkte(gewinn);
else
me2.setMannschaftPunkte(unentschieden);
if(sp.tabelle != null){
sp.tabelle.addRow(me1);
sp.tabelle.addRow(me2);
}
JButton btn = (JButton)e.getSource();
btn.setEnabled(false);
}
}
class MyFocusListener implements FocusListener{
SpielPanel sp;
public MyFocusListener(SpielPanel comp){
sp = comp;
}
@Override
public void focusGained(FocusEvent e) {
}
@Override
public void focusLost(FocusEvent e) {
JTextField t1 =(JTextField) e.getComponent();
String s1 = t1.getName();
System.out.println(s1 + " "+ t1.getText());
if(s1.equals("tfTore1"))
sp.tore1 = Integer.parseInt(t1.getText());
else
sp.tore2 = Integer.parseInt(t1.getText());
}
}
class AlButtonListener2 implements ActionListener {
private SpielPanel sp;
public AlButtonListener2(SpielPanel comp){
this.sp = comp;
System.out.println("+++++++++++++++"+sp.getName());
}
@Override
public void actionPerformed(ActionEvent e) {
SpielPlanPanel spp = (SpielPlanPanel)sp.getMotherPanel();
spp.updateData(sp);
JButton btn = (JButton)e.getSource();
btn.setEnabled(false);
}
}