Index: javax/swing/AbstractAction.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/AbstractAction.java,v retrieving revision 1.7 diff -u -b -B -r1.7 AbstractAction.java --- javax/swing/AbstractAction.java 9 Jan 2004 10:19:16 -0000 1.7 +++ javax/swing/AbstractAction.java 27 Jan 2004 18:09:13 -0000 @@ -56,10 +56,6 @@ { static final long serialVersionUID = -6803159439231523484L; - //------------------------------------------------------------- - // Variables -------------------------------------------------- - //------------------------------------------------------------- - /** * enabled */ @@ -76,11 +72,6 @@ */ private transient HashMap store = new HashMap(); - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - /** * Constructor AbstractAction */ @@ -106,11 +97,6 @@ putValue(SMALL_ICON, icon); } // AbstractAction() - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - /** * readObject * @param stream TODO @@ -185,28 +171,46 @@ /** * firePropertyChange + * * @param propertyName TODO * @param oldValue TODO * @param newValue TODO */ - protected void firePropertyChange(String propertyName, - Object oldValue, Object newValue) { + protected void firePropertyChange(String propertyName, Object oldValue, + Object newValue) + { changeSupport.firePropertyChange(propertyName, oldValue, newValue); - } // firePropertyChange() + } /** * addPropertyChangeListener - * @param listener TODO + * + * @param listener the listener to add */ - public synchronized void addPropertyChangeListener(PropertyChangeListener listener) { + public void addPropertyChangeListener(PropertyChangeListener listener) + { changeSupport.addPropertyChangeListener(listener); - } // addPropertyChangeListener() + } /** * removePropertyChangeListener - * @param listener TODO + * + * @param listener the listener to remove */ - public synchronized void removePropertyChangeListener(PropertyChangeListener listener) { + public void removePropertyChangeListener(PropertyChangeListener listener) + { changeSupport.removePropertyChangeListener(listener); - } // removePropertyChangeListener() + } + + /** + * Returns all registered listeners. + * + * @return array of listeners. + * + * @since 1.4 + */ + public PropertyChangeListener[] getPropertyChangeListeners() + { + return changeSupport.getPropertyChangeListeners(); + } } Index: javax/swing/AbstractCellEditor.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/AbstractCellEditor.java,v retrieving revision 1.3 diff -u -b -B -r1.3 AbstractCellEditor.java --- javax/swing/AbstractCellEditor.java 8 Jun 2003 11:20:06 -0000 1.3 +++ javax/swing/AbstractCellEditor.java 27 Jan 2004 18:09:13 -0000 @@ -1,5 +1,5 @@ /* AbstractCellEditor.java -- - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -54,10 +54,6 @@ { static final long serialVersionUID = -1048006551406220959L; - //------------------------------------------------------------- - // Variables -------------------------------------------------- - //------------------------------------------------------------- - /** * listenerList */ @@ -68,11 +64,6 @@ */ protected transient ChangeEvent changeEvent; - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - /** * Constructor AbstractCellEditor */ @@ -80,11 +71,6 @@ // TODO } // AbstractCellEditor() - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - /** * isCellEditable * @param event TODO @@ -119,40 +105,64 @@ } // cancelCellEditing() /** + * getCellEditorValue + * @returns Object + */ + public abstract Object getCellEditorValue(); + + /** * addCellEditorListener - * @param listener TODO + * + * @param listener The listener to add */ - public void addCellEditorListener(CellEditorListener listener) { - // TODO - } // addCellEditorListener() + public void addCellEditorListener (CellEditorListener listener) + { + listenerList.add (CellEditorListener.class, listener); + } /** * removeCellEditorListener - * @param listener TODO + * + * @param listener The listener to remove */ - public void removeCellEditorListener(CellEditorListener listener) { - // TODO - } // removeCellEditorListener() + public void removeCellEditorListener (CellEditorListener listener) + { + listenerList.remove (CellEditorListener.class, listener); + } + + /** + * getCellEditorListeners + * + * @since 1.4 + */ + public CellEditorListener[] getCellEditorListeners() + { + return (CellEditorListener[]) listenerList.getListeners (CellEditorListener.class); + } /** * fireEditingStopped */ - protected void fireEditingStopped() { - // TODO - } // fireEditingStopped() + protected void fireEditingStopped() + { + CellEditorListener[] listeners = getCellEditorListeners(); + + for (int index = 0; index < listeners.length; index++) + { + listeners [index].editingStopped (changeEvent); + } + } /** * fireEditingCanceled */ - protected void fireEditingCanceled() { - // TODO - } // fireEditingCanceled() - - /** - * getCellEditorValue - * @returns Object - */ - public abstract Object getCellEditorValue(); - - -} // AbstractCellEditor + protected void fireEditingCanceled() + { + CellEditorListener[] listeners = getCellEditorListeners(); + + for (int index = 0; index < listeners.length; index++) + { + listeners [index].editingCanceled (changeEvent); + } + } +} Index: javax/swing/DefaultListSelectionModel.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/DefaultListSelectionModel.java,v retrieving revision 1.4 diff -u -b -B -r1.4 DefaultListSelectionModel.java --- javax/swing/DefaultListSelectionModel.java 8 Jun 2003 11:43:14 -0000 1.4 +++ javax/swing/DefaultListSelectionModel.java 27 Jan 2004 18:09:13 -0000 @@ -1,5 +1,5 @@ /* DefaultListSelectionModel.java -- - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -42,34 +42,17 @@ import java.util.EventListener; import java.util.Vector; import javax.swing.event.EventListenerList; +import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; public class DefaultListSelectionModel implements Cloneable, ListSelectionModel, Serializable { + protected EventListenerList listenerList = new EventListenerList(); + int mode = SINGLE_SELECTION; Vector sel = new Vector(); - Vector listeners; - - Vector get_listeners() - { - if (listeners == null) - listeners = new Vector(); - return listeners; - } - - - public void addListSelectionListener(ListSelectionListener listener) - { - get_listeners().addElement(listener); - } - - public void removeListSelectionListener(ListSelectionListener listener) - { - get_listeners().removeElement(listener); - } - class Range { int i0, i1; @@ -182,4 +165,60 @@ sel.addElement(new Range(index0, index1)); } + + /** + * Adds a listener. + * + * @param listener the listener to add + * + * @see removeListSelectionListener + * @see getListSelectionListeners + */ + public void addListSelectionListener(ListSelectionListener listener) + { + listenerList.add (ListSelectionListener.class, listener); + } + + /** + * Removes a registered listener. + * + * @param listener the listener to remove + * + * @see addListSelectionListener + * @see getListSelectionListeners + */ + public void removeListSelectionListener(ListSelectionListener listener) + { + listenerList.remove (ListSelectionListener.class, listener); + } + + /** + * Returns an array of all registerers listeners. + * + * @return the array + * + * @since 1.3 + * + * @see getListSelectionListener + */ + public EventListener[] getListeners (Class listenerType) + { + return listenerList.getListeners (listenerType); + } + + /** + * Returns an array of all registerd list selection listeners. + * + * @return the array + * + * @since 1.4 + * + * @see addListSelectionListener + * @see removeListSelectionListener + * @see getListeners + */ + public ListSelectionListener[] getListSelectionListeners() + { + return (ListSelectionListener[]) getListeners (ListSelectionListener.class); + } } Index: javax/swing/JComboBox.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/JComboBox.java,v retrieving revision 1.5 diff -u -b -B -r1.5 JComboBox.java --- javax/swing/JComboBox.java 12 Oct 2003 16:44:39 -0000 1.5 +++ javax/swing/JComboBox.java 27 Jan 2004 18:09:13 -0000 @@ -1,5 +1,5 @@ /* JComboBox.java -- - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,14 +38,27 @@ package javax.swing; -import java.awt.*; -import java.awt.event.*; -import java.beans.*; -import java.io.*; -import java.util.*; -import javax.accessibility.*; -import javax.swing.event.*; -import javax.swing.plaf.*; +import java.awt.ItemSelectable; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.awt.event.KeyEvent; +import java.beans.PropertyChangeListener; +import java.io.IOException; +import java.io.ObjectOutputStream; +import java.util.Vector; +import javax.accessibility.Accessible; +import javax.accessibility.AccessibleContext; +import javax.accessibility.AccessibleAction; +import javax.accessibility.AccessibleRole; +import javax.accessibility.AccessibleSelection; +import javax.swing.event.MenuEvent; +import javax.swing.event.MenuListener; +import javax.swing.event.ListDataEvent; +import javax.swing.event.ListDataListener; +import javax.swing.event.PopupMenuListener; +import javax.swing.plaf.ComboBoxUI; /** * JComboBox @@ -580,38 +593,6 @@ } // isPopupVisible() /** - * addItemListener - * @param value0 TODO - */ - public void addItemListener(ItemListener value0) { - // TODO - } // addItemListener() - - /** - * removeItemListener - * @param value0 TODO - */ - public void removeItemListener(ItemListener value0) { - // TODO - } // removeItemListener() - - /** - * addActionListener - * @param value0 TODO - */ - public void addActionListener(ActionListener value0) { - // TODO - } // addActionListener() - - /** - * removeActionListener - * @param value0 TODO - */ - public void removeActionListener(ActionListener value0) { - // TODO - } // removeActionListener() - - /** * setActionCommand * @param value0 TODO */ @@ -834,6 +815,73 @@ } // if return accessibleContext; } // getAccessibleContext() + /** + * addActionListener + * @param listener TODO + */ + public void addActionListener (ActionListener listener) + { + listenerList.add (ActionListener.class, listener); + } + + /** + * removeActionListener + * @param listener TODO + */ + public void removeActionListener (ActionListener listener) + { + listenerList.remove (ActionListener.class, listener); + } + + /** + * @since 1.4 + */ + public ActionListener[] getActionListeners() + { + return (ActionListener[]) getListeners (ActionListener.class); + } + + /** + * addItemListener + * @param listener TODO + */ + public void addItemListener(ItemListener listener) + { + listenerList.add (ItemListener.class, listener); + } + + /** + * removeItemListener + * @param listener TODO + */ + public void removeItemListener(ItemListener listener) + { + listenerList.remove (ItemListener.class, listener); + } + /** + * @since 1.4 + */ + public ItemListener[] getItemListeners() + { + return (ItemListener[]) getListeners (ItemListener.class); + } + + public void addPopupMenuListener (PopupMenuListener listener) + { + listenerList.add (PopupMenuListener.class, listener); + } -} // JComboBox + public void removePopupMenuListener (PopupMenuListener listener) + { + listenerList.remove (PopupMenuListener.class, listener); + } + + /** + * @since 1.4 + */ + public PopupMenuListener[] getPopupMenuListeners() + { + return (PopupMenuListener[]) getListeners (PopupMenuListener.class); + } +}