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