Index: j2ee/earproject/nbproject/project.xml =================================================================== RCS file: /cvs/j2ee/earproject/nbproject/project.xml,v retrieving revision 1.23 diff -u -r1.23 project.xml --- j2ee/earproject/nbproject/project.xml 8 Mar 2007 10:34:23 -0000 1.23 +++ j2ee/earproject/nbproject/project.xml 19 Mar 2007 21:14:52 -0000 @@ -285,7 +285,7 @@ - 6.2 + 7.8 Index: j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/BrokenProjectSupport.java =================================================================== RCS file: /cvs/j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/BrokenProjectSupport.java,v retrieving revision 1.2 diff -u -r1.2 BrokenProjectSupport.java --- j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/BrokenProjectSupport.java 12 Oct 2006 14:50:46 -0000 1.2 +++ j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/BrokenProjectSupport.java 19 Mar 2007 21:14:52 -0000 @@ -22,10 +22,7 @@ import java.io.IOException; import java.util.Collection; import java.util.HashSet; -import java.util.Iterator; import java.util.List; -import java.util.Set; -import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.netbeans.api.project.ProjectManager; import org.netbeans.api.project.ant.AntArtifact; @@ -38,6 +35,7 @@ import org.openide.filesystems.FileEvent; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileRenameEvent; +import org.openide.util.ChangeSupport; /** * TODO comments the whole class. @@ -48,13 +46,12 @@ public final class BrokenProjectSupport { private final EarProject project; - private final Set listeners; + private final ChangeSupport changeSupport = new ChangeSupport(this); private final FileChangeListener artifactListener; private final Collection watchedArtifacts = new HashSet(); BrokenProjectSupport(final EarProject project) { this.project = project; - this.listeners = new HashSet(1); this.artifactListener = new ArtifactListener(); } @@ -90,26 +87,15 @@ } 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); } private void fireChangeEvent() { - Iterator it; - synchronized (listeners) { - it = new HashSet(listeners).iterator(); - } - ChangeEvent ev = new ChangeEvent(this); - while (it.hasNext()) { - it.next().stateChanged(ev); - } + changeSupport.fireChange(); } /** Index: j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/EarSources.java =================================================================== RCS file: /cvs/j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/EarSources.java,v retrieving revision 1.4 diff -u -r1.4 EarSources.java --- j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/EarSources.java 12 Oct 2006 14:50:47 -0000 1.4 +++ j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/EarSources.java 19 Mar 2007 21:14:52 -0000 @@ -21,8 +21,6 @@ import java.beans.PropertyChangeListener; import java.beans.PropertyChangeEvent; -import java.util.ArrayList; -import java.util.List; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.netbeans.modules.j2ee.earproject.ui.customizer.EarProjectProperties; @@ -34,13 +32,14 @@ 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; class EarSources implements Sources, PropertyChangeListener, ChangeListener { private final AntProjectHelper helper; private final PropertyEvaluator evaluator; private Sources delegate; - private final List listeners = new ArrayList(); + private final ChangeSupport changeSupport = new ChangeSupport(this); private SourcesHelper sourcesHelper; EarSources(AntProjectHelper helper, PropertyEvaluator evaluator) { @@ -76,35 +75,21 @@ } 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 (this) { if (delegate != null) { delegate.removeChangeListener(this); delegate = null; } } - synchronized (listeners) { - if (listeners.isEmpty()) { - return; - } - _listeners = 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: j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/ArchiveViews.java =================================================================== RCS file: /cvs/j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/ArchiveViews.java,v retrieving revision 1.5 diff -u -r1.5 ArchiveViews.java --- j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/ArchiveViews.java 12 Oct 2006 14:50:48 -0000 1.5 +++ j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/ArchiveViews.java 19 Mar 2007 21:14:52 -0000 @@ -26,7 +26,6 @@ import javax.swing.Action; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import javax.swing.event.EventListenerList; import org.netbeans.api.project.Project; import org.netbeans.api.queries.VisibilityQuery; import org.netbeans.modules.j2ee.earproject.ui.customizer.EarProjectProperties; @@ -47,9 +46,9 @@ import org.openide.nodes.Children; 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; -import org.openide.util.WeakListeners; import org.openide.util.actions.SystemAction; class ArchiveViews { @@ -152,7 +151,7 @@ private static final class VisibilityQueryDataFilter implements ChangeListener, ChangeableDataFilter { - EventListenerList ell = new EventListenerList(); + final ChangeSupport changeSupport = new ChangeSupport (this ); public VisibilityQueryDataFilter() { VisibilityQuery.getDefault().addChangeListener( this ); @@ -164,24 +163,15 @@ } public void stateChanged( ChangeEvent e) { - Object[] listeners = ell.getListenerList(); - ChangeEvent event = null; - for (int i = listeners.length-2; i>=0; i-=2) { - if (listeners[i] == ChangeListener.class) { - if ( event == null) { - event = new ChangeEvent( this ); - } - ((ChangeListener)listeners[i+1]).stateChanged( event ); - } - } + changeSupport.fireChange(); } public void addChangeListener( ChangeListener listener ) { - ell.add( ChangeListener.class, listener ); + changeSupport.addChangeListener( listener ); } public void removeChangeListener( ChangeListener listener ) { - ell.remove( ChangeListener.class, listener ); + changeSupport.removeChangeListener( listener ); } } Index: j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/wizards/PanelConfigureProject.java =================================================================== RCS file: /cvs/j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/wizards/PanelConfigureProject.java,v retrieving revision 1.3 diff -u -r1.3 PanelConfigureProject.java --- j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/wizards/PanelConfigureProject.java 12 Oct 2006 14:50:55 -0000 1.3 +++ j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/wizards/PanelConfigureProject.java 19 Mar 2007 21:14:52 -0000 @@ -20,17 +20,14 @@ package org.netbeans.modules.j2ee.earproject.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.util.HelpCtx; import java.util.ResourceBundle; +import org.openide.util.ChangeSupport; /** * Panel just asking for basic info. @@ -44,7 +41,7 @@ private ResourceBundle customBundle; boolean importStyle = false; private HelpCtx helpId; - private final Set listeners = new HashSet(1); + private final ChangeSupport changeSupport = new ChangeSupport(this); /** Create the wizard panel descriptor. */ public PanelConfigureProject(String namePropIndex, ResourceBundle customBundle, @@ -81,24 +78,13 @@ } public final void addChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.add(l); - } + changeSupport.addChangeListener(l); } public final void removeChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.remove(l); - } + changeSupport.removeChangeListener(l); } protected final void fireChangeEvent() { - Iterator it; - synchronized (listeners) { - it = new HashSet(listeners).iterator(); - } - ChangeEvent ev = new ChangeEvent(this); - while (it.hasNext()) { - it.next().stateChanged(ev); - } + changeSupport.fireChange(); } public void readSettings(Object settings) { Index: j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/wizards/PanelModuleDetection.java =================================================================== RCS file: /cvs/j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/wizards/PanelModuleDetection.java,v retrieving revision 1.3 diff -u -r1.3 PanelModuleDetection.java --- j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/wizards/PanelModuleDetection.java 27 Feb 2007 08:21:33 -0000 1.3 +++ j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/wizards/PanelModuleDetection.java 19 Mar 2007 21:14:52 -0000 @@ -20,13 +20,11 @@ package org.netbeans.modules.j2ee.earproject.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.util.ChangeSupport; import org.openide.util.HelpCtx; /** @@ -38,7 +36,7 @@ private WizardDescriptor wizardDescriptor; private PanelModuleDetectionVisual component; - private final Set listeners = new HashSet(1); + private final ChangeSupport changeSupport = new ChangeSupport(this); public boolean isFinishPanel() { return true; @@ -62,26 +60,11 @@ } public void addChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.add(l); - } + changeSupport.addChangeListener(l); } public void removeChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.remove(l); - } - } - - protected void fireChangeEvent() { - Iterator it; - synchronized (listeners) { - it = new HashSet(listeners).iterator(); - } - ChangeEvent ev = new ChangeEvent(this); - while (it.hasNext()) { - it.next().stateChanged(ev); - } + changeSupport.removeChangeListener(l); } public void readSettings(Object settings) { @@ -107,6 +90,6 @@ } public void stateChanged(ChangeEvent arg0) { - fireChangeEvent(); + changeSupport.fireChange(); } } Index: j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/wizards/PanelModuleDetectionVisual.java =================================================================== RCS file: /cvs/j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/wizards/PanelModuleDetectionVisual.java,v retrieving revision 1.3 diff -u -r1.3 PanelModuleDetectionVisual.java --- j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/wizards/PanelModuleDetectionVisual.java 27 Feb 2007 08:21:33 -0000 1.3 +++ j2ee/earproject/src/org/netbeans/modules/j2ee/earproject/ui/wizards/PanelModuleDetectionVisual.java 19 Mar 2007 21:14:52 -0000 @@ -25,10 +25,7 @@ import java.io.File; import java.util.EventObject; import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; import java.util.Map; -import java.util.Set; import java.util.Vector; import javax.swing.JComboBox; import javax.swing.JFileChooser; @@ -48,6 +45,7 @@ import org.openide.WizardDescriptor; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; +import org.openide.util.ChangeSupport; import org.openide.util.NbBundle; /** @@ -58,7 +56,7 @@ private final Vector> modules = new Vector>(); private static final int REL_PATH_INDEX = 0; private static final int TYPE_INDEX = 1; - private final Set listeners = new HashSet(1); + private final ChangeSupport changeSupport = new ChangeSupport(this); // Location of Enterprise Application to be imported, chosen on the previous panel. private File eaLocation; @@ -73,26 +71,11 @@ } public void addChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.add(l); - } + changeSupport.addChangeListener(l); } public void removeChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.remove(l); - } - } - - protected void fireChangeEvent() { - Iterator it; - synchronized (listeners) { - it = new HashSet(listeners).iterator(); - } - ChangeEvent ev = new ChangeEvent(this); - while (it.hasNext()) { - it.next().stateChanged(ev); - } + changeSupport.removeChangeListener(l); } private void initModuleTable() { @@ -186,7 +169,7 @@ row.add(relPath); row.add(getModuleType(relPath).getDescription()); modules.add(row); - fireChangeEvent(); + changeSupport.fireChange(); } private static final String getMessage(String bundleKey) { @@ -269,7 +252,7 @@ if (row != -1) { modules.remove(row); getModuleTableModel().fireTableRowsDeleted(row, row); - fireChangeEvent(); + changeSupport.fireChange(); } }//GEN-LAST:event_removeModuleButtonActionPerformed Index: j2ee/ejbjarproject/nbproject/project.xml =================================================================== RCS file: /cvs/j2ee/ejbjarproject/nbproject/project.xml,v retrieving revision 1.33 diff -u -r1.33 project.xml --- j2ee/ejbjarproject/nbproject/project.xml 27 Feb 2007 10:18:05 -0000 1.33 +++ j2ee/ejbjarproject/nbproject/project.xml 19 Mar 2007 21:15:23 -0000 @@ -374,7 +374,7 @@ - 7.3 + 7.8 Index: j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/EjbJarSources.java =================================================================== RCS file: /cvs/j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/EjbJarSources.java,v retrieving revision 1.9 diff -u -r1.9 EjbJarSources.java --- j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/EjbJarSources.java 30 Jun 2006 20:38:40 -0000 1.9 +++ j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/EjbJarSources.java 19 Mar 2007 21:15:23 -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; import org.netbeans.modules.j2ee.ejbjarproject.ui.EjbJarLogicalViewProvider; @@ -38,6 +36,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; public class EjbJarSources implements Sources, PropertyChangeListener, ChangeListener { @@ -53,7 +52,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; EjbJarSources(AntProjectHelper helper, PropertyEvaluator evaluator, @@ -179,35 +178,21 @@ } 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 (this) { if (delegate != null) { delegate.removeChangeListener(this); delegate = null; } } - synchronized (listeners) { - 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: j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/queries/JavadocForBinaryQueryImpl.java =================================================================== RCS file: /cvs/j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/queries/JavadocForBinaryQueryImpl.java,v retrieving revision 1.2 diff -u -r1.2 JavadocForBinaryQueryImpl.java --- j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/queries/JavadocForBinaryQueryImpl.java 30 Jun 2006 20:38:43 -0000 1.2 +++ j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/queries/JavadocForBinaryQueryImpl.java 19 Mar 2007 21:15:23 -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.modules.j2ee.ejbjarproject.ui.customizer.EjbJarProjectProperties; import org.netbeans.spi.project.support.ant.AntProjectHelper; import org.openide.ErrorManager; @@ -34,6 +31,7 @@ import org.netbeans.api.java.queries.JavadocForBinaryQuery; 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: j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/EjbJarLogicalViewProvider.java =================================================================== RCS file: /cvs/j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/EjbJarLogicalViewProvider.java,v retrieving revision 1.22 diff -u -r1.22 EjbJarLogicalViewProvider.java --- j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/EjbJarLogicalViewProvider.java 12 Oct 2006 14:51:47 -0000 1.22 +++ j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/EjbJarLogicalViewProvider.java 19 Mar 2007 21:15:23 -0000 @@ -106,7 +106,7 @@ private final PropertyEvaluator evaluator; private final SubprojectProvider spp; private final ReferenceHelper resolver; - private List changeListeners; + private final ChangeSupport changeSupport = new ChangeSupport(this); public EjbJarLogicalViewProvider(EjbJarProject project, UpdateHelper updateHelper, PropertyEvaluator evaluator, SubprojectProvider spp, ReferenceHelper resolver) { this.project = project; @@ -168,18 +168,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); } /** @@ -188,18 +182,7 @@ * */ public void testBroken () { - ChangeListener[] _listeners; - synchronized (this) { - if (this.changeListeners == null) { - return; - } - _listeners = (ChangeListener[]) this.changeListeners.toArray( - new ChangeListener[this.changeListeners.size()]); - } - ChangeEvent event = new ChangeEvent (this); - for (int i=0; i<_listeners.length; i++) { - _listeners[i].stateChanged(event); - } + changeSupport.fireChange(); } private static Lookup createLookup( Project project ) { Index: j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/logicalview/libraries/PlatformNode.java =================================================================== RCS file: /cvs/j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/logicalview/libraries/PlatformNode.java,v retrieving revision 1.5 diff -u -r1.5 PlatformNode.java --- j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/logicalview/libraries/PlatformNode.java 30 Jun 2006 20:38:48 -0000 1.5 +++ j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/logicalview/libraries/PlatformNode.java 19 Mar 2007 21:15:23 -0000 @@ -42,7 +42,6 @@ import org.openide.filesystems.FileObject; import org.openide.filesystems.FileStateInvalidException; import org.openide.filesystems.FileUtil; -import org.openide.filesystems.URLMapper; import org.openide.nodes.Children; import org.openide.nodes.AbstractNode; import org.openide.nodes.Node; @@ -55,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; @@ -211,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; @@ -244,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: j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/ImportLocation.java =================================================================== RCS file: /cvs/j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/ImportLocation.java,v retrieving revision 1.6 diff -u -r1.6 ImportLocation.java --- j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/ImportLocation.java 30 Jun 2006 20:38:49 -0000 1.6 +++ j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/ImportLocation.java 19 Mar 2007 21:15:23 -0000 @@ -20,14 +20,12 @@ package org.netbeans.modules.j2ee.ejbjarproject.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; @@ -55,26 +53,15 @@ return component.valid( wizardDescriptor ); } - private final Set/**/ listeners = new HashSet(1); + private final ChangeSupport changeSupport = new ChangeSupport(this); public final void addChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.add(l); - } + changeSupport.addChangeListener(l); } public final void removeChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.remove(l); - } + changeSupport.removeChangeListener(l); } protected final 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: j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/PanelConfigureProject.java =================================================================== RCS file: /cvs/j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/PanelConfigureProject.java,v retrieving revision 1.3 diff -u -r1.3 PanelConfigureProject.java --- j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/PanelConfigureProject.java 30 Jun 2006 20:38:50 -0000 1.3 +++ j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/PanelConfigureProject.java 19 Mar 2007 21:15:23 -0000 @@ -20,15 +20,12 @@ package org.netbeans.modules.j2ee.ejbjarproject.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.util.ChangeSupport; import org.openide.util.HelpCtx; /** @@ -65,26 +62,15 @@ return component.valid(wizardDescriptor); } - private final Set/**/ listeners = new HashSet(1); + private final ChangeSupport changeSupport = new ChangeSupport(this); public final void addChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.add(l); - } + changeSupport.addChangeListener(l); } public final void removeChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.remove(l); - } + changeSupport.removeChangeListener(l); } protected final 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: j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/PanelConfigureProjectApp.java =================================================================== RCS file: /cvs/j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/PanelConfigureProjectApp.java,v retrieving revision 1.2 diff -u -r1.2 PanelConfigureProjectApp.java --- j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/PanelConfigureProjectApp.java 30 Jun 2006 20:38:50 -0000 1.2 +++ j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/PanelConfigureProjectApp.java 19 Mar 2007 21:15:23 -0000 @@ -20,12 +20,8 @@ package org.netbeans.modules.j2ee.ejbjarproject.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; @@ -64,26 +60,9 @@ return component.valid(wizardDescriptor); } - private final Set/**/ listeners = new HashSet(1); public final void addChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.add(l); - } } public final void removeChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.remove(l); - } - } - protected final void fireChangeEvent() { - Iterator it; - synchronized (listeners) { - it = new HashSet(listeners).iterator(); - } - ChangeEvent ev = new ChangeEvent(this); - while (it.hasNext()) { - ((ChangeListener)it.next()).stateChanged(ev); - } } public void readSettings(Object settings) { Index: j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/PanelSourceFolders.java =================================================================== RCS file: /cvs/j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/PanelSourceFolders.java,v retrieving revision 1.17 diff -u -r1.17 PanelSourceFolders.java --- j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/PanelSourceFolders.java 7 Jan 2007 14:56:14 -0000 1.17 +++ j2ee/ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/wizards/PanelSourceFolders.java 19 Mar 2007 21:15:24 -0000 @@ -39,6 +39,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; @@ -441,22 +442,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) { @@ -494,17 +489,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: j2ee/persistence/nbproject/project.xml =================================================================== RCS file: /cvs/j2ee/persistence/nbproject/project.xml,v retrieving revision 1.21 diff -u -r1.21 project.xml --- j2ee/persistence/nbproject/project.xml 28 Feb 2007 11:09:18 -0000 1.21 +++ j2ee/persistence/nbproject/project.xml 19 Mar 2007 21:15:58 -0000 @@ -262,7 +262,7 @@ - 7.4 + 7.8 Index: j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/EntityClosure.java =================================================================== RCS file: /cvs/j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/EntityClosure.java,v retrieving revision 1.3 diff -u -r1.3 EntityClosure.java --- j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/EntityClosure.java 4 Dec 2006 15:24:57 -0000 1.3 +++ j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/EntityClosure.java 19 Mar 2007 21:15:58 -0000 @@ -35,7 +35,7 @@ //import org.netbeans.jmi.javamodel.Type; //import org.netbeans.modules.j2ee.common.JMIUtils; //import org.netbeans.modules.j2ee.persistence.dd.orm.model_1_0.Entity; -//import org.netbeans.modules.j2ee.persistence.wizard.fromdb.ChangeSupport; +//import org.openide.util.ChangeSupport; // ///** // * Index: j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/PersistenceClientEntitySelection.java =================================================================== RCS file: /cvs/j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/PersistenceClientEntitySelection.java,v retrieving revision 1.3 diff -u -r1.3 PersistenceClientEntitySelection.java --- j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/PersistenceClientEntitySelection.java 17 Jan 2007 13:07:00 -0000 1.3 +++ j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/PersistenceClientEntitySelection.java 19 Mar 2007 21:15:58 -0000 @@ -20,14 +20,12 @@ package org.netbeans.modules.j2ee.persistence.wizard; 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.util.ChangeSupport; import org.openide.util.HelpCtx; /** @@ -69,26 +67,16 @@ return component.valid(wizardDescriptor); } - private final Set/**/ listeners = new HashSet(1); + private final ChangeSupport changeSupport = new ChangeSupport(this); public final void addChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.add(l); - } + changeSupport.addChangeListener(l); } public final void removeChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.remove(l); - } + changeSupport.removeChangeListener(l); } protected final void fireChangeEvent(ChangeEvent ev) { - Iterator it; - synchronized (listeners) { - it = new HashSet(listeners).iterator(); - } - while (it.hasNext()) { - ((ChangeListener)it.next()).stateChanged(ev); - } + changeSupport.fireChange(); } public void readSettings(Object settings) { Index: j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/PersistenceClientEntitySelectionVisual.java =================================================================== RCS file: /cvs/j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/PersistenceClientEntitySelectionVisual.java,v retrieving revision 1.5 diff -u -r1.5 PersistenceClientEntitySelectionVisual.java --- j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/PersistenceClientEntitySelectionVisual.java 23 Feb 2007 09:39:30 -0000 1.5 +++ j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/PersistenceClientEntitySelectionVisual.java 19 Mar 2007 21:15:58 -0000 @@ -47,11 +47,11 @@ import org.netbeans.modules.j2ee.persistence.dd.persistence.model_1_0.Persistence; import org.netbeans.modules.j2ee.persistence.dd.persistence.model_1_0.PersistenceUnit; import org.netbeans.modules.j2ee.persistence.provider.ProviderUtil; -import org.netbeans.modules.j2ee.persistence.wizard.fromdb.ChangeSupport; import org.netbeans.spi.project.ui.templates.support.Templates; import org.openide.ErrorManager; import org.openide.WizardDescriptor; import org.openide.filesystems.FileObject; +import org.openide.util.ChangeSupport; import org.openide.util.NbBundle; import org.openide.util.RequestProcessor; Index: j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/dao/EjbFacadeVisualPanel2.java =================================================================== RCS file: /cvs/j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/dao/EjbFacadeVisualPanel2.java,v retrieving revision 1.3 diff -u -r1.3 EjbFacadeVisualPanel2.java --- j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/dao/EjbFacadeVisualPanel2.java 8 Jan 2007 07:34:20 -0000 1.3 +++ j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/dao/EjbFacadeVisualPanel2.java 19 Mar 2007 21:15:58 -0000 @@ -11,7 +11,6 @@ import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectUtils; import org.netbeans.api.project.SourceGroup; -import org.netbeans.modules.j2ee.persistence.wizard.fromdb.ChangeSupport; import org.netbeans.modules.j2ee.persistence.wizard.fromdb.SourceGroupSupport; import org.netbeans.modules.j2ee.persistence.wizard.fromdb.SourceGroupUISupport; import org.netbeans.spi.java.project.support.ui.PackageView; @@ -19,6 +18,7 @@ import org.openide.ErrorManager; import org.openide.WizardDescriptor; import org.openide.filesystems.FileObject; +import org.openide.util.ChangeSupport; import org.openide.util.NbBundle; public final class EjbFacadeVisualPanel2 extends JPanel implements DocumentListener { Index: j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/dao/EjbFacadeWizardPanel2.java =================================================================== RCS file: /cvs/j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/dao/EjbFacadeWizardPanel2.java,v retrieving revision 1.3 diff -u -r1.3 EjbFacadeWizardPanel2.java --- j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/dao/EjbFacadeWizardPanel2.java 13 Nov 2006 10:20:56 -0000 1.3 +++ j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/dao/EjbFacadeWizardPanel2.java 19 Mar 2007 21:15:58 -0000 @@ -1,14 +1,11 @@ package org.netbeans.modules.j2ee.persistence.wizard.dao; import java.awt.Component; - -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.netbeans.api.project.Project; import org.openide.WizardDescriptor; +import org.openide.util.ChangeSupport; import org.openide.util.HelpCtx; import org.openide.util.NbBundle; @@ -21,7 +18,7 @@ private EjbFacadeVisualPanel2 component; private WizardDescriptor wizardDescriptor; private Project project; - private final Set listeners = new HashSet(1); + private final ChangeSupport changeSupport = new ChangeSupport(this); public EjbFacadeWizardPanel2(Project project, WizardDescriptor wizardDescriptor) { this.project = project; @@ -58,34 +55,19 @@ } public final void addChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.add(l); - } + changeSupport.addChangeListener(l); } public final void removeChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.remove(l); - } + changeSupport.removeChangeListener(l); } public String getPackage() { return component.getPackage(); } - protected final void fireChangeEvent() { - Iterator it; - synchronized (listeners) { - it = new HashSet(listeners).iterator(); - } - ChangeEvent ev = new ChangeEvent(this); - while (it.hasNext()) { - it.next().stateChanged(ev); - } - } - public void stateChanged(ChangeEvent e) { - fireChangeEvent(); + changeSupport.fireChange(); } public void readSettings(Object settings) { Index: j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/ChangeSupport.java =================================================================== RCS file: j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/ChangeSupport.java diff -N j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/ChangeSupport.java --- j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/ChangeSupport.java 12 Oct 2006 14:52:37 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,74 +0,0 @@ -/* - * The contents of this file are subject to the terms of the Common Development - * and Distribution License (the License). You may not use this file except in - * compliance with the License. - * - * You can obtain a copy of the License at http://www.netbeans.org/cddl.html - * or http://www.netbeans.org/cddl.txt. - * - * When distributing Covered Code, include this CDDL Header Notice in each file - * and include the License file at http://www.netbeans.org/cddl.txt. - * If applicable, add the following below the CDDL Header, with the fields - * enclosed by brackets [] replaced by your own identifying information: - * "Portions Copyrighted [year] [name of copyright owner]" - * - * The Original Software is NetBeans. The Initial Developer of the Original - * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun - * Microsystems, Inc. All Rights Reserved. - */ - -package org.netbeans.modules.j2ee.persistence.wizard.fromdb; - -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -/** - * A simple equivalent of {@link java.beans.PropertyChangeSupport} for - * {@link ChangeListener}'s. - * - * @author Andrei Badea - */ -public class ChangeSupport { - - // XXX consider moving to j2ee/utilities - - private final Object source; - private List listeners = Collections.emptyList(); - - public ChangeSupport(Object source) { - this.source = source; - } - - public synchronized void addChangeListener(ChangeListener listener) { - List newListeners = new LinkedList(listeners); - newListeners.add(listener); - listeners = newListeners; - } - - public synchronized void removeChangeListener(ChangeListener listener) { - List newListeners = new LinkedList(listeners); - newListeners.remove(listener); - listeners = newListeners; - } - - public void fireChange() { - fireChange(new ChangeEvent(source)); - } - - public void fireChange(ChangeEvent event) { - List listenersCopy; - synchronized (this) { - listenersCopy = listeners; - } - for (ChangeListener listener : listenersCopy) { - listener.stateChanged(event); - } - } - - public synchronized int getListenerCount() { - return listeners.size(); - } -} Index: j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/DatabaseTablesPanel.java =================================================================== RCS file: /cvs/j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/DatabaseTablesPanel.java,v retrieving revision 1.8 diff -u -r1.8 DatabaseTablesPanel.java --- j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/DatabaseTablesPanel.java 6 Mar 2007 13:47:45 -0000 1.8 +++ j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/DatabaseTablesPanel.java 19 Mar 2007 21:15:59 -0000 @@ -55,6 +55,7 @@ import org.openide.WizardDescriptor; 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; import org.openide.util.RequestProcessor; @@ -911,7 +912,7 @@ } public void stateChanged(ChangeEvent event) { - changeSupport.fireChange(event); + changeSupport.fireChange(); } private void setErrorMessage(String errorMessage) { Index: j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/EntityClassesPanel.java =================================================================== RCS file: /cvs/j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/EntityClassesPanel.java,v retrieving revision 1.6 diff -u -r1.6 EntityClassesPanel.java --- j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/EntityClassesPanel.java 6 Mar 2007 13:47:45 -0000 1.6 +++ j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/EntityClassesPanel.java 19 Mar 2007 21:15:59 -0000 @@ -47,6 +47,7 @@ import org.openide.WizardDescriptor; import org.openide.awt.Mnemonics; import org.openide.filesystems.FileObject; +import org.openide.util.ChangeSupport; import org.openide.util.HelpCtx; import org.openide.util.NbBundle; @@ -566,7 +567,7 @@ } public void stateChanged(ChangeEvent event) { - changeSupport.fireChange(event); + changeSupport.fireChange(); } private void setErrorMessage(String errorMessage) { Index: j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/SelectedTables.java =================================================================== RCS file: /cvs/j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/SelectedTables.java,v retrieving revision 1.2 diff -u -r1.2 SelectedTables.java --- j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/SelectedTables.java 12 Oct 2006 14:52:40 -0000 1.2 +++ j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/SelectedTables.java 19 Mar 2007 21:15:59 -0000 @@ -35,6 +35,7 @@ import org.netbeans.modules.j2ee.persistence.dd.JavaPersistenceQLKeywords; import org.netbeans.modules.j2ee.persistence.entitygenerator.EntityMember; import org.openide.filesystems.FileObject; +import org.openide.util.ChangeSupport; import org.openide.util.NbBundle; import org.openide.util.Utilities; Index: j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/TableClosure.java =================================================================== RCS file: /cvs/j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/TableClosure.java,v retrieving revision 1.3 diff -u -r1.3 TableClosure.java --- j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/TableClosure.java 17 Jan 2007 13:07:01 -0000 1.3 +++ j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/TableClosure.java 19 Mar 2007 21:15:59 -0000 @@ -26,6 +26,7 @@ import java.util.List; import java.util.Set; import javax.swing.event.ChangeListener; +import org.openide.util.ChangeSupport; /** * Index: j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/unit/PersistenceUnitWizardDescriptor.java =================================================================== RCS file: /cvs/j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/unit/PersistenceUnitWizardDescriptor.java,v retrieving revision 1.3 diff -u -r1.3 PersistenceUnitWizardDescriptor.java --- j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/unit/PersistenceUnitWizardDescriptor.java 10 Jan 2007 12:23:28 -0000 1.3 +++ j2ee/persistence/src/org/netbeans/modules/j2ee/persistence/wizard/unit/PersistenceUnitWizardDescriptor.java 19 Mar 2007 21:15:59 -0000 @@ -21,10 +21,6 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.netbeans.api.db.explorer.DatabaseConnection; @@ -37,6 +33,7 @@ import org.netbeans.modules.j2ee.persistence.wizard.entity.EntityWizardDescriptor; import org.netbeans.spi.project.ui.templates.support.Templates; import org.openide.WizardDescriptor; +import org.openide.util.ChangeSupport; import org.openide.util.HelpCtx; import org.openide.util.NbBundle; @@ -49,7 +46,7 @@ private PersistenceUnitWizardPanelDS p; private PersistenceUnitWizardPanelJdbc jdbcPanel; private PersistenceUnitWizardPanel panel; - private List changeListeners = new ArrayList(); + private final ChangeSupport changeSupport = new ChangeSupport(this); private WizardDescriptor wizardDescriptor; private Project project; private boolean isContainerManaged; @@ -61,7 +58,7 @@ } public void addChangeListener(javax.swing.event.ChangeListener l) { - changeListeners.add(l); + changeSupport.addChangeListener(l); } public java.awt.Component getComponent() { @@ -124,7 +121,7 @@ } public void removeChangeListener(javax.swing.event.ChangeListener l) { - changeListeners.remove(l); + changeSupport.removeChangeListener(l); } public void storeSettings(Object settings) { @@ -134,19 +131,8 @@ return isValid(); } - protected final void fireChangeEvent() { - Iterator it; - synchronized (changeListeners) { - it = new HashSet(changeListeners).iterator(); - } - ChangeEvent ev = new ChangeEvent(this); - while (it.hasNext()) { - ((ChangeListener)it.next()).stateChanged(ev); - } - } - public void stateChanged(ChangeEvent e) { - fireChangeEvent(); + changeSupport.fireChange(); } String getPersistenceUnitName() {