home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / java / awt / Choice.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  4.9 KB  |  216 lines

  1. package java.awt;
  2.  
  3. import java.awt.event.ItemEvent;
  4. import java.awt.event.ItemListener;
  5. import java.awt.peer.ChoicePeer;
  6. import java.io.IOException;
  7. import java.io.ObjectInputStream;
  8. import java.io.ObjectOutputStream;
  9. import java.util.Vector;
  10.  
  11. public class Choice extends Component implements ItemSelectable {
  12.    Vector pItems;
  13.    int selectedIndex = -1;
  14.    transient ItemListener itemListener;
  15.    private static final String base = "choice";
  16.    private static int nameCounter;
  17.    private static final long serialVersionUID = -4075310674757313071L;
  18.    private int choiceSerializedDataVersion = 1;
  19.  
  20.    public Choice() {
  21.       super.name = "choice" + nameCounter++;
  22.       this.pItems = new Vector();
  23.    }
  24.  
  25.    public void addNotify() {
  26.       super.peer = ((Component)this).getToolkit().createChoice(this);
  27.       super.addNotify();
  28.    }
  29.  
  30.    public int getItemCount() {
  31.       return this.countItems();
  32.    }
  33.  
  34.    public int countItems() {
  35.       return this.pItems.size();
  36.    }
  37.  
  38.    public String getItem(int var1) {
  39.       return (String)this.pItems.elementAt(var1);
  40.    }
  41.  
  42.    public synchronized void add(String var1) {
  43.       this.addItem(var1);
  44.    }
  45.  
  46.    public synchronized void addItem(String var1) {
  47.       if (var1 == null) {
  48.          throw new NullPointerException("cannot add null item to Choice");
  49.       } else {
  50.          this.pItems.addElement(var1);
  51.          ChoicePeer var2 = (ChoicePeer)super.peer;
  52.          if (var2 != null) {
  53.             var2.addItem(var1, this.pItems.size() - 1);
  54.          }
  55.  
  56.          if (this.selectedIndex < 0) {
  57.             this.select(0);
  58.          }
  59.  
  60.       }
  61.    }
  62.  
  63.    public synchronized void insert(String var1, int var2) {
  64.       if (var2 < 0) {
  65.          throw new IllegalArgumentException("index less than zero.");
  66.       } else {
  67.          int var3 = this.getItemCount();
  68.          Vector var4 = new Vector();
  69.  
  70.          for(int var5 = var2; var5 < var3; ++var5) {
  71.             var4.addElement(this.getItem(var2));
  72.             this.remove(var2);
  73.          }
  74.  
  75.          this.add(var1);
  76.  
  77.          for(int var6 = 0; var6 < var4.size(); ++var6) {
  78.             this.add((String)var4.elementAt(var6));
  79.          }
  80.  
  81.       }
  82.    }
  83.  
  84.    public synchronized void remove(String var1) {
  85.       int var2 = this.pItems.indexOf(var1);
  86.       if (var2 < 0) {
  87.          throw new IllegalArgumentException("item " + var1 + " not found in choice");
  88.       } else {
  89.          this.remove(var2);
  90.       }
  91.    }
  92.  
  93.    public synchronized void remove(int var1) {
  94.       this.pItems.removeElementAt(var1);
  95.       ChoicePeer var2 = (ChoicePeer)super.peer;
  96.       if (var2 != null) {
  97.          var2.remove(var1);
  98.       }
  99.  
  100.       if (this.pItems.size() == 0) {
  101.          this.selectedIndex = -1;
  102.       } else {
  103.          if (this.selectedIndex == var1) {
  104.             this.select(0);
  105.          }
  106.  
  107.       }
  108.    }
  109.  
  110.    public synchronized void removeAll() {
  111.       int var1 = this.getItemCount();
  112.  
  113.       for(int var2 = 0; var2 < var1; ++var2) {
  114.          this.remove(0);
  115.       }
  116.  
  117.    }
  118.  
  119.    public synchronized String getSelectedItem() {
  120.       return this.selectedIndex >= 0 ? this.getItem(this.selectedIndex) : null;
  121.    }
  122.  
  123.    public synchronized Object[] getSelectedObjects() {
  124.       if (this.selectedIndex >= 0) {
  125.          Object[] var1 = new Object[]{this.getItem(this.selectedIndex)};
  126.          return var1;
  127.       } else {
  128.          return null;
  129.       }
  130.    }
  131.  
  132.    public int getSelectedIndex() {
  133.       return this.selectedIndex;
  134.    }
  135.  
  136.    public synchronized void select(int var1) {
  137.       if (var1 >= this.pItems.size()) {
  138.          throw new IllegalArgumentException("illegal Choice item position: " + var1);
  139.       } else {
  140.          if (this.pItems.size() > 0) {
  141.             this.selectedIndex = var1;
  142.             ChoicePeer var2 = (ChoicePeer)super.peer;
  143.             if (var2 != null) {
  144.                var2.select(var1);
  145.             }
  146.          }
  147.  
  148.       }
  149.    }
  150.  
  151.    public synchronized void select(String var1) {
  152.       int var2 = this.pItems.indexOf(var1);
  153.       if (var2 >= 0) {
  154.          this.select(var2);
  155.       }
  156.  
  157.    }
  158.  
  159.    public synchronized void addItemListener(ItemListener var1) {
  160.       this.itemListener = AWTEventMulticaster.add(this.itemListener, var1);
  161.       super.newEventsOnly = true;
  162.    }
  163.  
  164.    public synchronized void removeItemListener(ItemListener var1) {
  165.       this.itemListener = AWTEventMulticaster.remove(this.itemListener, var1);
  166.    }
  167.  
  168.    boolean eventEnabled(AWTEvent var1) {
  169.       if (var1.id == 701) {
  170.          return (super.eventMask & 512L) != 0L || this.itemListener != null;
  171.       } else {
  172.          return super.eventEnabled(var1);
  173.       }
  174.    }
  175.  
  176.    protected void processEvent(AWTEvent var1) {
  177.       if (var1 instanceof ItemEvent) {
  178.          this.processItemEvent((ItemEvent)var1);
  179.       } else {
  180.          super.processEvent(var1);
  181.       }
  182.    }
  183.  
  184.    protected void processItemEvent(ItemEvent var1) {
  185.       if (this.itemListener != null) {
  186.          this.itemListener.itemStateChanged(var1);
  187.       }
  188.  
  189.    }
  190.  
  191.    protected String paramString() {
  192.       return super.paramString() + ",current=" + this.getSelectedItem();
  193.    }
  194.  
  195.    private void writeObject(ObjectOutputStream var1) throws IOException {
  196.       var1.defaultWriteObject();
  197.       AWTEventMulticaster.save(var1, "itemL", this.itemListener);
  198.       var1.writeObject((Object)null);
  199.    }
  200.  
  201.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  202.       var1.defaultReadObject();
  203.  
  204.       Object var2;
  205.       while((var2 = var1.readObject()) != null) {
  206.          String var3 = ((String)var2).intern();
  207.          if (var3 == "itemL") {
  208.             this.addItemListener((ItemListener)var1.readObject());
  209.          } else {
  210.             var1.readObject();
  211.          }
  212.       }
  213.  
  214.    }
  215. }
  216.