import java.applet.Applet;
import java.awt.*;
import java.util.Vector;
import java.net.URL;

public class demoGrid5 extends Applet 
{

  Grid      gridParam;
  Component selectedComponent;
  TextField champ;
  Button    ajout, enleve;
 
  public void init() 
  {
    setLayout(null);

    //    nbC Nombre de colonnes de la Grid
    //    nbR Nombre de Lignes de la Grid
    //    w Longueur de la Grid (en pixels)
    //    h Hauteur de la Grid (en pixels)
    //    rw Longueur de la Grid dans sa totalite (en pixels)
    //    rh Hauteur de la Grid dans sa totalite (en pixels)
    //    t Titre de la Grid
    //    bS Taille de la bordure de la Grid (en pixels)
    //    bC Couleur de la bordure de la Grid 
    //    fC Couleur de fond des champs de la Grid
    //    fT Couleur du texte des champs de la Grid
    //    cC Couleur de fond des cellules de la Grid
    //    vB Booleen indiquant si la bordure doit etre visible
    //    vF Booleen indiquant si les champs doivent etre visibles
    //    dS Booleen indiquant si la Grid doit etre redimensionnee en fct du contenu
    //    iT Booleen indiquant si l'utilisateur peut interagir la Grid
    //    smH Booleen indiquant si une Scrollbar horizontale doit apparaitre en fct de la taille de la Grid
    //    smV Booleen indiquant si une Scrollbar verticale doit apparaitre en fct de la taille de la Grid
    gridParam  = new Grid(6,6,400,300,400,300,"DEMO2",1,Color.yellow,Color.orange,Color.red,Color.blue,true,true,true,true,true,true);
    add(gridParam);
    gridParam.move(15,15);
   
    Panel bottomPanel;

    bottomPanel = new Panel();
    
    // choice = new Choice();
//     choice.addItem("Vertical Fields");
//     choice.addItem("Horizontal Fields");
//     bottomPanel.add("component",choice);
    
    champ= new TextField(20);
    bottomPanel.add("champ",champ);

    bottomPanel.resize(500,50);
    bottomPanel.move(0,350);
    add(bottomPanel);

    
    repaint();
  }
  

  int memeX(Vector v)
  {
    int i,x;

    x=((Point)v.elementAt(0)).x;
    for(i=0;i<v.size();i++)
      if (x!=((Point)v.elementAt(i)).x)
	return 0;
    return x;
  }

  int memeY(Vector v)
  {
    int i,y;

    y=((Point)v.elementAt(0)).y;
    for(i=0;i<v.size();i++)
      if (y!=((Point)v.elementAt(i)).y)
	return 0;
    return y;
  }

  public boolean action(Event event, Object arg) 
  {
    if (event.target instanceof TextField) 
      {
	if (gridParam.cellsSelectedSize()>0)
	  { 
	    Vector cellsSelected;
	    Point point;
	    
	    cellsSelected = gridParam.getCellsSelected();
	    if (cellsSelected.size()==(gridParam.getCols()*gridParam.getRows()))
	      gridParam.setTitle(champ.getText());
	    if ((memeX(cellsSelected)!=0) && cellsSelected.size()==gridParam.getCols())
	      gridParam.setHorizontalField(memeX(cellsSelected),champ.getText());
	    if ((memeY(cellsSelected)!=0) && cellsSelected.size()==gridParam.getRows())
	      gridParam.setVerticalField(memeY(cellsSelected),champ.getText());
	  }
      }
    validate();
    return true;
  }

  public void start() 
  {
    repaint();
  }

   
  public void stop() 
  {

  }

  
  public void destroy() 
  {

  }

  
  public void paint(Graphics g) 
  {

    g.drawString("selectionnez un champ ou le titre de la grid, donnez un nouveau",10,335);
    g.drawString("nom puis appuyez sur return",10,345);

  }  

}

