home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD 31 / SUPERCDa.iso / Inet / HotJava / hjava.exe / Windows / resource / jre / lib / rt.jar / java / awt / Choice.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-11  |  5.0 KB  |  229 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 = new Vector();
  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.    String constructComponentName() {
  21.       return "choice" + nameCounter++;
  22.    }
  23.  
  24.    public void addNotify() {
  25.       Object var1 = ((Component)this).getTreeLock();
  26.       synchronized(var1){}
  27.  
  28.       try {
  29.          if (super.peer == null) {
  30.             super.peer = ((Component)this).getToolkit().createChoice(this);
  31.          }
  32.  
  33.          super.addNotify();
  34.       } catch (Throwable var3) {
  35.          throw var3;
  36.       }
  37.  
  38.    }
  39.  
  40.    public int getItemCount() {
  41.       return this.countItems();
  42.    }
  43.  
  44.    /** @deprecated */
  45.    public int countItems() {
  46.       return this.pItems.size();
  47.    }
  48.  
  49.    public String getItem(int var1) {
  50.       return (String)this.pItems.elementAt(var1);
  51.    }
  52.  
  53.    public void add(String var1) {
  54.       this.addItem(var1);
  55.    }
  56.  
  57.    public synchronized void addItem(String var1) {
  58.       if (var1 == null) {
  59.          throw new NullPointerException("cannot add null item to Choice");
  60.       } else {
  61.          this.pItems.addElement(var1);
  62.          ChoicePeer var2 = (ChoicePeer)super.peer;
  63.          if (var2 != null) {
  64.             var2.addItem(var1, this.pItems.size() - 1);
  65.          }
  66.  
  67.          if (this.selectedIndex < 0) {
  68.             this.select(0);
  69.          }
  70.  
  71.       }
  72.    }
  73.  
  74.    public synchronized void insert(String var1, int var2) {
  75.       if (var2 < 0) {
  76.          throw new IllegalArgumentException("index less than zero.");
  77.       } else {
  78.          int var3 = this.getItemCount();
  79.          Vector var4 = new Vector();
  80.  
  81.          for(int var5 = var2; var5 < var3; ++var5) {
  82.             var4.addElement(this.getItem(var2));
  83.             this.remove(var2);
  84.          }
  85.  
  86.          this.add(var1);
  87.  
  88.          for(int var6 = 0; var6 < var4.size(); ++var6) {
  89.             this.add((String)var4.elementAt(var6));
  90.          }
  91.  
  92.       }
  93.    }
  94.  
  95.    public synchronized void remove(String var1) {
  96.       int var2 = this.pItems.indexOf(var1);
  97.       if (var2 < 0) {
  98.          throw new IllegalArgumentException("item " + var1 + " not found in choice");
  99.       } else {
  100.          this.remove(var2);
  101.       }
  102.    }
  103.  
  104.    public synchronized void remove(int var1) {
  105.       this.pItems.removeElementAt(var1);
  106.       ChoicePeer var2 = (ChoicePeer)super.peer;
  107.       if (var2 != null) {
  108.          var2.remove(var1);
  109.       }
  110.  
  111.       if (this.pItems.size() == 0) {
  112.          this.selectedIndex = -1;
  113.       } else if (this.selectedIndex == var1) {
  114.          this.select(0);
  115.       } else {
  116.          if (this.selectedIndex > var1) {
  117.             this.select(this.selectedIndex - 1);
  118.          }
  119.  
  120.       }
  121.    }
  122.  
  123.    public synchronized void removeAll() {
  124.       int var1 = this.getItemCount();
  125.  
  126.       for(int var2 = 0; var2 < var1; ++var2) {
  127.          this.remove(0);
  128.       }
  129.  
  130.    }
  131.  
  132.    public synchronized String getSelectedItem() {
  133.       return this.selectedIndex >= 0 ? this.getItem(this.selectedIndex) : null;
  134.    }
  135.  
  136.    public synchronized Object[] getSelectedObjects() {
  137.       if (this.selectedIndex >= 0) {
  138.          Object[] var1 = new Object[]{this.getItem(this.selectedIndex)};
  139.          return var1;
  140.       } else {
  141.          return null;
  142.       }
  143.    }
  144.  
  145.    public int getSelectedIndex() {
  146.       return this.selectedIndex;
  147.    }
  148.  
  149.    public void select(int var1) {
  150.       if (var1 >= this.pItems.size()) {
  151.          throw new IllegalArgumentException("illegal Choice item position: " + var1);
  152.       } else {
  153.          if (this.pItems.size() > 0) {
  154.             this.selectedIndex = var1;
  155.             ChoicePeer var2 = (ChoicePeer)super.peer;
  156.             if (var2 != null) {
  157.                var2.select(var1);
  158.             }
  159.          }
  160.  
  161.       }
  162.    }
  163.  
  164.    public synchronized void select(String var1) {
  165.       int var2 = this.pItems.indexOf(var1);
  166.       if (var2 >= 0) {
  167.          this.select(var2);
  168.       }
  169.  
  170.    }
  171.  
  172.    public synchronized void addItemListener(ItemListener var1) {
  173.       this.itemListener = AWTEventMulticaster.add(this.itemListener, var1);
  174.       super.newEventsOnly = true;
  175.    }
  176.  
  177.    public synchronized void removeItemListener(ItemListener var1) {
  178.       this.itemListener = AWTEventMulticaster.remove(this.itemListener, var1);
  179.    }
  180.  
  181.    boolean eventEnabled(AWTEvent var1) {
  182.       if (var1.id == 701) {
  183.          return (super.eventMask & 512L) != 0L || this.itemListener != null;
  184.       } else {
  185.          return super.eventEnabled(var1);
  186.       }
  187.    }
  188.  
  189.    protected void processEvent(AWTEvent var1) {
  190.       if (var1 instanceof ItemEvent) {
  191.          this.processItemEvent((ItemEvent)var1);
  192.       } else {
  193.          super.processEvent(var1);
  194.       }
  195.    }
  196.  
  197.    protected void processItemEvent(ItemEvent var1) {
  198.       if (this.itemListener != null) {
  199.          this.itemListener.itemStateChanged(var1);
  200.       }
  201.  
  202.    }
  203.  
  204.    protected String paramString() {
  205.       return super.paramString() + ",current=" + this.getSelectedItem();
  206.    }
  207.  
  208.    private void writeObject(ObjectOutputStream var1) throws IOException {
  209.       var1.defaultWriteObject();
  210.       AWTEventMulticaster.save(var1, "itemL", this.itemListener);
  211.       var1.writeObject((Object)null);
  212.    }
  213.  
  214.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  215.       var1.defaultReadObject();
  216.  
  217.       Object var2;
  218.       while((var2 = var1.readObject()) != null) {
  219.          String var3 = ((String)var2).intern();
  220.          if (var3 == "itemL") {
  221.             this.addItemListener((ItemListener)var1.readObject());
  222.          } else {
  223.             var1.readObject();
  224.          }
  225.       }
  226.  
  227.    }
  228. }
  229.