/** * Title: * Description: * Copyright: Copyright (c) 2002 * Company: * @author * @version 1.0 */ import java.util.*; import omaTable.*; public class Sarja { Kilpailu kisa; Vector kilpailijat; Vector tulossa = new Vector(); boolean onLLista=false; String sarja; String matka; String arvo; int lkm; int hyva; int tulematta=0; String viime="0"; int uusin=0; int uusinpoisto=0; String llista=""; public Sarja(String isarja,String imatka, String iarvo, String ilista, Kilpailu ikisa) { try { if(ilista.length()>0) { StringTokenizer st1 = new StringTokenizer(ilista,"\n"); while(st1.hasMoreTokens()) { int nro=0; StringTokenizer st2 = new StringTokenizer(st1.nextToken(),";"); if(st2.countTokens()<3) break; String laika = st2.nextToken(); try {nro = Integer.parseInt(st2.nextToken());} catch(Exception ex) {nro = 0;} String knimi = st2.nextToken(); String seura = (st2.hasMoreTokens()?st2.nextToken():""); Kilpailija kilp= new Kilpailija(nro,knimi,0,"",seura,laika); int paikka = tulossa.size(); while(paikka>0 && ((Kilpailija)tulossa.elementAt(paikka-1)).laika.compareTo(laika)>0) paikka--; tulossa.insertElementAt(kilp,paikka); } llista = ilista; } }catch (Exception ex) {ex.printStackTrace();} if(tulossa.size()>0) onLLista=true; tulematta = tulossa.size(); sarja=isarja; matka=(imatka.equals("")?"N/A":imatka); kilpailijat = new Vector(); arvo = iarvo; kisa = ikisa; } public Kilpailija annaKilpailija(int sija){ return (Kilpailija)kilpailijat.elementAt(sija); } public int lisaaKilpailija(Kilpailija kilp, String iaikaleima) { try { for(int i=0;i0) viime = iaikaleima; for(int i=0;i0) paras = ((Kilpailija)kilpailijat.elementAt(0)).aika; String uusin1 = (viime.length()>12?viime.substring(8,10)+":"+viime.substring(10,12):""); String apu1[] = {"","",hyva+"+"+(lkm-hyva)+(onLLista?"/"+tulematta:"")+ " tulosta","uusin klo",uusin1,""}; String apu0[] = {"","",sarja,matka,"",""}; itaul.removeAll(); itaul.setRow(-1,apu0); itaul.setRow(-1,apu1); itaul.setRowBackground(0,new java.awt.Color(0,255,255)); itaul.setRowBackground(1,new java.awt.Color(0,255,255)); synchronized(kilpailijat) { for(int i=0;i0 && k.aika==((Kilpailija)kilpailijat.elementAt(i-1)).aika && k.aika<999991) { int j=i; while(j>0 && k.aika==((Kilpailija)kilpailijat.elementAt(j-1)).aika) { sija--; j--; } } String apu2[] = {(k.aika>99990?" ":(sija)+". "),k.nro+"",k.nimi,k.seura,(k.aika>99990?k.hyv:MinSek(k.aika)),(k.aika>999990?" ":"-"+MinSek(k.aika-paras))}; itaul.setRow(-1,apu2); if(i%2==1) itaul.setRowBackground(i+2,new java.awt.Color(220,220,220)); else itaul.setRowBackground(i+2,new java.awt.Color(255,255,255)); } itaul.setRowBackground(uusin+2,new java.awt.Color(255,30,30)); if(siirrytaanko) itaul.gotoRowPosition(uusin+2); } if(onLLista) { int pienin = 10000; synchronized(tulossa) { if(siirrytaanko) { k = (Kilpailija)tulossa.elementAt(uusinpoisto); if(k.aika>0) { itaul2.setRowBackground(uusinpoisto,new java.awt.Color(255,255,255)); itaul2.setCell(uusinpoisto,4,k.aika>999990?k.hyv:MinSek(k.aika)); itaul2.setCell(uusinpoisto,7,k.aika+""); itaul2.setCell(uusinpoisto,6,""); //itaul2.gotoRowPosition(uusinpoisto); } } else { itaul2.removeAll(); int mihin = 0; for(int i=0;i0) return ((Kilpailija)kilpailijat.elementAt(0)).aika; else return 0; } public int annaSija(int aika) { if(hyva==0) return 0; if(aika>99990) return 0; for(int i=0;i=aika) return i+1; return hyva+1; } private String MinSek(int sek){ try { return (sek-sek%60)/60 + ":" + ((sek%60) <10 ? "0" : "") + sek%60; } catch(Exception ex) {ex.printStackTrace(); return "";} } }