

/**
 * Title:
 * Description:
 * Copyright:    Copyright (c) 2002
 * Company:
 * @author
 * @version 1.0
 */
import java.util.*;
import omaTable.*;
import java.awt.*;

public class Kilpailu extends Panel{
   private Vector sarjat;
   private String nimi;

   private Table taul = new Table(6);
   private Table taul2 = new Table(9);
   private Table taul3 = new Table(9);
   private Table taul4 = new Table(9);

   private Panel alaosa = new Panel();
   private Panel vasen = new Panel();
   private Panel vasenala = new Panel();
   private Panel ylaosa = new Panel();
   private Panel oikea = new Panel();
   private Panel oikeayla = new Panel();
   private TextField monitori = new TextField();
   private TextField online = new TextField();
   private Label otsikko = new Label();
   private BorderLayout borderLayout1 = new BorderLayout();
   private BorderLayout borderLayout2 = new BorderLayout();
   private BorderLayout borderLayout3 = new BorderLayout();
   private GridLayout gridLayout1 = new GridLayout();
   private GridLayout gridLayout2 = new GridLayout();
   private GridBagLayout gridBagLayout1 = new GridBagLayout();
   private GridBagLayout gridBagLayout2 = new GridBagLayout();
   private Label otsikko2 = new Label("uusimmat tiedot");
   int maara = 0;
   public Sarja valittusarja = null;
   private int maxsarjaleveys = 5;
   String viime = "0";
   boolean paivitys=false;
   aikaSaie as;


