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