home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / awt / Choice.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  5.8 KB  |  307 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.EventListener;
  10. import java.util.Vector;
  11. import javax.accessibility.Accessible;
  12. import javax.accessibility.AccessibleContext;
  13.  
  14. public class Choice extends Component implements ItemSelectable, Accessible {
  15.    Vector pItems = new Vector();
  16.    int selectedIndex = -1;
  17.    transient ItemListener itemListener;
  18.    private static final String base = "choice";
  19.    private static int nameCounter = 0;
  20.    private static final long serialVersionUID = -4075310674757313071L;
  21.    private int choiceSerializedDataVersion = 1;
  22.    // $FF: synthetic field
  23.    static Class class$java$awt$event$ItemListener;
  24.  
  25.    String constructComponentName() {
  26.       Class var1 = this.getClass();
  27.       synchronized(var1) {
  28.          String var2 = "choice" + nameCounter++;
  29.          return var2;
  30.       }
  31.    }
  32.  
  33.    public void addNotify() {
  34.       Object var1 = ((Component)this).getTreeLock();
  35.       synchronized(var1) {
  36.          if (super.peer == null) {
  37.             super.peer = ((Component)this).getToolkit().createChoice(this);
  38.          }
  39.  
  40.          super.addNotify();
  41.       }
  42.    }
  43.  
  44.    public int getItemCount() {
  45.       return this.countItems();
  46.    }
  47.  
  48.    public int countItems() {
  49.       return this.pItems.size();
  50.    }
  51.  
  52.    public String getItem(int var1) {
  53.       return this.getItemImpl(var1);
  54.    }
  55.  
  56.    final String getItemImpl(int var1) {
  57.       return (String)this.pItems.elementAt(var1);
  58.    }
  59.  
  60.    public void add(String var1) {
  61.       this.addItem(var1);
  62.    }
  63.  
  64.    public void addItem(String var1) {
  65.       synchronized(this) {
  66.          this.addItemNoInvalidate(var1);
  67.       }
  68.  
  69.       if (super.valid) {
  70.          ((Component)this).invalidate();
  71.       }
  72.  
  73.    }
  74.  
  75.    private void addItemNoInvalidate(String var1) {
  76.       if (var1 == null) {
  77.          throw new NullPointerException("cannot add null item to Choice");
  78.       } else {
  79.          this.pItems.addElement(var1);
  80.          ChoicePeer var2 = (ChoicePeer)super.peer;
  81.          if (var2 != null) {
  82.             var2.addItem(var1, this.pItems.size() - 1);
  83.          }
  84.  
  85.          if (this.selectedIndex < 0) {
  86.             this.select(0);
  87.          }
  88.  
  89.       }
  90.    }
  91.  
  92.    public void insert(String var1, int var2) {
  93.       synchronized(this) {
  94.          if (var2 < 0) {
  95.             throw new IllegalArgumentException("index less than zero.");
  96.          }
  97.  
  98.          int var4 = this.getItemCount();
  99.          Vector var5 = new Vector();
  100.  
  101.          for(int var6 = var2; var6 < var4; ++var6) {
  102.             var5.addElement(this.getItem(var2));
  103.             this.removeNoInvalidate(var2);
  104.          }
  105.  
  106.          this.addItemNoInvalidate(var1);
  107.  
  108.          for(int var7 = 0; var7 < var5.size(); ++var7) {
  109.             this.addItemNoInvalidate((String)var5.elementAt(var7));
  110.          }
  111.       }
  112.  
  113.       if (super.valid) {
  114.          ((Component)this).invalidate();
  115.       }
  116.  
  117.    }
  118.  
  119.    public void remove(String var1) {
  120.       synchronized(this) {
  121.          int var3 = this.pItems.indexOf(var1);
  122.          if (var3 < 0) {
  123.             throw new IllegalArgumentException("item " + var1 + " not found in choice");
  124.          }
  125.  
  126.          this.removeNoInvalidate(var3);
  127.       }
  128.  
  129.       if (super.valid) {
  130.          ((Component)this).invalidate();
  131.       }
  132.  
  133.    }
  134.  
  135.    public void remove(int var1) {
  136.       synchronized(this) {
  137.          this.removeNoInvalidate(var1);
  138.       }
  139.  
  140.       if (super.valid) {
  141.          ((Component)this).invalidate();
  142.       }
  143.  
  144.    }
  145.  
  146.    private void removeNoInvalidate(int var1) {
  147.       this.pItems.removeElementAt(var1);
  148.       ChoicePeer var2 = (ChoicePeer)super.peer;
  149.       if (var2 != null) {
  150.          var2.remove(var1);
  151.       }
  152.  
  153.       if (this.pItems.size() == 0) {
  154.          this.selectedIndex = -1;
  155.       } else if (this.selectedIndex == var1) {
  156.          this.select(0);
  157.       } else if (this.selectedIndex > var1) {
  158.          this.select(this.selectedIndex - 1);
  159.       }
  160.  
  161.    }
  162.  
  163.    public void removeAll() {
  164.       synchronized(this) {
  165.          if (super.peer != null) {
  166.             ((ChoicePeer)super.peer).removeAll();
  167.          }
  168.  
  169.          this.pItems.removeAllElements();
  170.          this.selectedIndex = -1;
  171.       }
  172.  
  173.       if (super.valid) {
  174.          ((Component)this).invalidate();
  175.       }
  176.  
  177.    }
  178.  
  179.    public synchronized String getSelectedItem() {
  180.       return this.selectedIndex >= 0 ? this.getItem(this.selectedIndex) : null;
  181.    }
  182.  
  183.    public synchronized Object[] getSelectedObjects() {
  184.       if (this.selectedIndex >= 0) {
  185.          Object[] var1 = new Object[]{this.getItem(this.selectedIndex)};
  186.          return var1;
  187.       } else {
  188.          return null;
  189.       }
  190.    }
  191.  
  192.    public int getSelectedIndex() {
  193.       return this.selectedIndex;
  194.    }
  195.  
  196.    public synchronized void select(int var1) {
  197.       if (var1 < this.pItems.size() && var1 >= 0) {
  198.          if (this.pItems.size() > 0) {
  199.             this.selectedIndex = var1;
  200.             ChoicePeer var2 = (ChoicePeer)super.peer;
  201.             if (var2 != null) {
  202.                var2.select(var1);
  203.             }
  204.          }
  205.  
  206.       } else {
  207.          throw new IllegalArgumentException("illegal Choice item position: " + var1);
  208.       }
  209.    }
  210.  
  211.    public synchronized void select(String var1) {
  212.       int var2 = this.pItems.indexOf(var1);
  213.       if (var2 >= 0) {
  214.          this.select(var2);
  215.       }
  216.  
  217.    }
  218.  
  219.    public synchronized void addItemListener(ItemListener var1) {
  220.       if (var1 != null) {
  221.          this.itemListener = AWTEventMulticaster.add(this.itemListener, var1);
  222.          super.newEventsOnly = true;
  223.       }
  224.    }
  225.  
  226.    public synchronized void removeItemListener(ItemListener var1) {
  227.       if (var1 != null) {
  228.          this.itemListener = AWTEventMulticaster.remove(this.itemListener, var1);
  229.       }
  230.    }
  231.  
  232.    public EventListener[] getListeners(Class var1) {
  233.       Object var2 = null;
  234.       if (var1 == (class$java$awt$event$ItemListener == null ? (class$java$awt$event$ItemListener = class$("java.awt.event.ItemListener")) : class$java$awt$event$ItemListener)) {
  235.          ItemListener var3 = this.itemListener;
  236.          return AWTEventMulticaster.getListeners(var3, var1);
  237.       } else {
  238.          return super.getListeners(var1);
  239.       }
  240.    }
  241.  
  242.    boolean eventEnabled(AWTEvent var1) {
  243.       if (var1.id == 701) {
  244.          return (super.eventMask & 512L) != 0L || this.itemListener != null;
  245.       } else {
  246.          return super.eventEnabled(var1);
  247.       }
  248.    }
  249.  
  250.    protected void processEvent(AWTEvent var1) {
  251.       if (var1 instanceof ItemEvent) {
  252.          this.processItemEvent((ItemEvent)var1);
  253.       } else {
  254.          super.processEvent(var1);
  255.       }
  256.    }
  257.  
  258.    protected void processItemEvent(ItemEvent var1) {
  259.       if (this.itemListener != null) {
  260.          this.itemListener.itemStateChanged(var1);
  261.       }
  262.  
  263.    }
  264.  
  265.    protected String paramString() {
  266.       return super.paramString() + ",current=" + this.getSelectedItem();
  267.    }
  268.  
  269.    private void writeObject(ObjectOutputStream var1) throws IOException {
  270.       var1.defaultWriteObject();
  271.       AWTEventMulticaster.save(var1, "itemL", this.itemListener);
  272.       var1.writeObject((Object)null);
  273.    }
  274.  
  275.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  276.       var1.defaultReadObject();
  277.  
  278.       Object var2;
  279.       while(null != (var2 = var1.readObject())) {
  280.          String var3 = ((String)var2).intern();
  281.          if ("itemL" == var3) {
  282.             this.addItemListener((ItemListener)var1.readObject());
  283.          } else {
  284.             var1.readObject();
  285.          }
  286.       }
  287.  
  288.    }
  289.  
  290.    public AccessibleContext getAccessibleContext() {
  291.       if (super.accessibleContext == null) {
  292.          super.accessibleContext = new AccessibleAWTChoice(this);
  293.       }
  294.  
  295.       return super.accessibleContext;
  296.    }
  297.  
  298.    // $FF: synthetic method
  299.    static Class class$(String var0) {
  300.       try {
  301.          return Class.forName(var0);
  302.       } catch (ClassNotFoundException var2) {
  303.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  304.       }
  305.    }
  306. }
  307.