    public Kilpailu(String inimi) {
        nimi=inimi;
        sarjat = new Vector();



        alaosa.setLayout(gridLayout1);
        oikea.setLayout(gridBagLayout1);
        vasen.setLayout(gridBagLayout2);
        oikeayla.setLayout(borderLayout2);
        vasenala.setLayout(borderLayout3);
        gridLayout1.setColumns(2);
        gridLayout1.setHgap(1);
        gridLayout2.setColumns(2);
        gridLayout2.setHgap(1);
        monitori.setEditable(false);
        monitori.setEnabled(true);
        monitori.setText("Monitori");
        online.setEditable(false);
        online.setEnabled(true);
        ylaosa.setLayout(gridLayout2);
        this.setLayout(borderLayout1);

        GridBagConstraints gbc1 = new GridBagConstraints();
        GridBagConstraints gbc2 = new GridBagConstraints();
        gbc1.gridx = 0;
        gbc1.gridy = 0;
        gbc1.weightx = 1.0;
        gbc1.weighty = 0.3;
        gbc1.fill = GridBagConstraints.BOTH;
        gbc1.ipadx = 0;
        gbc1.ipady = 0;
        gbc2.gridx = 0;
        gbc2.gridy = 1;
        gbc2.gridheight = 2;
        gbc2.weightx = 1.0;
        gbc2.weighty = 0.7;
        gbc2.fill = GridBagConstraints.BOTH;
        gbc2.ipadx = 0;
        gbc2.ipady = 0;


        GridBagConstraints gbc3 = new GridBagConstraints();
        GridBagConstraints gbc4 = new GridBagConstraints();
        gbc3.gridx = 0;
        gbc3.gridy = 0;
        gbc3.weightx = 1.0;
        gbc3.weighty = 0.7;
        gbc3.fill = GridBagConstraints.BOTH;
        gbc3.ipadx = 0;
        gbc3.ipady = 0;
        gbc4.gridx = 0;
        gbc4.gridy = 1;
        gbc4.gridheight = 2;
        gbc4.weightx = 1.0;
        gbc4.weighty = 0.3;
        gbc4.fill = GridBagConstraints.BOTH;
        gbc4.ipadx = 0;
        gbc4.ipady = 0;


        vasen.add(taul,gbc3);
        vasen.add(vasenala,gbc4);
        //vasenala.add(online,BorderLayout.SOUTH);
        vasenala.add(taul4,BorderLayout.CENTER);
        oikea.add(oikeayla,gbc1);
        oikea.add(taul2,gbc2);
        this.add(alaosa, BorderLayout.CENTER);
        oikeayla.add(otsikko2,BorderLayout.NORTH);
        oikeayla.add(taul3,BorderLayout.CENTER);
        alaosa.add(vasen, null);
        alaosa.add(oikea, null);

        this.add(ylaosa, BorderLayout.NORTH);

        ylaosa.add(otsikko, null);
        ylaosa.add(monitori, null);

        taul.setHeaderOn(false);
        taul.setSortingOn(0,false);
        taul.setSortingOn(1,false);
        taul.setSortingOn(2,false);
        taul.setSortingOn(3,false);
        taul.setSortingOn(4,false);
        taul.setSortingOn(5,false);
        taul.setColumnWidth(0,25);
        taul.setColumnWidth(1,40);
        taul.setColumnWidth(2,120);
        taul.setColumnWidth(3,50);
        taul.setColumnWidth(4,50);
        taul.setColumnWidth(5,50);
        taul.setColumnAlignment(4,Table.ALIGN_RIGHT);
        taul.setColumnAlignment(5,Table.ALIGN_RIGHT);

        taul4.setHeaderOn(false);
        taul4.setSortingOn(0,false);
        taul4.setSortingOn(1,false);
        taul4.setSortingOn(2,false);
        taul4.setSortingOn(3,false);
        taul4.setSortingOn(4,false);
        taul4.setSortingOn(5,false);
        taul4.setSortingOn(6,false);
        taul4.setSortingOn(7,false);
        taul4.setSortingOn(7,false);

        taul4.setColumnWidth(0,53);
        taul4.setColumnWidth(1,35);
        taul4.setColumnWidth(2,90);
        taul4.setColumnWidth(3,40);
        taul4.setColumnWidth(4,55);
        taul4.setColumnWidth(5,1);
        taul4.setColumnWidth(6,50);
        taul4.setColumnWidth(7,1);
        taul4.setColumnWidth(8,30);

        taul3.setHeaderOn(false);
        taul3.setSortingOn(0,false);
        taul3.setSortingOn(1,false);
        taul3.setSortingOn(2,false);
        taul3.setSortingOn(3,false);
        taul3.setSortingOn(4,false);
        taul3.setSortingOn(5,false);
        taul3.setSortingOn(6,false);
        taul3.setSortingOn(7,false);

        taul3.setColumnWidth(0,40);
        taul3.setColumnWidth(1,40);
        taul3.setColumnWidth(2,28);
        taul3.setColumnWidth(3,28);
        taul3.setColumnWidth(4,93);
        taul3.setColumnWidth(5,33);
        taul3.setColumnWidth(6,38);
        taul3.setColumnWidth(7,40);
        taul3.setColumnWidth(8,1);
        taul3.setColumnType(8,Table.COLUMN_NUMBER);
        taul3.setColumnAlignment(8,Table.ALIGN_RIGHT);
        taul3.setColumnAlignment(7,Table.ALIGN_RIGHT);
        taul3.setColumnAlignment(6,Table.ALIGN_RIGHT);
        taul3.setFont(new java.awt.Font("Dialog",Font.PLAIN,10));

        taul2.setHeaderOn(false);
        taul2.setSortingOn(0,false);
        taul2.setSortingOn(1,false);
        taul2.setSortingOn(2,false);
        taul2.setSortingOn(3,false);
        taul2.setSortingOn(4,false);
        taul2.setSortingOn(5,false);
        taul2.setSortingOn(6,false);
        taul2.setSortingOn(7,false);
        taul2.setColumnWidth(0,45);
        taul2.setColumnWidth(1,40);
        taul2.setColumnWidth(2,45);
        taul2.setColumnWidth(3,33);
        taul2.setColumnWidth(4,88);
        taul2.setColumnWidth(5,30);
        taul2.setColumnWidth(6,40);
        taul2.setColumnWidth(7,40);
        taul2.setColumnWidth(8,1);
        taul2.setColumnAlignment(6,Table.ALIGN_RIGHT);
        taul2.setColumnAlignment(7,Table.ALIGN_RIGHT);
        taul2.setSelectionMode(taul2.SELECT_SINGLE);
        taul2.setFont(new java.awt.Font("Dialog",Font.PLAIN,10));

        taul2.addTableListener(new TableListener() {
           public void tableSelection(TableEvent e) {
                taul2_selectionchanged(e,false);
           }
        });



        taul3.addTableListener(new TableListener() {
           public void tableSelection(TableEvent e) {
                taul2_selectionchanged(e,false);
           }
        });

        this.setBackground(new java.awt.Color(200,200,200));
        String otsikko1[]={"sarja","matka","tietoja","uusin","johdossa","","","","aaaaa"};
        taul2.setRow(-1,otsikko1);
        taul2.setRowBackground(0,new java.awt.Color(0,255,255));
        otsikko.setText(nimi);
        as =  new aikaSaie(taul4,this);
        as.start();


    }

