Index: web/project/nbproject/project.xml =================================================================== RCS file: /cvs/web/project/nbproject/project.xml,v retrieving revision 1.56 diff -u -r1.56 project.xml --- web/project/nbproject/project.xml 12 Mar 2007 20:55:44 -0000 1.56 +++ web/project/nbproject/project.xml 19 Mar 2007 21:17:56 -0000 @@ -374,7 +374,7 @@ - 7.3 + 7.8 Index: web/project/src/org/netbeans/modules/web/project/WebSources.java =================================================================== RCS file: /cvs/web/project/src/org/netbeans/modules/web/project/WebSources.java,v retrieving revision 1.15 diff -u -r1.15 WebSources.java --- web/project/src/org/netbeans/modules/web/project/WebSources.java 8 Dec 2006 13:05:05 -0000 1.15 +++ web/project/src/org/netbeans/modules/web/project/WebSources.java 19 Mar 2007 21:17:56 -0000 @@ -22,8 +22,6 @@ import java.beans.PropertyChangeListener; import java.beans.PropertyChangeEvent; import java.io.File; -import java.util.ArrayList; -import java.util.List; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -41,6 +39,7 @@ import org.netbeans.spi.project.support.ant.SourcesHelper; import org.netbeans.spi.project.support.ant.AntProjectHelper; import org.netbeans.spi.project.support.ant.PropertyEvaluator; +import org.openide.util.ChangeSupport; /** * Implementation of {@link Sources} interface for WebProject. @@ -59,7 +58,7 @@ * Flag to forbid multiple invocation of {@link SourcesHelper#registerExternalRoots} **/ private boolean externalRootsRegistered; - private final List/**/ listeners = new ArrayList(); + private final ChangeSupport changeSupport = new ChangeSupport(this); private SourcesHelper sourcesHelper; WebSources(AntProjectHelper helper, PropertyEvaluator evaluator, SourceRoots sourceRoots, SourceRoots testRoots) { @@ -188,30 +187,18 @@ } public void addChangeListener(ChangeListener changeListener) { - synchronized (listeners) { - listeners.add(changeListener); - } + changeSupport.addChangeListener(changeListener); } public void removeChangeListener(ChangeListener changeListener) { - synchronized (listeners) { - listeners.remove(changeListener); - } + changeSupport.removeChangeListener(changeListener); } private void fireChange() { - ChangeListener[] _listeners; - synchronized (listeners) { + synchronized (this) { delegate = null; - if (listeners.isEmpty()) { - return; - } - _listeners = (ChangeListener[])listeners.toArray(new ChangeListener[listeners.size()]); - } - ChangeEvent ev = new ChangeEvent(this); - for (int i = 0; i < _listeners.length; i++) { - _listeners[i].stateChanged(ev); } + changeSupport.fireChange(); } public void propertyChange(PropertyChangeEvent evt) { Index: web/project/src/org/netbeans/modules/web/project/queries/CompiledSourceForBinaryQuery.java =================================================================== RCS file: /cvs/web/project/src/org/netbeans/modules/web/project/queries/CompiledSourceForBinaryQuery.java,v retrieving revision 1.12 diff -u -r1.12 CompiledSourceForBinaryQuery.java --- web/project/src/org/netbeans/modules/web/project/queries/CompiledSourceForBinaryQuery.java 30 Jun 2006 22:34:50 -0000 1.12 +++ web/project/src/org/netbeans/modules/web/project/queries/CompiledSourceForBinaryQuery.java 19 Mar 2007 21:17:56 -0000 @@ -30,16 +30,14 @@ import java.net.MalformedURLException; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeEvent; -import java.util.ArrayList; -import java.util.Iterator; import java.util.Map; import java.util.HashMap; import javax.swing.event.ChangeListener; -import javax.swing.event.ChangeEvent; import org.netbeans.api.java.queries.SourceForBinaryQuery; import org.netbeans.spi.project.support.ant.PropertyEvaluator; import org.netbeans.modules.web.project.SourceRoots; +import org.openide.util.ChangeSupport; /** * Finds sources corresponding to binaries in a J2SE project. @@ -116,7 +114,7 @@ private static class Result implements SourceForBinaryQuery.Result, PropertyChangeListener { - private ArrayList listeners; + private final ChangeSupport changeSupport = new ChangeSupport(this); private SourceRoots sourceRoots; public Result (SourceRoots sourceRoots) { @@ -128,37 +126,17 @@ return this.sourceRoots.getRoots(); //No need to cache it, SourceRoots does } - public synchronized void addChangeListener (ChangeListener l) { - if (this.listeners == null) { - this.listeners = new ArrayList(); - } - this.listeners.add (l); + public void addChangeListener (ChangeListener l) { + changeSupport.addChangeListener(l); } - public synchronized void removeChangeListener (ChangeListener l) { - if (this.listeners == null) { - return; - } - this.listeners.remove (l); + public void removeChangeListener (ChangeListener l) { + changeSupport.removeChangeListener(l); } public void propertyChange(PropertyChangeEvent evt) { if (SourceRoots.PROP_ROOTS.equals(evt.getPropertyName())) { - this.fireChange (); - } - } - - private void fireChange() { - Iterator it; - synchronized (this) { - if (this.listeners == null) { - return; - } - it = ((ArrayList)this.listeners.clone()).iterator(); - } - ChangeEvent event = new ChangeEvent(this); - while (it.hasNext()) { - ((ChangeListener)it.next()).stateChanged(event); + this.changeSupport.fireChange (); } } Index: web/project/src/org/netbeans/modules/web/project/queries/JavadocForBinaryQueryImpl.java =================================================================== RCS file: /cvs/web/project/src/org/netbeans/modules/web/project/queries/JavadocForBinaryQueryImpl.java,v retrieving revision 1.4 diff -u -r1.4 JavadocForBinaryQueryImpl.java --- web/project/src/org/netbeans/modules/web/project/queries/JavadocForBinaryQueryImpl.java 30 Jun 2006 22:34:50 -0000 1.4 +++ web/project/src/org/netbeans/modules/web/project/queries/JavadocForBinaryQueryImpl.java 19 Mar 2007 21:17:56 -0000 @@ -21,9 +21,6 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; -import java.util.ArrayList; -import java.util.List; -import javax.swing.event.ChangeEvent; import org.netbeans.spi.project.support.ant.AntProjectHelper; import org.openide.ErrorManager; import org.openide.filesystems.FileUtil; @@ -34,6 +31,7 @@ import org.netbeans.modules.web.project.ui.customizer.WebProjectProperties; import org.netbeans.spi.java.queries.JavadocForBinaryQueryImplementation; import org.netbeans.spi.project.support.ant.PropertyEvaluator; +import org.openide.util.ChangeSupport; import org.openide.util.WeakListeners; /** @@ -54,7 +52,7 @@ class R implements JavadocForBinaryQuery.Result, PropertyChangeListener { - private List listeners; + private final ChangeSupport changeSupport = new ChangeSupport(this); private URL[] result; public R () { @@ -84,19 +82,13 @@ } return this.result; } - public synchronized void addChangeListener(final ChangeListener l) { + public void addChangeListener(final ChangeListener l) { assert l != null; - if (this.listeners == null) { - this.listeners = new ArrayList (); - } - this.listeners.add (l); + changeSupport.addChangeListener(l); } - public synchronized void removeChangeListener(final ChangeListener l) { + public void removeChangeListener(final ChangeListener l) { assert l != null; - if (this.listeners == null) { - return; - } - this.listeners.remove (l); + changeSupport.removeChangeListener(l); } public void propertyChange (final PropertyChangeEvent event) { @@ -104,21 +96,7 @@ synchronized (this) { result = null; } - this.fireChange (); - } - } - - private void fireChange () { - ChangeListener[] _listeners; - synchronized (this) { - if (this.listeners == null) { - return; - } - _listeners = (ChangeListener[]) this.listeners.toArray (new ChangeListener[this.listeners.size()]); - } - ChangeEvent event = new ChangeEvent (this); - for (int i=0; i<_listeners.length; i++) { - _listeners[i].stateChanged(event); + this.changeSupport.fireChange (); } } } Index: web/project/src/org/netbeans/modules/web/project/ui/ConfFilesNodeFactory.java =================================================================== RCS file: /cvs/web/project/src/org/netbeans/modules/web/project/ui/ConfFilesNodeFactory.java,v retrieving revision 1.1 diff -u -r1.1 ConfFilesNodeFactory.java --- web/project/src/org/netbeans/modules/web/project/ui/ConfFilesNodeFactory.java 7 Mar 2007 13:22:45 -0000 1.1 +++ web/project/src/org/netbeans/modules/web/project/ui/ConfFilesNodeFactory.java 19 Mar 2007 21:17:56 -0000 @@ -65,6 +65,7 @@ import org.openide.loaders.DataObjectNotFoundException; import org.openide.nodes.Children; import org.openide.nodes.Node; +import org.openide.util.ChangeSupport; import org.openide.util.HelpCtx; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -95,7 +96,7 @@ private static final String CONF_FILES = "confFiles"; //NOI18N private final WebProject project; - private final ArrayList listeners = new ArrayList(); + private final ChangeSupport changeSupport = new ChangeSupport(this); ConfFilesNodeList(WebProject proj) { project = proj; @@ -109,24 +110,12 @@ return result; } - public synchronized void addChangeListener(ChangeListener l) { - listeners.add(l); + public void addChangeListener(ChangeListener l) { + changeSupport.addChangeListener(l); } - public synchronized void removeChangeListener(ChangeListener l) { - listeners.remove(l); - } - - private void fireChange() { - ArrayList list = new ArrayList(); - synchronized (this) { - list.addAll(listeners); - } - Iterator it = list.iterator(); - while (it.hasNext()) { - ChangeListener elem = it.next(); - elem.stateChanged(new ChangeEvent( this )); - } + public void removeChangeListener(ChangeListener l) { + changeSupport.removeChangeListener(l); } public Node node(String key) { @@ -147,7 +136,7 @@ // The caller holds ProjectManager.mutex() read lock SwingUtilities.invokeLater(new Runnable() { public void run() { - fireChange(); + changeSupport.fireChange(); } }); } Index: web/project/src/org/netbeans/modules/web/project/ui/DocBaseNodeFactory.java =================================================================== RCS file: /cvs/web/project/src/org/netbeans/modules/web/project/ui/DocBaseNodeFactory.java,v retrieving revision 1.1 diff -u -r1.1 DocBaseNodeFactory.java --- web/project/src/org/netbeans/modules/web/project/ui/DocBaseNodeFactory.java 7 Mar 2007 13:22:44 -0000 1.1 +++ web/project/src/org/netbeans/modules/web/project/ui/DocBaseNodeFactory.java 19 Mar 2007 21:17:57 -0000 @@ -23,7 +23,6 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import javax.swing.SwingUtilities; import javax.swing.event.ChangeEvent; @@ -45,6 +44,7 @@ import org.openide.loaders.DataObject; import org.openide.nodes.FilterNode; import org.openide.nodes.Node; +import org.openide.util.ChangeSupport; import org.openide.util.NbBundle; import org.openide.util.Utilities; @@ -68,7 +68,7 @@ private static final String DOC_BASE = "docBase"; //NOI18N private final WebProject project; - private final ArrayList listeners = new ArrayList(); + private final ChangeSupport changeSupport = new ChangeSupport(this); private final PropertyEvaluator evaluator; private final UpdateHelper helper; @@ -87,24 +87,12 @@ return result; } - public synchronized void addChangeListener(ChangeListener l) { - listeners.add(l); + public void addChangeListener(ChangeListener l) { + changeSupport.addChangeListener(l); } - public synchronized void removeChangeListener(ChangeListener l) { - listeners.remove(l); - } - - private void fireChange() { - ArrayList list = new ArrayList(); - synchronized (this) { - list.addAll(listeners); - } - Iterator it = list.iterator(); - while (it.hasNext()) { - ChangeListener elem = it.next(); - elem.stateChanged(new ChangeEvent( this )); - } + public void removeChangeListener(ChangeListener l) { + changeSupport.removeChangeListener(l); } public Node node(String key) { @@ -125,7 +113,7 @@ // The caller holds ProjectManager.mutex() read lock SwingUtilities.invokeLater(new Runnable() { public void run() { - fireChange(); + changeSupport.fireChange(); } }); } Index: web/project/src/org/netbeans/modules/web/project/ui/LibrariesNodeFactory.java =================================================================== RCS file: /cvs/web/project/src/org/netbeans/modules/web/project/ui/LibrariesNodeFactory.java,v retrieving revision 1.1 diff -u -r1.1 LibrariesNodeFactory.java --- web/project/src/org/netbeans/modules/web/project/ui/LibrariesNodeFactory.java 7 Mar 2007 13:22:43 -0000 1.1 +++ web/project/src/org/netbeans/modules/web/project/ui/LibrariesNodeFactory.java 19 Mar 2007 21:17:57 -0000 @@ -25,11 +25,9 @@ import java.net.URI; import java.net.URL; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import javax.swing.Action; import javax.swing.SwingUtilities; -import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.netbeans.api.project.Project; import org.netbeans.modules.web.project.SourceRoots; @@ -42,6 +40,7 @@ import org.netbeans.spi.project.ui.support.NodeFactory; import org.netbeans.spi.project.ui.support.NodeList; import org.openide.nodes.Node; +import org.openide.util.ChangeSupport; import org.openide.util.NbBundle; /** @@ -66,7 +65,7 @@ private final SourceRoots testSources; private final WebProject project; - private final ArrayList listeners = new ArrayList(); + private final ChangeSupport changeSupport = new ChangeSupport(this); private final PropertyEvaluator evaluator; private final UpdateHelper helper; @@ -100,24 +99,12 @@ return result; } - public synchronized void addChangeListener(ChangeListener l) { - listeners.add(l); + public void addChangeListener(ChangeListener l) { + changeSupport.addChangeListener(l); } - public synchronized void removeChangeListener(ChangeListener l) { - listeners.remove(l); - } - - private void fireChange() { - ArrayList list = new ArrayList(); - synchronized (this) { - list.addAll(listeners); - } - Iterator it = list.iterator(); - while (it.hasNext()) { - ChangeListener elem = it.next(); - elem.stateChanged(new ChangeEvent( this )); - } + public void removeChangeListener(ChangeListener l) { + changeSupport.removeChangeListener(l); } public Node node(String key) { @@ -186,7 +173,7 @@ // The caller holds ProjectManager.mutex() read lock SwingUtilities.invokeLater(new Runnable() { public void run() { - fireChange(); + changeSupport.fireChange(); } }); } Index: web/project/src/org/netbeans/modules/web/project/ui/PlatformNode.java =================================================================== RCS file: /cvs/web/project/src/org/netbeans/modules/web/project/ui/PlatformNode.java,v retrieving revision 1.6 diff -u -r1.6 PlatformNode.java --- web/project/src/org/netbeans/modules/web/project/ui/PlatformNode.java 8 Dec 2006 13:05:06 -0000 1.6 +++ web/project/src/org/netbeans/modules/web/project/ui/PlatformNode.java 19 Mar 2007 21:17:57 -0000 @@ -54,6 +54,7 @@ import org.netbeans.api.project.SourceGroup; import org.netbeans.spi.project.support.ant.PropertyEvaluator; import org.netbeans.spi.java.project.support.ui.PackageView; +import org.openide.util.ChangeSupport; import org.openide.util.actions.SystemAction; import org.openide.util.lookup.Lookups; import org.openide.xml.XMLUtil; @@ -210,7 +211,7 @@ private final PropertyEvaluator evaluator; private final String platformPropName; private JavaPlatform platformCache; - private List/**/ listeners; + private final ChangeSupport changeSupport = new ChangeSupport(this); public PlatformProvider (PropertyEvaluator evaluator, String platformPropName) { this.evaluator = evaluator; @@ -243,38 +244,18 @@ return platformCache; } - public synchronized void addChangeListener (ChangeListener l) { - if (this.listeners == null) { - this.listeners = new ArrayList (); - } - this.listeners.add (l); + public void addChangeListener (ChangeListener l) { + changeSupport.addChangeListener(l); } - public synchronized void removeChangeListener (ChangeListener l) { - if (this.listeners == null) { - return; - } - this.listeners.remove(l); + public void removeChangeListener (ChangeListener l) { + changeSupport.removeChangeListener(l); } public void propertyChange(PropertyChangeEvent evt) { if (platformPropName.equals (evt.getPropertyName())) { platformCache = null; - this.fireChange (); - } - } - - private void fireChange () { - ChangeListener[] _listeners; - synchronized (this) { - if (this.listeners == null) { - return; - } - _listeners = (ChangeListener[]) this.listeners.toArray(new ChangeListener[listeners.size()]); - } - ChangeEvent event = new ChangeEvent (this); - for (int i=0; i< _listeners.length; i++) { - _listeners[i].stateChanged(event); + this.changeSupport.fireChange (); } } Index: web/project/src/org/netbeans/modules/web/project/ui/SetupDirNodeFactory.java =================================================================== RCS file: /cvs/web/project/src/org/netbeans/modules/web/project/ui/SetupDirNodeFactory.java,v retrieving revision 1.1 diff -u -r1.1 SetupDirNodeFactory.java --- web/project/src/org/netbeans/modules/web/project/ui/SetupDirNodeFactory.java 7 Mar 2007 13:22:42 -0000 1.1 +++ web/project/src/org/netbeans/modules/web/project/ui/SetupDirNodeFactory.java 19 Mar 2007 21:17:57 -0000 @@ -22,10 +22,8 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import javax.swing.SwingUtilities; -import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.netbeans.api.project.Project; import org.netbeans.modules.j2ee.spi.ejbjar.support.J2eeProjectView; @@ -33,6 +31,7 @@ import org.netbeans.spi.project.ui.support.NodeFactory; import org.netbeans.spi.project.ui.support.NodeList; import org.openide.nodes.Node; +import org.openide.util.ChangeSupport; /** * @@ -54,7 +53,7 @@ private static final String SETUP_DIR = "setupDir"; //NOI18N private final WebProject project; - private final ArrayList listeners = new ArrayList(); + private final ChangeSupport changeSupport = new ChangeSupport(this); SetupDirNodeList(WebProject proj) { project = proj; @@ -68,24 +67,12 @@ return result; } - public synchronized void addChangeListener(ChangeListener l) { - listeners.add(l); + public void addChangeListener(ChangeListener l) { + changeSupport.addChangeListener(l); } - public synchronized void removeChangeListener(ChangeListener l) { - listeners.remove(l); - } - - private void fireChange() { - ArrayList list = new ArrayList(); - synchronized (this) { - list.addAll(listeners); - } - Iterator it = list.iterator(); - while (it.hasNext()) { - ChangeListener elem = it.next(); - elem.stateChanged(new ChangeEvent( this )); - } + public void removeChangeListener(ChangeListener l) { + changeSupport.removeChangeListener(l); } public Node node(String key) { @@ -106,7 +93,7 @@ // The caller holds ProjectManager.mutex() read lock SwingUtilities.invokeLater(new Runnable() { public void run() { - fireChange(); + changeSupport.fireChange(); } }); } Index: web/project/src/org/netbeans/modules/web/project/ui/SourceNodeFactory.java =================================================================== RCS file: /cvs/web/project/src/org/netbeans/modules/web/project/ui/SourceNodeFactory.java,v retrieving revision 1.1 diff -u -r1.1 SourceNodeFactory.java --- web/project/src/org/netbeans/modules/web/project/ui/SourceNodeFactory.java 7 Mar 2007 13:22:42 -0000 1.1 +++ web/project/src/org/netbeans/modules/web/project/ui/SourceNodeFactory.java 19 Mar 2007 21:17:57 -0000 @@ -22,7 +22,6 @@ import java.awt.event.ActionEvent; import java.util.ArrayList; import java.util.Collections; -import java.util.Iterator; import java.util.List; import javax.swing.AbstractAction; import javax.swing.Action; @@ -42,6 +41,7 @@ import org.openide.filesystems.FileObject; import org.openide.nodes.FilterNode; import org.openide.nodes.Node; +import org.openide.util.ChangeSupport; import org.openide.util.NbBundle; /** @@ -62,7 +62,7 @@ private final WebProject project; - private final List listeners = new ArrayList(); + private final ChangeSupport changeSupport = new ChangeSupport(this); public SourcesNodeList(WebProject proj) { project = proj; @@ -82,24 +82,12 @@ return result; } - public synchronized void addChangeListener(ChangeListener l) { - listeners.add(l); + public void addChangeListener(ChangeListener l) { + changeSupport.addChangeListener(l); } - public synchronized void removeChangeListener(ChangeListener l) { - listeners.remove(l); - } - - private void fireChange() { - ArrayList list = new ArrayList(); - synchronized (this) { - list.addAll(listeners); - } - Iterator it = list.iterator(); - while (it.hasNext()) { - ChangeListener elem = it.next(); - elem.stateChanged(new ChangeEvent( this )); - } + public void removeChangeListener(ChangeListener l) { + changeSupport.removeChangeListener(l); } public Node node(SourceGroupKey key) { @@ -119,7 +107,7 @@ // The caller holds ProjectManager.mutex() read lock SwingUtilities.invokeLater(new Runnable() { public void run() { - fireChange(); + changeSupport.fireChange(); } }); } Index: web/project/src/org/netbeans/modules/web/project/ui/WebLogicalViewProvider.java =================================================================== RCS file: /cvs/web/project/src/org/netbeans/modules/web/project/ui/WebLogicalViewProvider.java,v retrieving revision 1.1 diff -u -r1.1 WebLogicalViewProvider.java --- web/project/src/org/netbeans/modules/web/project/ui/WebLogicalViewProvider.java 7 Mar 2007 13:22:44 -0000 1.1 +++ web/project/src/org/netbeans/modules/web/project/ui/WebLogicalViewProvider.java 19 Mar 2007 21:17:57 -0000 @@ -92,6 +92,7 @@ import org.netbeans.modules.web.project.WebProject; import org.netbeans.modules.web.project.ui.customizer.WebProjectProperties; import org.netbeans.spi.project.ui.support.NodeFactorySupport; +import org.openide.util.ChangeSupport; /** * Support for creating logical views. @@ -105,7 +106,7 @@ private final UpdateHelper helper; private final PropertyEvaluator evaluator; private final ReferenceHelper resolver; - private List changeListeners; + private final ChangeSupport changeSupport = new ChangeSupport(this); public WebLogicalViewProvider(WebProject project, UpdateHelper helper, PropertyEvaluator evaluator, ReferenceHelper resolver) { this.project = project; @@ -200,18 +201,12 @@ return NodeOp.findChild(configFiles, nodeName); } - public synchronized void addChangeListener (ChangeListener l) { - if (this.changeListeners == null) { - this.changeListeners = new ArrayList(); - } - this.changeListeners.add (l); + public void addChangeListener (ChangeListener l) { + changeSupport.addChangeListener(l); } - public synchronized void removeChangeListener (ChangeListener l) { - if (this.changeListeners == null) { - return; - } - this.changeListeners.remove (l); + public void removeChangeListener (ChangeListener l) { + changeSupport.removeChangeListener(l); } /** @@ -220,18 +215,7 @@ * */ public void testBroken () { - ChangeListener[] _listeners; - synchronized (this) { - if (this.changeListeners == null) { - return; - } - _listeners = changeListeners.toArray(new ChangeListener[changeListeners.size()]); - - } - ChangeEvent event = new ChangeEvent(this); - for (ChangeListener l : _listeners) { - l.stateChanged(event); - } + changeSupport.fireChange(); } // Private innerclasses ---------------------------------------------------- Index: web/project/src/org/netbeans/modules/web/project/ui/wizards/ImportWebProjectWizardIterator.java =================================================================== RCS file: /cvs/web/project/src/org/netbeans/modules/web/project/ui/wizards/ImportWebProjectWizardIterator.java,v retrieving revision 1.50 diff -u -r1.50 ImportWebProjectWizardIterator.java --- web/project/src/org/netbeans/modules/web/project/ui/wizards/ImportWebProjectWizardIterator.java 8 Dec 2006 13:04:56 -0000 1.50 +++ web/project/src/org/netbeans/modules/web/project/ui/wizards/ImportWebProjectWizardIterator.java 19 Mar 2007 21:17:57 -0000 @@ -41,6 +41,7 @@ import org.openide.WizardValidationException; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; +import org.openide.util.ChangeSupport; import org.openide.util.HelpCtx; import org.openide.util.NbBundle; @@ -281,26 +282,15 @@ return panel.valid(wizardDescriptor); } - private final Set/**/ listeners = new HashSet(1); + private final ChangeSupport changeSupport = new ChangeSupport(this); public void addChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.add(l); - } + changeSupport.addChangeListener(l); } public void removeChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.remove(l); - } + changeSupport.removeChangeListener(l); } protected void fireChangeEvent() { - Iterator it; - synchronized (listeners) { - it = new HashSet(listeners).iterator(); - } - ChangeEvent ev = new ChangeEvent(this); - while (it.hasNext()) { - ((ChangeListener)it.next()).stateChanged(ev); - } + changeSupport.fireChange(); } public void readSettings (Object settings) { wizardDescriptor = (WizardDescriptor) settings; Index: web/project/src/org/netbeans/modules/web/project/ui/wizards/PanelConfigureProject.java =================================================================== RCS file: /cvs/web/project/src/org/netbeans/modules/web/project/ui/wizards/PanelConfigureProject.java,v retrieving revision 1.10 diff -u -r1.10 PanelConfigureProject.java --- web/project/src/org/netbeans/modules/web/project/ui/wizards/PanelConfigureProject.java 8 Dec 2006 13:04:55 -0000 1.10 +++ web/project/src/org/netbeans/modules/web/project/ui/wizards/PanelConfigureProject.java 19 Mar 2007 21:17:57 -0000 @@ -30,6 +30,7 @@ import org.openide.WizardDescriptor; import org.openide.WizardValidationException; +import org.openide.util.ChangeSupport; import org.openide.util.HelpCtx; /** @@ -66,26 +67,15 @@ return component.valid(wizardDescriptor); } - private final Set/**/ listeners = new HashSet(1); + private final ChangeSupport changeSupport = new ChangeSupport(this); public void addChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.add(l); - } + changeSupport.addChangeListener(l); } public void removeChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.remove(l); - } + changeSupport.removeChangeListener(l); } protected void fireChangeEvent() { - Iterator it; - synchronized (listeners) { - it = new HashSet(listeners).iterator(); - } - ChangeEvent ev = new ChangeEvent(this); - while (it.hasNext()) { - ((ChangeListener)it.next()).stateChanged(ev); - } + changeSupport.fireChange(); } public void readSettings(Object settings) { Index: web/project/src/org/netbeans/modules/web/project/ui/wizards/PanelSourceFolders.java =================================================================== RCS file: /cvs/web/project/src/org/netbeans/modules/web/project/ui/wizards/PanelSourceFolders.java,v retrieving revision 1.17 diff -u -r1.17 PanelSourceFolders.java --- web/project/src/org/netbeans/modules/web/project/ui/wizards/PanelSourceFolders.java 16 Feb 2007 16:13:33 -0000 1.17 +++ web/project/src/org/netbeans/modules/web/project/ui/wizards/PanelSourceFolders.java 19 Mar 2007 21:17:57 -0000 @@ -41,6 +41,7 @@ import org.openide.WizardValidationException; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; +import org.openide.util.ChangeSupport; import org.openide.util.HelpCtx; import org.openide.util.NbBundle; @@ -461,22 +462,16 @@ static class Panel implements WizardDescriptor.ValidatingPanel { - private ArrayList listeners; + private final ChangeSupport changeSupport = new ChangeSupport(this); private PanelSourceFolders component; private WizardDescriptor settings; - public synchronized void removeChangeListener(ChangeListener l) { - if (this.listeners == null) { - return; - } - this.listeners.remove(l); + public void removeChangeListener(ChangeListener l) { + changeSupport.removeChangeListener(l); } public void addChangeListener(ChangeListener l) { - if (this.listeners == null) { - this.listeners = new ArrayList (); - } - this.listeners.add (l); + changeSupport.addChangeListener(l); } public void readSettings(Object settings) { @@ -514,17 +509,7 @@ } private void fireChangeEvent () { - Iterator it = null; - synchronized (this) { - if (this.listeners == null) { - return; - } - it = ((ArrayList)this.listeners.clone()).iterator(); - } - ChangeEvent event = new ChangeEvent (this); - while (it.hasNext()) { - ((ChangeListener)it.next()).stateChanged(event); - } + changeSupport.fireChange(); } } Index: web/project/src/org/netbeans/modules/web/project/ui/wizards/PanelSupportedFrameworks.java =================================================================== RCS file: /cvs/web/project/src/org/netbeans/modules/web/project/ui/wizards/PanelSupportedFrameworks.java,v retrieving revision 1.5 diff -u -r1.5 PanelSupportedFrameworks.java --- web/project/src/org/netbeans/modules/web/project/ui/wizards/PanelSupportedFrameworks.java 8 Dec 2006 13:04:54 -0000 1.5 +++ web/project/src/org/netbeans/modules/web/project/ui/wizards/PanelSupportedFrameworks.java 19 Mar 2007 21:17:57 -0000 @@ -20,16 +20,13 @@ package org.netbeans.modules.web.project.ui.wizards; import java.awt.Component; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; import javax.swing.JComponent; -import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.openide.WizardDescriptor; import org.openide.WizardValidationException; +import org.openide.util.ChangeSupport; import org.openide.util.HelpCtx; /** @@ -68,27 +65,16 @@ return component.valid(wizardDescriptor); } - private final Set/**/ listeners = new HashSet(1); + private final ChangeSupport changeSupport = new ChangeSupport(this); public void addChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.add(l); - } + changeSupport.addChangeListener(l); } public void removeChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.remove(l); - } + changeSupport.removeChangeListener(l); } protected void fireChangeEvent() { - Iterator it; - synchronized (listeners) { - it = new HashSet(listeners).iterator(); - } - ChangeEvent ev = new ChangeEvent(this); - while (it.hasNext()) { - ((ChangeListener)it.next()).stateChanged(ev); - } + changeSupport.fireChange(); } public void readSettings(Object settings) {