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 / List.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  8.4 KB  |  518 lines

  1. package java.awt;
  2.  
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.awt.event.ItemEvent;
  6. import java.awt.event.ItemListener;
  7. import java.awt.peer.ListPeer;
  8. import java.io.IOException;
  9. import java.io.ObjectInputStream;
  10. import java.io.ObjectOutputStream;
  11. import java.util.EventListener;
  12. import java.util.Vector;
  13. import javax.accessibility.Accessible;
  14. import javax.accessibility.AccessibleContext;
  15.  
  16. public class List extends Component implements ItemSelectable, Accessible {
  17.    Vector items;
  18.    int rows;
  19.    boolean multipleMode;
  20.    int[] selected;
  21.    int visibleIndex;
  22.    transient ActionListener actionListener;
  23.    transient ItemListener itemListener;
  24.    private static final String base = "list";
  25.    private static int nameCounter = 0;
  26.    private static final long serialVersionUID = -3304312411574666869L;
  27.    static final int DEFAULT_VISIBLE_ROWS = 4;
  28.    private int listSerializedDataVersion;
  29.    // $FF: synthetic field
  30.    static Class class$java$awt$event$ActionListener;
  31.    // $FF: synthetic field
  32.    static Class class$java$awt$event$ItemListener;
  33.  
  34.    public List() {
  35.       this(0, false);
  36.    }
  37.  
  38.    public List(int var1) {
  39.       this(var1, false);
  40.    }
  41.  
  42.    public List(int var1, boolean var2) {
  43.       this.items = new Vector();
  44.       this.rows = 0;
  45.       this.multipleMode = false;
  46.       this.selected = new int[0];
  47.       this.visibleIndex = -1;
  48.       this.listSerializedDataVersion = 1;
  49.       this.rows = var1 != 0 ? var1 : 4;
  50.       this.multipleMode = var2;
  51.    }
  52.  
  53.    String constructComponentName() {
  54.       Class var1 = this.getClass();
  55.       synchronized(var1) {
  56.          String var2 = "list" + nameCounter++;
  57.          return var2;
  58.       }
  59.    }
  60.  
  61.    public void addNotify() {
  62.       Object var1 = ((Component)this).getTreeLock();
  63.       synchronized(var1) {
  64.          if (super.peer == null) {
  65.             super.peer = ((Component)this).getToolkit().createList(this);
  66.          }
  67.  
  68.          super.addNotify();
  69.          this.visibleIndex = -1;
  70.       }
  71.    }
  72.  
  73.    public void removeNotify() {
  74.       Object var1 = ((Component)this).getTreeLock();
  75.       synchronized(var1) {
  76.          ListPeer var2 = (ListPeer)super.peer;
  77.          if (var2 != null) {
  78.             this.selected = var2.getSelectedIndexes();
  79.          }
  80.  
  81.          super.removeNotify();
  82.       }
  83.    }
  84.  
  85.    public int getItemCount() {
  86.       return this.countItems();
  87.    }
  88.  
  89.    public int countItems() {
  90.       return this.items.size();
  91.    }
  92.  
  93.    public String getItem(int var1) {
  94.       return this.getItemImpl(var1);
  95.    }
  96.  
  97.    final String getItemImpl(int var1) {
  98.       return (String)this.items.elementAt(var1);
  99.    }
  100.  
  101.    public synchronized String[] getItems() {
  102.       String[] var1 = new String[this.items.size()];
  103.       this.items.copyInto(var1);
  104.       return var1;
  105.    }
  106.  
  107.    public void add(String var1) {
  108.       this.addItem(var1);
  109.    }
  110.  
  111.    public void addItem(String var1) {
  112.       this.addItem(var1, -1);
  113.    }
  114.  
  115.    public void add(String var1, int var2) {
  116.       this.addItem(var1, var2);
  117.    }
  118.  
  119.    public synchronized void addItem(String var1, int var2) {
  120.       if (var2 < -1 || var2 >= this.items.size()) {
  121.          var2 = -1;
  122.       }
  123.  
  124.       if (var1 == null) {
  125.          var1 = "";
  126.       }
  127.  
  128.       if (var2 == -1) {
  129.          this.items.addElement(var1);
  130.       } else {
  131.          this.items.insertElementAt(var1, var2);
  132.       }
  133.  
  134.       ListPeer var3 = (ListPeer)super.peer;
  135.       if (var3 != null) {
  136.          var3.addItem(var1, var2);
  137.       }
  138.  
  139.    }
  140.  
  141.    public synchronized void replaceItem(String var1, int var2) {
  142.       this.remove(var2);
  143.       this.add(var1, var2);
  144.    }
  145.  
  146.    public void removeAll() {
  147.       this.clear();
  148.    }
  149.  
  150.    public synchronized void clear() {
  151.       ListPeer var1 = (ListPeer)super.peer;
  152.       if (var1 != null) {
  153.          var1.clear();
  154.       }
  155.  
  156.       this.items = new Vector();
  157.       this.selected = new int[0];
  158.    }
  159.  
  160.    public synchronized void remove(String var1) {
  161.       int var2 = this.items.indexOf(var1);
  162.       if (var2 < 0) {
  163.          throw new IllegalArgumentException("item " + var1 + " not found in list");
  164.       } else {
  165.          this.remove(var2);
  166.       }
  167.    }
  168.  
  169.    public void remove(int var1) {
  170.       this.delItem(var1);
  171.    }
  172.  
  173.    public void delItem(int var1) {
  174.       this.delItems(var1, var1);
  175.    }
  176.  
  177.    public synchronized int getSelectedIndex() {
  178.       int[] var1 = this.getSelectedIndexes();
  179.       return var1.length == 1 ? var1[0] : -1;
  180.    }
  181.  
  182.    public synchronized int[] getSelectedIndexes() {
  183.       ListPeer var1 = (ListPeer)super.peer;
  184.       if (var1 != null) {
  185.          this.selected = var1.getSelectedIndexes();
  186.       }
  187.  
  188.       return this.selected;
  189.    }
  190.  
  191.    public synchronized String getSelectedItem() {
  192.       int var1 = this.getSelectedIndex();
  193.       return var1 < 0 ? null : this.getItem(var1);
  194.    }
  195.  
  196.    public synchronized String[] getSelectedItems() {
  197.       int[] var1 = this.getSelectedIndexes();
  198.       String[] var2 = new String[var1.length];
  199.  
  200.       for(int var3 = 0; var3 < var1.length; ++var3) {
  201.          var2[var3] = this.getItem(var1[var3]);
  202.       }
  203.  
  204.       return var2;
  205.    }
  206.  
  207.    public Object[] getSelectedObjects() {
  208.       return this.getSelectedItems();
  209.    }
  210.  
  211.    public void select(int var1) {
  212.       ListPeer var2;
  213.       do {
  214.          var2 = (ListPeer)super.peer;
  215.          if (var2 != null) {
  216.             var2.select(var1);
  217.             return;
  218.          }
  219.  
  220.          synchronized(this) {
  221.             boolean var4 = false;
  222.  
  223.             for(int var5 = 0; var5 < this.selected.length; ++var5) {
  224.                if (this.selected[var5] == var1) {
  225.                   var4 = true;
  226.                   break;
  227.                }
  228.             }
  229.  
  230.             if (!var4) {
  231.                if (!this.multipleMode) {
  232.                   this.selected = new int[1];
  233.                   this.selected[0] = var1;
  234.                } else {
  235.                   int[] var6 = new int[this.selected.length + 1];
  236.                   System.arraycopy(this.selected, 0, var6, 0, this.selected.length);
  237.                   var6[this.selected.length] = var1;
  238.                   this.selected = var6;
  239.                }
  240.             }
  241.          }
  242.       } while(var2 != super.peer);
  243.  
  244.    }
  245.  
  246.    public synchronized void deselect(int var1) {
  247.       ListPeer var2 = (ListPeer)super.peer;
  248.       if (var2 != null) {
  249.          var2.deselect(var1);
  250.       }
  251.  
  252.       for(int var3 = 0; var3 < this.selected.length; ++var3) {
  253.          if (this.selected[var3] == var1) {
  254.             int[] var4 = new int[this.selected.length - 1];
  255.             System.arraycopy(this.selected, 0, var4, 0, var3);
  256.             System.arraycopy(this.selected, var3 + 1, var4, var3, this.selected.length - (var3 + 1));
  257.             this.selected = var4;
  258.             return;
  259.          }
  260.       }
  261.  
  262.    }
  263.  
  264.    public boolean isIndexSelected(int var1) {
  265.       return this.isSelected(var1);
  266.    }
  267.  
  268.    public boolean isSelected(int var1) {
  269.       int[] var2 = this.getSelectedIndexes();
  270.  
  271.       for(int var3 = 0; var3 < var2.length; ++var3) {
  272.          if (var2[var3] == var1) {
  273.             return true;
  274.          }
  275.       }
  276.  
  277.       return false;
  278.    }
  279.  
  280.    public int getRows() {
  281.       return this.rows;
  282.    }
  283.  
  284.    public boolean isMultipleMode() {
  285.       return this.allowsMultipleSelections();
  286.    }
  287.  
  288.    public boolean allowsMultipleSelections() {
  289.       return this.multipleMode;
  290.    }
  291.  
  292.    public void setMultipleMode(boolean var1) {
  293.       this.setMultipleSelections(var1);
  294.    }
  295.  
  296.    public synchronized void setMultipleSelections(boolean var1) {
  297.       if (var1 != this.multipleMode) {
  298.          this.multipleMode = var1;
  299.          ListPeer var2 = (ListPeer)super.peer;
  300.          if (var2 != null) {
  301.             var2.setMultipleSelections(var1);
  302.          }
  303.       }
  304.  
  305.    }
  306.  
  307.    public int getVisibleIndex() {
  308.       return this.visibleIndex;
  309.    }
  310.  
  311.    public synchronized void makeVisible(int var1) {
  312.       this.visibleIndex = var1;
  313.       ListPeer var2 = (ListPeer)super.peer;
  314.       if (var2 != null) {
  315.          var2.makeVisible(var1);
  316.       }
  317.  
  318.    }
  319.  
  320.    public Dimension getPreferredSize(int var1) {
  321.       return this.preferredSize(var1);
  322.    }
  323.  
  324.    public Dimension preferredSize(int var1) {
  325.       Object var2 = ((Component)this).getTreeLock();
  326.       synchronized(var2) {
  327.          ListPeer var3 = (ListPeer)super.peer;
  328.          Dimension var4 = var3 != null ? var3.preferredSize(var1) : super.preferredSize();
  329.          return var4;
  330.       }
  331.    }
  332.  
  333.    public Dimension getPreferredSize() {
  334.       return this.preferredSize();
  335.    }
  336.  
  337.    public Dimension preferredSize() {
  338.       Object var1 = ((Component)this).getTreeLock();
  339.       synchronized(var1) {
  340.          Dimension var2 = this.rows > 0 ? this.preferredSize(this.rows) : super.preferredSize();
  341.          return var2;
  342.       }
  343.    }
  344.  
  345.    public Dimension getMinimumSize(int var1) {
  346.       return this.minimumSize(var1);
  347.    }
  348.  
  349.    public Dimension minimumSize(int var1) {
  350.       Object var2 = ((Component)this).getTreeLock();
  351.       synchronized(var2) {
  352.          ListPeer var3 = (ListPeer)super.peer;
  353.          Dimension var4 = var3 != null ? var3.minimumSize(var1) : super.minimumSize();
  354.          return var4;
  355.       }
  356.    }
  357.  
  358.    public Dimension getMinimumSize() {
  359.       return this.minimumSize();
  360.    }
  361.  
  362.    public Dimension minimumSize() {
  363.       Object var1 = ((Component)this).getTreeLock();
  364.       synchronized(var1) {
  365.          Dimension var2 = this.rows > 0 ? this.minimumSize(this.rows) : super.minimumSize();
  366.          return var2;
  367.       }
  368.    }
  369.  
  370.    public synchronized void addItemListener(ItemListener var1) {
  371.       if (var1 != null) {
  372.          this.itemListener = AWTEventMulticaster.add(this.itemListener, var1);
  373.          super.newEventsOnly = true;
  374.       }
  375.    }
  376.  
  377.    public synchronized void removeItemListener(ItemListener var1) {
  378.       if (var1 != null) {
  379.          this.itemListener = AWTEventMulticaster.remove(this.itemListener, var1);
  380.       }
  381.    }
  382.  
  383.    public synchronized void addActionListener(ActionListener var1) {
  384.       if (var1 != null) {
  385.          this.actionListener = AWTEventMulticaster.add(this.actionListener, var1);
  386.          super.newEventsOnly = true;
  387.       }
  388.    }
  389.  
  390.    public synchronized void removeActionListener(ActionListener var1) {
  391.       if (var1 != null) {
  392.          this.actionListener = AWTEventMulticaster.remove(this.actionListener, var1);
  393.       }
  394.    }
  395.  
  396.    public EventListener[] getListeners(Class var1) {
  397.       Object var2 = null;
  398.       if (var1 == (class$java$awt$event$ActionListener == null ? (class$java$awt$event$ActionListener = class$("java.awt.event.ActionListener")) : class$java$awt$event$ActionListener)) {
  399.          var2 = this.actionListener;
  400.       } else {
  401.          if (var1 != (class$java$awt$event$ItemListener == null ? (class$java$awt$event$ItemListener = class$("java.awt.event.ItemListener")) : class$java$awt$event$ItemListener)) {
  402.             return super.getListeners(var1);
  403.          }
  404.  
  405.          var2 = this.itemListener;
  406.       }
  407.  
  408.       return AWTEventMulticaster.getListeners((EventListener)var2, var1);
  409.    }
  410.  
  411.    boolean eventEnabled(AWTEvent var1) {
  412.       switch (var1.id) {
  413.          case 701:
  414.             if ((super.eventMask & 512L) == 0L && this.itemListener == null) {
  415.                return false;
  416.             }
  417.  
  418.             return true;
  419.          case 1001:
  420.             if ((super.eventMask & 128L) == 0L && this.actionListener == null) {
  421.                return false;
  422.             }
  423.  
  424.             return true;
  425.          default:
  426.             return super.eventEnabled(var1);
  427.       }
  428.    }
  429.  
  430.    protected void processEvent(AWTEvent var1) {
  431.       if (var1 instanceof ItemEvent) {
  432.          this.processItemEvent((ItemEvent)var1);
  433.       } else if (var1 instanceof ActionEvent) {
  434.          this.processActionEvent((ActionEvent)var1);
  435.       } else {
  436.          super.processEvent(var1);
  437.       }
  438.    }
  439.  
  440.    protected void processItemEvent(ItemEvent var1) {
  441.       if (this.itemListener != null) {
  442.          this.itemListener.itemStateChanged(var1);
  443.       }
  444.  
  445.    }
  446.  
  447.    protected void processActionEvent(ActionEvent var1) {
  448.       if (this.actionListener != null) {
  449.          this.actionListener.actionPerformed(var1);
  450.       }
  451.  
  452.    }
  453.  
  454.    protected String paramString() {
  455.       return super.paramString() + ",selected=" + this.getSelectedItem();
  456.    }
  457.  
  458.    public synchronized void delItems(int var1, int var2) {
  459.       for(int var3 = var2; var3 >= var1; --var3) {
  460.          this.items.removeElementAt(var3);
  461.       }
  462.  
  463.       ListPeer var4 = (ListPeer)super.peer;
  464.       if (var4 != null) {
  465.          var4.delItems(var1, var2);
  466.       }
  467.  
  468.    }
  469.  
  470.    private void writeObject(ObjectOutputStream var1) throws IOException {
  471.       synchronized(this) {
  472.          ListPeer var3 = (ListPeer)super.peer;
  473.          if (var3 != null) {
  474.             this.selected = var3.getSelectedIndexes();
  475.          }
  476.       }
  477.  
  478.       var1.defaultWriteObject();
  479.       AWTEventMulticaster.save(var1, "itemL", this.itemListener);
  480.       AWTEventMulticaster.save(var1, "actionL", this.actionListener);
  481.       var1.writeObject((Object)null);
  482.    }
  483.  
  484.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  485.       var1.defaultReadObject();
  486.  
  487.       Object var2;
  488.       while(null != (var2 = var1.readObject())) {
  489.          String var3 = ((String)var2).intern();
  490.          if ("itemL" == var3) {
  491.             this.addItemListener((ItemListener)var1.readObject());
  492.          } else if ("actionL" == var3) {
  493.             this.addActionListener((ActionListener)var1.readObject());
  494.          } else {
  495.             var1.readObject();
  496.          }
  497.       }
  498.  
  499.    }
  500.  
  501.    public AccessibleContext getAccessibleContext() {
  502.       if (super.accessibleContext == null) {
  503.          super.accessibleContext = new AccessibleAWTList(this);
  504.       }
  505.  
  506.       return super.accessibleContext;
  507.    }
  508.  
  509.    // $FF: synthetic method
  510.    static Class class$(String var0) {
  511.       try {
  512.          return Class.forName(var0);
  513.       } catch (ClassNotFoundException var2) {
  514.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  515.       }
  516.    }
  517. }
  518.