home *** CD-ROM | disk | FTP | other *** search
- package java.awt;
-
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.ItemEvent;
- import java.awt.event.ItemListener;
- import java.awt.peer.ListPeer;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.util.Vector;
-
- public class List extends Component implements ItemSelectable {
- Vector items;
- int rows;
- boolean multipleMode;
- int[] selected;
- int visibleIndex;
- transient ActionListener actionListener;
- transient ItemListener itemListener;
- private static final String base = "list";
- private static int nameCounter;
- private static final long serialVersionUID = -3304312411574666869L;
- static final int DEFAULT_VISIBLE_ROWS = 4;
- private int listSerializedDataVersion;
-
- public List() {
- this(0, false);
- }
-
- public List(int var1) {
- this(var1, false);
- }
-
- public List(int var1, boolean var2) {
- this.items = new Vector();
- this.multipleMode = false;
- this.selected = new int[0];
- this.visibleIndex = -1;
- this.listSerializedDataVersion = 1;
- super.name = "list" + nameCounter++;
- this.rows = var1 != 0 ? var1 : 4;
- this.multipleMode = var2;
- }
-
- public void addNotify() {
- if (super.peer == null) {
- super.peer = ((Component)this).getToolkit().createList(this);
- }
-
- super.addNotify();
- synchronized(this){}
-
- try {
- this.visibleIndex = -1;
- } catch (Throwable var3) {
- throw var3;
- }
-
- }
-
- public void removeNotify() {
- synchronized(this){}
-
- try {
- ListPeer var3 = (ListPeer)super.peer;
- if (var3 != null) {
- this.selected = var3.getSelectedIndexes();
- }
- } catch (Throwable var5) {
- throw var5;
- }
-
- super.removeNotify();
- }
-
- public int getItemCount() {
- return this.countItems();
- }
-
- public int countItems() {
- return this.items.size();
- }
-
- public String getItem(int var1) {
- return (String)this.items.elementAt(var1);
- }
-
- public synchronized String[] getItems() {
- String[] var1 = new String[this.items.size()];
- this.items.copyInto(var1);
- return var1;
- }
-
- public void add(String var1) {
- this.addItem(var1);
- }
-
- public void addItem(String var1) {
- this.addItem(var1, -1);
- }
-
- public synchronized void add(String var1, int var2) {
- this.addItem(var1, var2);
- }
-
- public synchronized void addItem(String var1, int var2) {
- if (var2 < -1 || var2 >= this.items.size()) {
- var2 = -1;
- }
-
- if (var2 == -1) {
- this.items.addElement(var1);
- } else {
- this.items.insertElementAt(var1, var2);
- }
-
- ListPeer var3 = (ListPeer)super.peer;
- if (var3 != null) {
- var3.addItem(var1, var2);
- }
-
- }
-
- public synchronized void replaceItem(String var1, int var2) {
- this.remove(var2);
- this.add(var1, var2);
- }
-
- public synchronized void removeAll() {
- this.clear();
- }
-
- public synchronized void clear() {
- ListPeer var1 = (ListPeer)super.peer;
- if (var1 != null) {
- var1.clear();
- }
-
- this.items = new Vector();
- this.selected = new int[0];
- }
-
- public synchronized void remove(String var1) {
- int var2 = this.items.indexOf(var1);
- if (var2 < 0) {
- throw new IllegalArgumentException("item " + var1 + " not found in list");
- } else {
- this.remove(var2);
- }
- }
-
- public synchronized void remove(int var1) {
- this.delItem(var1);
- }
-
- public synchronized void delItem(int var1) {
- this.delItems(var1, var1);
- }
-
- public synchronized int getSelectedIndex() {
- int[] var1 = this.getSelectedIndexes();
- return var1.length == 1 ? var1[0] : -1;
- }
-
- public synchronized int[] getSelectedIndexes() {
- ListPeer var1 = (ListPeer)super.peer;
- if (var1 != null) {
- this.selected = var1.getSelectedIndexes();
- }
-
- return this.selected;
- }
-
- public synchronized String getSelectedItem() {
- int var1 = this.getSelectedIndex();
- return var1 < 0 ? null : this.getItem(var1);
- }
-
- public synchronized String[] getSelectedItems() {
- int[] var1 = this.getSelectedIndexes();
- String[] var2 = new String[var1.length];
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- var2[var3] = this.getItem(var1[var3]);
- }
-
- return var2;
- }
-
- public Object[] getSelectedObjects() {
- return this.getSelectedItems();
- }
-
- public void select(int var1) {
- ListPeer var2;
- do {
- var2 = (ListPeer)super.peer;
- if (var2 != null) {
- var2.select(var1);
- return;
- }
-
- synchronized(this){}
-
- try {
- boolean var5 = false;
-
- for(int var6 = 0; var6 < this.selected.length; ++var6) {
- if (this.selected[var6] == var1) {
- var5 = true;
- break;
- }
- }
-
- if (!var5) {
- if (!this.multipleMode) {
- this.selected = new int[1];
- this.selected[0] = var1;
- } else {
- int[] var7 = new int[this.selected.length + 1];
- System.arraycopy(this.selected, 0, var7, 0, this.selected.length);
- var7[this.selected.length] = var1;
- this.selected = var7;
- }
- }
- } catch (Throwable var9) {
- throw var9;
- }
- } while(var2 != super.peer);
-
- }
-
- public synchronized void deselect(int var1) {
- ListPeer var2 = (ListPeer)super.peer;
- if (var2 != null) {
- var2.deselect(var1);
- }
-
- for(int var3 = 0; var3 < this.selected.length; ++var3) {
- if (this.selected[var3] == var1) {
- int[] var4 = new int[this.selected.length - 1];
- System.arraycopy(this.selected, 0, var4, 0, var3);
- System.arraycopy(this.selected, var3 + 1, var4, var3, this.selected.length - (var3 + 1));
- this.selected = var4;
- return;
- }
- }
-
- }
-
- public boolean isIndexSelected(int var1) {
- return this.isSelected(var1);
- }
-
- public boolean isSelected(int var1) {
- int[] var2 = this.getSelectedIndexes();
-
- for(int var3 = 0; var3 < var2.length; ++var3) {
- if (var2[var3] == var1) {
- return true;
- }
- }
-
- return false;
- }
-
- public int getRows() {
- return this.rows;
- }
-
- public boolean isMultipleMode() {
- return this.allowsMultipleSelections();
- }
-
- public boolean allowsMultipleSelections() {
- return this.multipleMode;
- }
-
- public synchronized void setMultipleMode(boolean var1) {
- this.setMultipleSelections(var1);
- }
-
- public synchronized void setMultipleSelections(boolean var1) {
- if (var1 != this.multipleMode) {
- this.multipleMode = var1;
- ListPeer var2 = (ListPeer)super.peer;
- if (var2 != null) {
- var2.setMultipleSelections(var1);
- }
- }
-
- }
-
- public int getVisibleIndex() {
- return this.visibleIndex;
- }
-
- public synchronized void makeVisible(int var1) {
- this.visibleIndex = var1;
- ListPeer var2 = (ListPeer)super.peer;
- if (var2 != null) {
- var2.makeVisible(var1);
- }
-
- }
-
- public Dimension getPreferredSize(int var1) {
- return this.preferredSize(var1);
- }
-
- public Dimension preferredSize(int var1) {
- Object var3 = Component.LOCK;
- synchronized(var3){}
-
- Dimension var2;
- try {
- ListPeer var5 = (ListPeer)super.peer;
- var2 = var5 != null ? var5.preferredSize(var1) : super.preferredSize();
- } catch (Throwable var7) {
- throw var7;
- }
-
- return var2;
- }
-
- public Dimension getPreferredSize() {
- return this.preferredSize();
- }
-
- public Dimension preferredSize() {
- Object var2 = Component.LOCK;
- synchronized(var2){}
-
- Dimension var1;
- try {
- var1 = this.rows > 0 ? this.preferredSize(this.rows) : super.preferredSize();
- } catch (Throwable var5) {
- throw var5;
- }
-
- return var1;
- }
-
- public Dimension getMinimumSize(int var1) {
- return this.minimumSize(var1);
- }
-
- public Dimension minimumSize(int var1) {
- Object var3 = Component.LOCK;
- synchronized(var3){}
-
- Dimension var2;
- try {
- ListPeer var5 = (ListPeer)super.peer;
- var2 = var5 != null ? var5.minimumSize(var1) : super.minimumSize();
- } catch (Throwable var7) {
- throw var7;
- }
-
- return var2;
- }
-
- public Dimension getMinimumSize() {
- return this.minimumSize();
- }
-
- public Dimension minimumSize() {
- Object var2 = Component.LOCK;
- synchronized(var2){}
-
- Dimension var1;
- try {
- var1 = this.rows > 0 ? this.minimumSize(this.rows) : super.minimumSize();
- } catch (Throwable var5) {
- throw var5;
- }
-
- return var1;
- }
-
- public synchronized void addItemListener(ItemListener var1) {
- this.itemListener = AWTEventMulticaster.add(this.itemListener, var1);
- super.newEventsOnly = true;
- }
-
- public synchronized void removeItemListener(ItemListener var1) {
- this.itemListener = AWTEventMulticaster.remove(this.itemListener, var1);
- }
-
- public synchronized void addActionListener(ActionListener var1) {
- this.actionListener = AWTEventMulticaster.add(this.actionListener, var1);
- super.newEventsOnly = true;
- }
-
- public synchronized void removeActionListener(ActionListener var1) {
- this.actionListener = AWTEventMulticaster.remove(this.actionListener, var1);
- }
-
- boolean eventEnabled(AWTEvent var1) {
- switch (var1.id) {
- case 701:
- if ((super.eventMask & 512L) == 0L && this.itemListener == null) {
- return false;
- }
-
- return true;
- case 1001:
- if ((super.eventMask & 128L) == 0L && this.actionListener == null) {
- return false;
- }
-
- return true;
- default:
- return super.eventEnabled(var1);
- }
- }
-
- protected void processEvent(AWTEvent var1) {
- if (var1 instanceof ItemEvent) {
- this.processItemEvent((ItemEvent)var1);
- } else if (var1 instanceof ActionEvent) {
- this.processActionEvent((ActionEvent)var1);
- } else {
- super.processEvent(var1);
- }
- }
-
- protected void processItemEvent(ItemEvent var1) {
- if (this.itemListener != null) {
- this.itemListener.itemStateChanged(var1);
- }
-
- }
-
- protected void processActionEvent(ActionEvent var1) {
- if (this.actionListener != null) {
- this.actionListener.actionPerformed(var1);
- }
-
- }
-
- protected String paramString() {
- return super.paramString() + ",selected=" + this.getSelectedItem();
- }
-
- public synchronized void delItems(int var1, int var2) {
- for(int var3 = var2; var3 >= var1; --var3) {
- this.items.removeElementAt(var3);
- }
-
- ListPeer var4 = (ListPeer)super.peer;
- if (var4 != null) {
- var4.delItems(var1, var2);
- }
-
- }
-
- private void writeObject(ObjectOutputStream var1) throws IOException {
- synchronized(this){}
-
- try {
- ListPeer var4 = (ListPeer)super.peer;
- if (var4 != null) {
- this.selected = var4.getSelectedIndexes();
- }
- } catch (Throwable var6) {
- throw var6;
- }
-
- var1.defaultWriteObject();
- AWTEventMulticaster.save(var1, "itemL", this.itemListener);
- AWTEventMulticaster.save(var1, "actionL", this.actionListener);
- var1.writeObject((Object)null);
- }
-
- private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
- var1.defaultReadObject();
-
- Object var2;
- while((var2 = var1.readObject()) != null) {
- String var3 = ((String)var2).intern();
- if (var3 == "itemL") {
- this.addItemListener((ItemListener)var1.readObject());
- } else if (var3 == "actionL") {
- this.addActionListener((ActionListener)var1.readObject());
- } else {
- var1.readObject();
- }
- }
-
- }
- }
-