/
ScryMUD/mud/
ScryMUD/mud/grrmud/Boards/
ScryMUD/mud/grrmud/Help/
ScryMUD/mud/grrmud/Pfiles/
ScryMUD/mud/grrmud/PlayerSacks/
ScryMUD/mud/grrmud/PlayerShops/
ScryMUD/mud/grrmud/help_filter/
ScryMUD/mud/hegemon/
ScryMUD/mud/hegemon/data/
ScryMUD/mud/hegemon/data/help/battle/
ScryMUD/mud/hegemon/data/help/client/
ScryMUD/mud/hegemon/data/help/communications/
ScryMUD/mud/hegemon/data/help/skills/
ScryMUD/mud/hegemon/data/help/spells/
ScryMUD/mud/include/
ScryMUD/mud/lib/
ScryMUD/mud/lib/bitfield/
ScryMUD/mud/lib/log/
ScryMUD/mud/lib/string2/
// $Id: LabeledCheckBoxGlob.java,v 1.2 1999/06/05 23:29:12 greear Exp $
// $Revision: 1.2 $  $Author: greear $ $Date: 1999/06/05 23:29:12 $

//
//Hegemon Client Code:  Java Client for ScryMUD Server Code
//Copyright (C) 1998  Ben Greear
//
//This program is free software; you can redistribute it and/or
//modify it under the terms of the GNU General Public License
//as published by the Free Software Foundation; either version 2
//of the License, or (at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
//
// To contact the Author, Ben Greear:  greear@cyberhighway.net, (preferred)
//                                     greearb@agcs.com
//

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

class LabeledCheckBoxGlob extends Panel {
  Label lbl;
  CheckBoxGlob cbg;
  ItemListener il;
   
  public LabeledCheckBoxGlob(String name, int rows, int cols) {
    super();

    il = null;
    lbl = new Label(name);
    cbg = new CheckBoxGlob(rows, cols);
    
    BorderLayout bl = new BorderLayout();
    setLayout(bl);

    add(lbl, "North");
    add(cbg, "South");
  }//constructor

  public void setEnabled(boolean state) {
     lbl.setEnabled(state);
     cbg.setEnabled(state);
     super.setEnabled(state);
  }
   
  public void setListener(ItemListener _il) {
     il = _il;
  }
   
  public void addBox(Checkbox cb) {
     if (il != null)
       cb.addItemListener(il);
     cbg.addBox(cb);
  }

  String getText() {
    return cbg.getText();
  }

   public boolean getState(int num) {
      return cbg.getState(num);
   }

   public void setState(int num, boolean state) {
      cbg.setState(num, state);
   }

   public void setStateRange(int beg, int end, boolean state) {
      cbg.setStateRange(beg, end, state);
   }

   public void setEnableRange(int beg, int end, boolean tf) {
      cbg.setEnableRange(beg, end, tf);
   }
   
}//LabeledCheckBoxGlob


class CheckBoxGlob extends Panel {
   Vector invisibles;
  
   public CheckBoxGlob(int rows, int cols) {
      super();
      GridLayout fl = new GridLayout(rows, cols, 0, 0);
      setLayout(fl);
      invisibles = new Vector();
   }
   
   public void addBox(Checkbox cb) {
      add(cb);
   }
   
   public void addBox(Checkbox cb, boolean invisible) {
      if (!invisible)
        add(cb);
      else
        invisibles.addElement(cb);
   }

   public void setEnabled(boolean state) {
      int cnt = getComponentCount();
      
      NumCheckbox cb;
      
      for (int i = 0; i < cnt; i++) {
         cb = (NumCheckbox)(getComponent(i));
         cb.setEnabled(state);
      }//for
      
      cnt = invisibles.size();
      for (int i = 0; i < cnt; i++) {
         cb = (NumCheckbox)(invisibles.elementAt(i));
         cb.setEnabled(state);
      }//for
      
   }//setEnabled
      
   
   public String getText() { /* get them all */
      int cnt = getComponentCount();
      
      String s;
      StringBuffer sb = new StringBuffer(100);
      NumCheckbox cb;
      
      for (int i = 0; i < cnt; i++) {
         cb = (NumCheckbox)(getComponent(i));
         if (cb.getState()) {
            sb.append(cb.getNum());
            sb.append(" ");
         }//if
      }//for
      
      cnt = invisibles.size();
      for (int i = 0; i < cnt; i++) {
         cb = (NumCheckbox)(invisibles.elementAt(i));
         if (cb.getState()) {
            sb.append(cb.getNum());
            sb.append(" ");
         }//if
      }//for
      
      return new String(sb);
   }//getText
   
   public NumCheckbox getBoxByNum(int num) {
      int cnt = getComponentCount();
      
      NumCheckbox cb;
      
      for (int i = 0; i < cnt; i++) {
         cb = (NumCheckbox)(getComponent(i));
         if (cb.getNum() == num) {
            return cb;
         }
      }//for
      
      cnt = invisibles.size();
      for (int i = 0; i < cnt; i++) {
         cb = (NumCheckbox)(invisibles.elementAt(i));
         if (cb.getNum() == num) {
            return cb;
         }
      }//for
      return null;
   }//getBoxByNum
   
   public boolean getState(int num) {
      NumCheckbox cb = getBoxByNum(num);
      if (cb != null)
        return cb.getState();
      else
        return false;
   }
   //HEERE
   
   public void setState(int num, boolean state) {
      NumCheckbox cb = getBoxByNum(num);
      if (cb != null)
        cb.setState(state);
   }

   public void setEnable(int num, boolean state) {
      NumCheckbox cb = getBoxByNum(num);
      if (cb != null)
        cb.setEnabled(state);
   }

   public void setStateRange(int beg, int end, boolean state) {
      for (int i = beg; i<= end; i++) {
         setState(i, state);
      }
   }

   public void setEnableRange(int beg, int end, boolean state) {
      for (int i = beg; i<= end; i++) {
         setEnable(i, state);
      }
   }

}//CheckBoxGlob