Package de.achim.turnier.endrunde

Source Code of de.achim.turnier.endrunde.EndrundenTabelle

package de.achim.turnier.endrunde;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.RowSorter;
import javax.swing.SortOrder;
import javax.swing.event.TableModelEvent;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;

import de.achim.turnier.Turniervewaltung2;
import de.achim.turnier.tabellen.TabellenContainer;
import de.achim.turnier.utility.ITabellen;


public class EndrundenTabelle extends JPanel implements ITabellen{
 
  private static final int WIDTH = 400;
  private static final int HEIGHT = 80;
 
  private EndrundenErgebnis enderg;
  TableRowSorter sorter;
  private String[] columnNames = {"Platzierung", "Mannschaft", "Sorter"};
 
  DefaultTableModel dataModel = new DefaultTableModel();
  //private Object[] data = {new Integer(0), "", new Double(0) };
 
  private JTable table;
  private JPanel motherPanel;
  private JLabel title;
 
  private int tabsize = 2;
 
  public EndrundenTabelle(){
   
    title = new JLabel();
    Font font = new Font( Font.SANS_SERIF, Font.PLAIN, 20 );
    title.setFont(font);
    title.setHorizontalAlignment(title.CENTER);
   
    dataModel.setColumnIdentifiers(columnNames);
   
    sorter = new TableRowSorter(dataModel);
    sorter.setSortable(0, false);
    sorter.setSortable(1, false);
    sorter.setSortable(2, true);
    List <RowSorter.SortKey> sortKeys  = new ArrayList<RowSorter.SortKey>();
    sortKeys.add(new RowSorter.SortKey(2, SortOrder.DESCENDING));
    sorter.setSortKeys(sortKeys);
    sorter.setComparator(2, new EndRundeTabComperator()); //endrundencomparator
   
    table = new JTable(dataModel);
    table.setRowSorter(sorter);
   
    setLayout(new BorderLayout());
    JButton druckButton = new JButton("Drucken");
    ActionListener al = new PrintEndrundenTabelle(this);
    druckButton.addActionListener(al);
   
    add(title, BorderLayout.NORTH);
    add(table.getTableHeader(), BorderLayout.PAGE_START);
    add(table, BorderLayout.CENTER);
    add(druckButton, BorderLayout.SOUTH);
  }
 
  public JLabel getTitle() {
    return this.title;
  }
 
  public void setTitle(String title) {
    if(this.title.getText().length() <= 0){
      this.title.setText(title);
      revalidate();
    }
  }
 

  public JTable getTable() {
    return table;
  }
 
 
  public void addRow(EndrundenErgebnis eerg){
    this.enderg = eerg;
   
    Integer torediff = enderg.getTore1() - enderg.getTore2();
    Object[] rowData1 = {"", enderg.getMannschaft1(), calcSortValue(enderg.getSpielum(), torediff) };
    Object[] rowData2 = {"", enderg.getMannschaft2(), calcSortValue(enderg.getSpielum(), torediff*-1) };
   
    dataModel.addRow(rowData1);
    dataModel.addRow(rowData2);
   
    table.getColumn(table.getColumnModel().getColumn(2).getIdentifier()).setPreferredWidth(-1);
    table.getColumn(table.getColumnModel().getColumn(2).getIdentifier()).setMaxWidth(-1);
    dataModel.fireTableChanged(new TableModelEvent(dataModel));
    dataModel.fireTableDataChanged();
   
    int row = table.getRowCount();
    for(int i = 0; i< row; i++){
      int platzierung = i+1;
      String platz = "Platz " +platzierung;
      table.setValueAt(platz, i, 0);
    }
    revalidate();
  }
 
  public JPanel getMotherPanel() {
    return this.motherPanel;
  }

  public void setMotherPanel(JPanel motherPanel) {
    this.motherPanel = motherPanel;
  }
 
  /**
   * @param tabsize the tabsize to set
   */
  public void setTabsize(int tabsize) {
    this.tabsize = tabsize;
  }

  /**
   * @return the tabsize
   */
  public int getTabsize() {
    return this.tabsize;
  }

  private Double calcSortValue(String s, int torediff){
   
    double spielum = new Double(s);
    double gewichtvat = spielum * -1;
    double sortval  = Math.pow(10, gewichtvat);
   
    if(torediff > 0){
      return sortval * 3;
    } else
      return sortval * 1;
   
  }

}


class PrintEndrundenTabelle implements ActionListener {
 
  EndrundenTabelle etp;
 
  public PrintEndrundenTabelle (EndrundenTabelle t){
    this.etp = t;
  }

  @Override
  public void actionPerformed(ActionEvent e) {
    ((Turniervewaltung2)((TabellenContainer)etp.getMotherPanel()).getMotherFrame()).printData(etp);
  }
 
}
TOP

Related Classes of de.achim.turnier.endrunde.EndrundenTabelle

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.