    public void monitor(String s) {
        monitori.setText(s);
    }

    private int lisaaKilpailija(String aikaleima, String isarja,String imatka,int inro, String inimi, int iaika, String ihyv,String seura){

    try {
        Kilpailija kilp = new Kilpailija(inro,inimi,iaika,ihyv,seura,"");
        boolean onko = false;
        boolean matkamuutos = false;
        int sija1 = 0;
        for(int i=0;i<sarjat.size();i++)
        {

            // jos löytyy olemassaoleva sarja+matka
            if(((Sarja)sarjat.elementAt(i)).sarja.equals(isarja) && ((Sarja)sarjat.elementAt(i)).matka.equals(imatka))
            {
                sija1 = ((Sarja)sarjat.elementAt(i)).lisaaKilpailija(kilp,aikaleima);
                onko = true;
                //tf.setText(isarja + " " +imatka+"      " + (iaika<999990?sija1+". ":" ")+inro+" "+ inimi + " " + seura + " " + (iaika<999990?MinSek(iaika):ihyv));
                break;
            }
            // jos löytyy ko. sarjasta sarja+"N/A" "valesarja"
            else if(((Sarja)sarjat.elementAt(i)).sarja.equals(isarja) && ((Sarja)sarjat.elementAt(i)).matka.equals("N/A"))
            {
                ((Sarja)sarjat.elementAt(i)).matka=imatka;
                ((Sarja)sarjat.elementAt(i)).arvo=annaSarjaArvo(isarja.trim(),imatka.trim());
                ((Sarja)sarjat.elementAt(i)).lisaaKilpailija(kilp,aikaleima);
                sija1=(iaika<999990?1:0);
                matkamuutos = true;
                onko = true;
                break;
            }
        }
        //jos ei löydy sarjasta mitään mainintaa
        if(!onko)
        {
          String arvo = annaSarjaArvo(isarja.trim(),imatka.trim());
          String ll = annaLahtoLista(isarja);
          Sarja s = new Sarja(isarja,imatka,arvo,ll,this);
          s.lisaaKilpailija(kilp,aikaleima);
            int ii=0;
            while(ii < sarjat.size() && ((Sarja)sarjat.elementAt(ii)).arvo.compareTo(arvo)<0)
            ii++;
          //if(ii < sarjat.size() && ((Sarja)sarjat.elementAt(ii)).arvo.equals(arvo))
          //  while(ii < sarjat.size() && ((Sarja)sarjat.elementAt(ii)).arvo.equals(arvo) && ((Sarja)sarjat.elementAt(ii)).matka.compareTo(imatka)>0)
          //   ii++;

         //sarjat.add(ii,s);
         sarjat.insertElementAt(s,ii);

          //tf.setText(isarja + " " +imatka+"     " + (iaika<999990?"1. ":" ")+inro+" "+ inimi + " " + seura + " " + (iaika<999990?MinSek(iaika):ihyv));

          sija1=(iaika<999990?1:0);
        }

          if (sija1 == -10) return -10;
          if (aikaleima.compareTo(viime)>0) viime = aikaleima;
          maara++;

          if(paivitys)
          {
              Sarja apusarja = annaSarja(isarja+" "+imatka);
              String[] rivi = {isarja,imatka,(iaika<999990?sija1+". ":" "),inro+"",inimi,seura,(iaika<999990?MinSek(iaika):ihyv),(iaika<999990?(sija1==1?(apusarja.hyva>1?"+"+MinSek(apusarja.annaKilpailija(1).aika-iaika):""):"-"+MinSek(iaika-apusarja.annaKilpailija(0).aika)):""),maara+""};

              //if(vs!=null && vs.isAlive()) vs.interrupt();
              //if(maara>1) taul3.setRowBackground(taul3.getRowIndex(0),new java.awt.Color(255,255,255));

              taul3.setRow(-1,rivi);
              if (taul3.getRowCount()>20) taul3.removeRow(0);
              taul3.sortColumn(8,Table.SORT_DESCENDING);
        }
              otsikko2.setText("uusimmat tiedot (yht. "+maara+" uusin "+ viime.substring(8,10)+":"+viime.substring(10,12)+")");

          //new variSaie(taul3).start();



        return (onko?(matkamuutos?0:1):-1);
      }
      catch(Exception ex) {System.out.println("ongelma");ex.printStackTrace();return -10;}
    }

