/**
 *  File neve : CsopDialog.java
 *
 *  Leírás : Csoportok menedzselését teszi lehetővé.
 *           A konstruktor paraméterei : 'parent' : a hívó Frame,
 *           'ablaknev' : a dialógus ablak címkéje.
 *
 *  Készítette Takács Mihály 1998.06. 
 */

import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class CsopDialog extends Dialog implements ActionListener,
                               TextListener, ItemListener {

  private GridBagLayout      gridbag     =new GridBagLayout();
  private GridBagConstraints constraints =new GridBagConstraints();

  private FlowLayout ButtonFL   =new FlowLayout(FlowLayout.CENTER,40,5);
  private Panel ButtonPanel     =new Panel(ButtonFL);
  private TextField Prioritas   =new TextField();
  private List Csoportok        =new List(10,false);
  private Button rendben        =new Button(" Rendben ");
  private Button megsem         =new Button(" Megsem ");
  Frame parent;      // A szülő Frame

  Vector v=new Vector(30);

  CsopDialog(Frame parent,String ablaknev) {
    super(parent,ablaknev,true);
    this.parent=parent;

    setResizable(false);
    setSize(335,250);
    setLayout(gridbag);

    constraints.anchor=GridBagConstraints.WEST;
    constraints.gridwidth=GridBagConstraints.REMAINDER;
    constraints.fill=GridBagConstraints.HORIZONTAL;
    constraints.weighty=0.0;
    constraints.weightx=0.0;
    addhozza(gridbag,new Label("Az aktiv csoport prioritasa :"),constraints);

    constraints.fill=GridBagConstraints.HORIZONTAL;
    addhozza(gridbag,Prioritas,constraints);
      Prioritas.addTextListener(this);

    constraints.fill=GridBagConstraints.VERTICAL;
    addhozza(gridbag, new Label("Prioritas      Csoport"), constraints);

    constraints.weighty=1.0;
    constraints.weightx=1.0;
    constraints.fill=GridBagConstraints.BOTH;
    addhozza(gridbag, Csoportok, constraints);
      Csoportok.addItemListener(this);
        csopi a;
        for (int i=0;i<240;i+=10) {
	  a=new csopi(Integer.toString(i)+". csoport",i);
	  v.addElement(a);
	  Csoportok.addItem(Integer.toString(a.prioritasa)+"          "+a.neve);
	}
      Csoportok.select(0);
    constraints.weighty=0.0;
    constraints.weightx=0.0;
    constraints.fill=GridBagConstraints.HORIZONTAL;
    addhozza(gridbag, ButtonPanel, constraints);
      ButtonPanel.add(rendben);
      rendben.addActionListener(this);
      ButtonPanel.add(megsem);
      megsem.addActionListener(this);
    validate();
  }

              /* ActionListener interfész megvalósítása */
  public void actionPerformed(ActionEvent ae) {
    Object s=ae.getSource(); /* Visszaadja honnan jött az esemény */
    if (s.equals(rendben)) {
      try {
	((FoMenu)parent).rajzpanel.valtozas=true; //Van változás, kell mentésről kérdezni
      } catch (NullPointerException err) {}
      dispose();  /* Felszabadítja a dialogus ablakot */
    }
    else if (s.equals(megsem)) {
      dispose();
    }
  }

         /* ItemListener interfész implementálása a List widget-hez*/
  int index=0;
  public void itemStateChanged(ItemEvent evt) {
    index=Csoportok.getSelectedIndex();  // Az aktív indexének a megjegyzése
  }

         /* TextListener interfész implementálása a TextField-hez*/
  public void textValueChanged(TextEvent evt) {
    csopi a=(csopi)v.elementAt(index);
    try {
      int i=Integer.parseInt(Prioritas.getText());  //Leszedem a számot
      a.prioritasa=i;  // aktualizálok
      Csoportok.replaceItem(Integer.toString(a.prioritasa)+"          "+a.neve,index);
    } catch (NumberFormatException err) {}
  }

  private void addhozza(GridBagLayout grid, Component comp,
			GridBagConstraints constraints )  {
    grid.setConstraints(comp, constraints);
    add(comp);
  }
}


class csopi {
  String neve;
  int prioritasa;

  csopi(String nev, int p) { neve=nev; prioritasa=p;}
}
