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