        public Sarja annaSarja(String isarja){
          try {
            for(int i=0;i<sarjat.size();i++)
            if( (((Sarja)sarjat.elementAt(i)).sarja + " " + ((Sarja)sarjat.elementAt(i)).matka).equals(isarja))
            return (Sarja)sarjat.elementAt(i);

            return null;
          }
          catch(Exception ex) {System.out.println("ongelma: "+isarja);ex.printStackTrace();return null;}
        }



       /* String  annaSarjanNimi(int nro){
          try {
            return ((Sarja)sarjat.elementAt(nro)).sarja + " " + ((Sarja)sarjat.elementAt(nro)).matka;
          }
          catch(Exception ex) {System.out.println("ongelma: "+nro);ex.printStackTrace();}
        }
        */

    private String annaSarjaArvo(String sarja, String matka)
    {
        try {
        sarja.trim();
        matka.trim();
        //lisätään matkan alkuun z-kirjaimia, jotta
        // kaikki matka-stringit tulevat yhtä pitkiksi ja 10,1 on aakkosissa ennen 8,7:ää
        int v = matka.length();
        for(int i = 0;i<(7-v);i++)
          matka = "z"+matka;

        //ja 'käännetään' matkan numerot, jotta 5,6 olisi ennen 2,3:a
        // näin väliajat tulevat taulukkoon tyyliin 'pisin (maali) ensin'
        matka = matka.replace('9','a');
        matka = matka.replace('8','b');
        matka = matka.replace('7','c');
        matka = matka.replace('6','d');
        matka = matka.replace('5','e');
        matka = matka.replace('4','f');
        matka = matka.replace('3','g');
        matka = matka.replace('2','h');
        matka = matka.replace('1','i');
        matka = matka.replace('0','j');

        if(sarja.startsWith("H21K")) return "AA"+sarja+"AA"+matka;
        if(sarja.startsWith("D21K")) return "AB"+sarja+"AA"+matka;
        if(sarja.startsWith("H20K")) return "AC"+sarja+"AA"+matka;
        if(sarja.startsWith("D20K")) return "AD"+sarja+"AA"+matka;
        if(sarja.startsWith("H21E")) return "AE"+sarja+"AA"+matka;
        if(sarja.startsWith("D21E")) return "AF"+sarja+"AA"+matka;
        if(sarja.startsWith("H20E")) return "AG"+sarja+"AA"+matka;
        if(sarja.startsWith("D20E")) return "AH"+sarja+"AA"+matka;
        if(sarja.startsWith("H18E")) return "AI"+sarja+"AA"+matka;
        if(sarja.startsWith("D18E")) return "AJ"+sarja+"AA"+matka;
        if(sarja.startsWith("H16E")) return "AK"+sarja+"AA"+matka;
        if(sarja.startsWith("D16E")) return "AL"+sarja+"AA"+matka;
        if(sarja.startsWith("H21A")) return "AM"+sarja+"AA"+matka;
        if(sarja.startsWith("D21A")) return "AN"+sarja+"AA"+matka;
        if(sarja.startsWith("H21")) return "AO"+sarja+"AA"+matka;
        if(sarja.startsWith("D21")) return "AP"+sarja+"AA"+matka;
        if(sarja.startsWith("H2")) return "AQ"+sarja+"AA"+matka;
        if(sarja.startsWith("D2")) return "AR"+sarja+"AA"+matka;
        if(sarja.startsWith("H18")) return "BA"+sarja+"AA"+matka;
        if(sarja.startsWith("D18")) return "BB"+sarja+"AA"+matka;
        if(sarja.startsWith("H17")) return "BC"+sarja+"AA"+matka;
        if(sarja.startsWith("D17")) return "BD"+sarja+"AA"+matka;
        if(sarja.startsWith("H16")) return "BE"+sarja+"AA"+matka;
        if(sarja.startsWith("D16")) return "BF"+sarja+"AA"+matka;
        if(sarja.startsWith("H15")) return "BH"+sarja+"AA"+matka;
        if(sarja.startsWith("D15")) return "BI"+sarja+"AA"+matka;
        if(sarja.startsWith("H14")) return "BJ"+sarja+"AA"+matka;
        if(sarja.startsWith("D14")) return "BK"+sarja+"AA"+matka;
        if(sarja.startsWith("H13")) return "BL"+sarja+"AA"+matka;
        if(sarja.startsWith("D13")) return "BM"+sarja+"AA"+matka;
        if(sarja.startsWith("H12")) return "BN"+sarja+"AA"+matka;
        if(sarja.startsWith("D12")) return "BO"+sarja+"AA"+matka;
        if(sarja.startsWith("H10")) return "BP"+sarja+"AA"+matka;
        if(sarja.startsWith("D10")) return "BQ"+sarja+"AA"+matka;
        if(sarja.startsWith("H1")) return "BR"+sarja+"AA"+matka;
        if(sarja.startsWith("D1")) return "BS"+sarja+"AA"+matka;
        return "DD"+sarja+"AA"+matka;
        }
        catch(Exception ex) {System.out.println("ongelma: "+sarja);ex.printStackTrace();return "DD";}
    }




