import java.net.*;
import java.io.*;
import java.util.*;
import java.applet.*;
import java.awt.*;


public class MojAplet2 extends Applet implements Runnable {

//glavna klasa, instancira objekte klasa IzvorPodataka.class i MojCanvas.class
//i koristi ih za pribavljanje i prikaz podataka


boolean radi= true;

int[] niz;

IzvorPodataka2 izvor;

MojPanel2 panel;   //panel ce sadrzavati kontrolne gumbe i izbornike za bazu i kanal

String salji="M"; //defaultna vremenska baza
boolean zaustavi= false;

MojCanvas  canvas;
Button button;

Thread nit;       

public void init(){


izvor= new IzvorPodataka2();

niz= new int[100];



panel= new MojPanel2();

 Choice menu= new Choice();   //dodavanje elemenata u izbornike
Choice menu2= new Choice();
  menu.addItem("mala");
  menu.addItem("srednja");   
 menu.addItem("velika");

  menu2.addItem("ch1");
  menu2.addItem("ch2");
  menu2.addItem("ch3");
  menu2.addItem("ch4");
  menu2.addItem("ch5");
  menu2.addItem("ch6");
 menu2.addItem("ch7");
  menu2.addItem("ch8");
                          
 panel.setLayout(new FlowLayout(FlowLayout.CENTER, 60, 8));


  panel.add(menu);

panel.add(menu2);

  canvas= new MojCanvas();
  canvas.niz= niz;   //inicijalizacija niza koji prikazuje canvas

 button= new Button("zaustavi");

  setLayout(new BorderLayout());


  add("North", panel);    //dodavanje panela i canvasa na aplet
 panel.setBackground(Color.blue);

add("Center", canvas);
canvas.setBackground(Color.gray);

  panel.add(button);


}


public void start(){    //da bi se moglo raditi uspavljivanje potrebno je definirati novu nit

 Thread nit=  new Thread(this);
  nit.start();
      }


public void run(){


//iscrtavanje deset po deset

while(true){

  if(zaustavi== true) {  try{
      nit.sleep(200);}catch(Exception e){}
                       continue;}             

izvor.pribaviPodatke("1", salji); //pribavljanje 100 podataka od servera
  niz= izvor.niz;

  for(int j=0; j<10; j++){

if(zaustavi== true) break;

for(int i=0; i<90; i++){
   canvas.niz[i]= canvas.niz[i+10];
                        }
for(int i=0; i<10; i++){
         canvas.niz[i+90]=niz[j*10+i];
                        }

   canvas.repaint();


   try{
      nit.sleep(1000);}catch(Exception e){}

    }//kraj for j petlje

}

}




//u ovu metodu potrebno je jos dodati dio koji uzima izabrani kanal
//iz izbornika kada se izvrsi izbor

public boolean handleEvent(Event e){



if(e.id==Event.ACTION_EVENT){
         if(e.target instanceof Choice){
             if(e.arg == "mala"){
                          salji= "M";
                          System.out.println("sad je mala baza"); 
                          }
             if(e.arg == "srednja")salji= "S";
             if(e.arg == "velika")salji= "V";
                                     }
         if(e.target instanceof Button){
                  if(e.arg== "zaustavi"){
                         zaustavi= true;
                         button.setLabel("pokreni");
                         panel.repaint();
                                          } 
                 if(e.arg== "pokreni"){
                         zaustavi= false;
                         button.setLabel("zaustavi");
                         panel.repaint();
                                         }
                                     }

                             }

     return true;
       }




}
           

                           
                                               

                      


