/** * 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;i0) // 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;imaxsarjaleveys) { 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;i0) { 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;i12?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