    public String MinSek(int sek){
      try {
          return (sek-sek%60)/60 + ":" + ((sek%60) <10 ? "0" : "") + sek%60;
      }
      catch(Exception ex) {System.out.println("ongelma");ex.printStackTrace();return "";}
    }


    public void lisaaData(String aikaleima, String sarja,String matka,int nro, String nimi, String seura, String aika, int aikasek,boolean ipaivitys){
      try{
           paivitys = ipaivitys;
           int mika = lisaaKilpailija(aikaleima,sarja,matka,nro,nimi,aikasek,aika,seura);
           if(mika == -10) return;
           int iii=0;
           if(paivitys)
           {
               if(mika==-1)
               {


                   if(sarja.length()>maxsarjaleveys)
                   {
                    maxsarjaleveys = sarja.length();
                    taul2.setColumnWidth(0,maxsarjaleveys*9);
                    taul3.setColumnWidth(0,maxsarjaleveys*9);
                   }
                   Sarja apusarja2 = annaSarja(sarja+" "+matka);
                   String lukum = (aikasek<999990?"1+0":"0+1")+(apusarja2.onLLista?"/"+apusarja2.tulematta:"");
                   String apu7[]={sarja,matka,lukum,aikaleima.substring(8,10)+":"+aikaleima.substring(10,12),(aikasek<999990?nimi:""),(aikasek<999990?seura:""),(aikasek<999990?MinSek(aikasek):""),"",annaSarjaArvo(sarja,matka)};
                   synchronized(taul2.getTableData()){
                        taul2.setRow(-1,apu7);
                        taul2.sortColumn(8,Table.SORT_ASCENDING);
                        varitaSarjat();
                   }

               }

               else {
                    synchronized(taul2.getTableData())
                    {
                    // löytynyt ko. sarja matkalla N/A
                    if(mika==0)
                    {
                      for(int i=0;i<taul2.getRowCount();i++)
                        if((taul2.getCell(i,0).equals(sarja) && taul2.getCell(i,1).equals("N/A")))
                        {
                            iii = i;
                            taul2.setCell(iii,1,matka);
                            taul2.setCell(iii,8,annaSarjaArvo(sarja,matka));
                            break;
                        }
                    }
                    else
                        for(int i=0;i<taul2.getRowCount();i++)
                            if((taul2.getCell(i,0).equals(sarja) && taul2.getCell(i,1).equals(matka)))
                            {
                                iii = i;
                                break;
                            }


                   Sarja apusarja = annaSarja(sarja+" "+matka);
                   taul2.setCell(iii,2,apusarja.hyva+"+"+(apusarja.lkm-apusarja.hyva)+(apusarja.onLLista?"/"+apusarja.tulematta:""));
                   taul2.setCell(iii,3,apusarja.viime.substring(8,10)+":"+apusarja.viime.substring(10,12));
                   if(apusarja.hyva>0)
                   {
                    taul2.setCell(iii,4,((Kilpailija)apusarja.kilpailijat.elementAt(0)).nimi);
                    taul2.setCell(iii,5,((Kilpailija)apusarja.kilpailijat.elementAt(0)).seura);
                    taul2.setCell(iii,6,MinSek(((Kilpailija)apusarja.kilpailijat.elementAt(0)).aika));
                    if(apusarja.hyva>1) taul2.setCell(iii,7,"+"+MinSek(((Kilpailija)apusarja.kilpailijat.elementAt(1)).aika-((Kilpailija)apusarja.kilpailijat.elementAt(0)).aika));
                   }
                   }
                int[] sel1 = taul2.getSelectedRows();
                if(sel1.length==1)
                if((taul2.getCell(sel1[0],0)+" "+taul2.getCell(sel1[0],1)).equals(sarja + " " +matka))
                    taul2_selectionchanged(new TableEvent(taul2,sel1[0]),true);
               }


        }
     }
          catch(Exception ex) {System.out.println("ongelma");ex.printStackTrace();}

    }



