Index: javax/swing/JComponent.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/JComponent.java,v retrieving revision 1.10 diff -u -b -B -r1.10 JComponent.java --- javax/swing/JComponent.java 27 Jan 2004 09:46:25 -0000 1.10 +++ javax/swing/JComponent.java 28 Jan 2004 18:26:24 -0000 @@ -1,5 +1,5 @@ /* JComponent.java -- Every component in swing inherits from this class. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -63,8 +63,9 @@ import java.beans.PropertyVetoException; import java.beans.VetoableChangeListener; import java.io.Serializable; -import java.util.Vector; +import java.util.EventListener; import java.util.Hashtable; +import java.util.Vector; import javax.accessibility.Accessible; import javax.accessibility.AccessibleContext; import javax.accessibility.AccessibleExtendedComponent; @@ -86,6 +87,9 @@ public abstract class JComponent extends Container implements Serializable { static final long serialVersionUID = -5242478962609715464L; + + protected EventListenerList listenerList = new EventListenerList(); + /** * accessibleContext */ @@ -98,9 +102,6 @@ boolean use_double_buffer, opaque; protected ComponentUI ui; - Vector ancestor_list; - Vector veto_list; - Vector change_list; Hashtable prop_hash; /** @@ -273,16 +274,12 @@ super(); super.setLayout(new FlowLayout()); - listenerList = new EventListenerList(); - //eventMask |= AWTEvent.COMP_KEY_EVENT_MASK; // enableEvents( AWTEvent.KEY_EVENT_MASK ); //updateUI(); // get a proper ui } - protected EventListenerList listenerList; - public boolean contains(int x, int y) { //return dims.contains(x,y); @@ -301,24 +298,6 @@ prop_hash = new Hashtable(); return prop_hash; } - public Vector get_veto_list() - { - if (veto_list == null) - veto_list = new Vector(); - return veto_list; - } - public Vector get_change_list() - { - if (change_list == null) - change_list = new Vector(); - return change_list; - } - public Vector get_ancestor_list() - { - if (ancestor_list == null) - ancestor_list = new Vector(); - return ancestor_list; - } public Object getClientProperty(Object key) { return get_prop_hash().get(key); } @@ -326,29 +305,99 @@ public void putClientProperty(Object key, Object value) { get_prop_hash().put(key, value); } + /** + * Unregister an AncestorListener. + */ public void removeAncestorListener(AncestorListener listener) - { get_ancestor_list().removeElement(listener); } + { + listenerList.remove(AncestorListener.class, listener); + } + /** + * Unregister a PropertyChangeListener. + */ public void removePropertyChangeListener(PropertyChangeListener listener) - { get_change_list().removeElement(listener); } + { + listenerList.remove(PropertyChangeListener.class, listener); + } + /** + * Unregister a PropertyChangeListener. + */ public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) - { /* FIXME */ get_change_list().removeElement(listener); } + { + listenerList.remove(PropertyChangeListener.class, listener); + } + /** + * Unregister a VetoableChangeChangeListener. + */ public void removeVetoableChangeListener(VetoableChangeListener listener) - { get_veto_list().removeElement(listener); } + { + listenerList.remove(VetoableChangeListener.class, listener); + } + /** + * Register an AncestorListener. + */ public void addAncestorListener(AncestorListener listener) - { get_ancestor_list().addElement(listener); } + { + listenerList.add(AncestorListener.class, listener); + } + /** + * Register a PropertyChangeListener. + */ public void addPropertyChangeListener(PropertyChangeListener listener) - { get_change_list().addElement(listener); } + { + listenerList.add(PropertyChangeListener.class, listener); + } + /** + * Register a PropertyChangeListener. + */ public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) - { /* FIXME */ get_change_list().addElement(listener); } + { + listenerList.add(PropertyChangeListener.class, listener); + } + /** + * Register a VetoableChangeListener. + */ public void addVetoableChangeListener(VetoableChangeListener listener) - { get_veto_list().addElement(listener); } + { + listenerList.add(VetoableChangeListener.class, listener); + } + + /** + * Return all registered listeners of a special type. + * + * @since 1.3 + */ + public EventListener[] getListeners (Class listenerType) + { + return listenerList.getListeners (listenerType); + } + + /** + * Return all registered Ancestor objects. + * + * @since 1.4 + */ + public AncestorListener[] getAncestorListeners() + { + return (AncestorListener[]) getListeners (AncestorListener.class); + } + + /** + * Return all registered VetoableChangeListener objects. + * + * @since 1.4 + */ + public VetoableChangeListener[] getVetoableChangeListeners() + { + return (VetoableChangeListener[]) getListeners (VetoableChangeListener.class); + } public void computeVisibleRect(Rectangle rect) { @@ -397,6 +446,7 @@ } protected void fireVetoableChange(String propertyName, Object oldValue, Object newValue) + throws PropertyVetoException { // Support for reporting constrained property changes. } Index: javax/swing/JEditorPane.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/JEditorPane.java,v retrieving revision 1.6 diff -u -b -B -r1.6 JEditorPane.java --- javax/swing/JEditorPane.java 8 Jun 2003 11:20:07 -0000 1.6 +++ javax/swing/JEditorPane.java 28 Jan 2004 18:26:24 -0000 @@ -1,5 +1,5 @@ /* JEditorPane.java -- - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,7 @@ import java.awt.Dimension; import java.awt.event.KeyEvent; import java.io.InputStream; +import java.io.IOException; import java.net.URL; import javax.accessibility.AccessibleContext; import javax.swing.text.EditorKit; @@ -63,6 +64,7 @@ } public JEditorPane(String url) + throws IOException { this(); setPage(url); @@ -75,6 +77,7 @@ } public JEditorPane(URL url) + throws IOException { setPage(url); }