    void taul2_selectionchanged(TableEvent e,boolean siirrytaanko) {
       try {
           if(!paivitys) return;
           int sel = e.getRowIndex();
           Table taulu = (Table)e.getSource();
           if (taulu.equals(taul3))
              for(int i=0;i<taul2.getRowCount();i++)
                if((taulu.getCell(sel,0)+" "+taulu.getCell(sel,1)).equals((taul2.getCell(i,0)+" "+taul2.getCell(i,1))))
                {
                   taul2.selectRow(i,true);
                }
                  else taul2.selectRow(i,false);
           if(sel<0)
             {
             taulu.selectRow(taul2.getLastSelectedRow(),true);
             return;
             }
           //int[] sel = taulu.getSelectedRows();
           String isarja = taulu.getCell(sel,0)+" "+taulu.getCell(sel,1);
           Sarja vsarja = annaSarja(isarja);
           valittusarja = vsarja;
           if(vsarja!=null)
            {
                vsarja.teeRivit(taul,taul4,siirrytaanko);
            }
        }
          catch(Exception ex) {System.out.println("ongelma");ex.printStackTrace();}
    }
    private String annaLahtoLista(String isarja)
    {
      try {
        for(int i=0;i<sarjat.size();i++)
            if(((Sarja)sarjat.elementAt(i)).sarja.equals(isarja))
             return ((Sarja)sarjat.elementAt(i)).llista;


        return "";
       }
       catch(Exception ex) {System.out.println("ongelma");ex.printStackTrace(); return "";}
    }

    public void teeSarja(String sarja, String matka, String llista)
    {
       try{
        if (matka.trim().equals("")) matka = "N/A";
        if(matka.indexOf(';')<0) matka = matka + ";";
        StringTokenizer st1 = new StringTokenizer(matka,";");
        while(st1.hasMoreTokens())
        {

            String imatka = st1.nextToken();
            //System.out.println(sarja + imatka);
            String arvo = annaSarjaArvo(sarja.trim(),imatka.trim());
            Sarja s = new Sarja(sarja,imatka,arvo,llista,this);
                int ii=0;
                while(ii < sarjat.size() && ((Sarja)sarjat.elementAt(ii)).arvo.compareTo(arvo)<0)
                ii++;
            sarjat.insertElementAt(s,ii);
         }
      }
      catch(Exception ex) {System.out.println("ongelma");ex.printStackTrace();}

    }

    //
    public void naytaSarjaLista()
    {
      try {
      taul2.removeAll();
      String otsikko1[]={"sarja","matka","tietoja","uusin","johdossa","","","","aaaaa"};
      taul2.setRow(-1,otsikko1);
      taul2.setRowBackground(0,new java.awt.Color(0,255,255));
      paivitys = true;

        for(int i=0;i<sarjat.size();i++)
        {
            Sarja apusarja = (Sarja)sarjat.elementAt(i);
            String lukum = apusarja.hyva+"+"+(apusarja.lkm-apusarja.hyva)+(apusarja.onLLista?"/"+apusarja.tulematta:"");
            String uusin1 = (apusarja.viime.length()>12?apusarja.viime.substring(8,10)+":"+apusarja.viime.substring(10,12):"");
            String[] apu15 = {apusarja.sarja,apusarja.matka,lukum,uusin1,(apusarja.hyva>0?((Kilpailija)apusarja.kilpailijat.elementAt(0)).nimi:""),(apusarja.hyva>0?((Kilpailija)apusarja.kilpailijat.elementAt(0)).seura:""),(apusarja.hyva>0?MinSek(((Kilpailija)apusarja.kilpailijat.elementAt(0)).aika):""),(apusarja.hyva>1?"+"+MinSek(((Kilpailija)apusarja.kilpailijat.elementAt(1)).aika-((Kilpailija)apusarja.kilpailijat.elementAt(0)).aika):""),apusarja.arvo};
            taul2.setRow(-1,apu15);

            if(apusarja.sarja.length()>maxsarjaleveys)
            {
                maxsarjaleveys = apusarja.sarja.length();
                taul2.setColumnWidth(0,maxsarjaleveys*9);
                taul3.setColumnWidth(0,maxsarjaleveys*9);
            }
        }

    varitaSarjat();
    }
    catch(Exception ex) {System.out.println("ongelma");ex.printStackTrace();}
    }


    private void varitaSarjat(){
    try{
        Color vari1 = new java.awt.Color(255,255,255);
        Color vari2 = new java.awt.Color(220,220,220);
        int riveja = taul2.getRowCount();
        int sarjamenossa = 0;
        for (int i=1;i<riveja;i++)
        {
         if(!taul2.getCell(taul2.getRowIndex(i),0).equals(taul2.getCell(taul2.getRowIndex(i-1),0)))
           sarjamenossa++;

        taul2.setRowBackground(taul2.getRowIndex(i),(sarjamenossa%2==1?vari2:vari1));


        }

     } catch (Exception ex) {ex.printStackTrace();}

    }


}
