Index: java/j2seproject/nbproject/project.xml
===================================================================
RCS file: /cvs/java/j2seproject/nbproject/project.xml,v
retrieving revision 1.41
diff -u -r1.41 project.xml
--- java/j2seproject/nbproject/project.xml 17 Mar 2007 12:26:29 -0000 1.41
+++ java/j2seproject/nbproject/project.xml 19 Mar 2007 21:16:52 -0000
@@ -234,7 +234,7 @@
- 7.3
+ 7.8
Index: java/j2seproject/src/org/netbeans/modules/java/j2seproject/J2SESources.java
===================================================================
RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/J2SESources.java,v
retrieving revision 1.18
diff -u -r1.18 J2SESources.java
--- java/j2seproject/src/org/netbeans/modules/java/j2seproject/J2SESources.java 2 Mar 2007 03:34:36 -0000 1.18
+++ java/j2seproject/src/org/netbeans/modules/java/j2seproject/J2SESources.java 19 Mar 2007 21:16: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.java.j2seproject.ui.customizer.J2SEProjectProperties;
@@ -35,6 +33,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 J2SEProject.
@@ -54,7 +53,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);
J2SESources(AntProjectHelper helper, PropertyEvaluator evaluator,
SourceRoots sourceRoots, SourceRoots testRoots) {
@@ -124,35 +123,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 (ChangeListener l : _listeners) {
- l.stateChanged(ev);
- }
+ changeSupport.fireChange();
}
public void propertyChange(PropertyChangeEvent evt) {
Index: java/j2seproject/src/org/netbeans/modules/java/j2seproject/queries/BinaryForSourceQueryImpl.java
===================================================================
RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/queries/BinaryForSourceQueryImpl.java,v
retrieving revision 1.1
diff -u -r1.1 BinaryForSourceQueryImpl.java
--- java/j2seproject/src/org/netbeans/modules/java/j2seproject/queries/BinaryForSourceQueryImpl.java 9 Feb 2007 10:50:39 -0000 1.1
+++ java/j2seproject/src/org/netbeans/modules/java/j2seproject/queries/BinaryForSourceQueryImpl.java 19 Mar 2007 21:16:52 -0000
@@ -25,9 +25,7 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
-import java.util.concurrent.CopyOnWriteArrayList;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.netbeans.api.java.queries.BinaryForSourceQuery;
@@ -37,6 +35,7 @@
import org.netbeans.spi.java.queries.BinaryForSourceQueryImplementation;
import org.netbeans.spi.project.support.ant.AntProjectHelper;
import org.netbeans.spi.project.support.ant.PropertyEvaluator;
+import org.openide.util.ChangeSupport;
import org.openide.util.Exceptions;
/**
@@ -89,7 +88,7 @@
class R implements BinaryForSourceQuery.Result, PropertyChangeListener {
private final String propName;
- private final List listeners = new CopyOnWriteArrayList();
+ private final ChangeSupport changeSupport = new ChangeSupport(this);
R (final String propName) {
assert propName != null;
@@ -114,19 +113,16 @@
public void addChangeListener(ChangeListener l) {
assert l != null;
- this.listeners.add (l);
+ changeSupport.addChangeListener(l);
}
public void removeChangeListener(ChangeListener l) {
assert l != null;
- this.listeners.remove (l);
+ changeSupport.removeChangeListener(l);
}
public void propertyChange(PropertyChangeEvent event) {
- ChangeEvent ce = new ChangeEvent (this);
- for (ChangeListener l : listeners) {
- l.stateChanged(ce);
- }
+ changeSupport.fireChange();
}
}
Index: java/j2seproject/src/org/netbeans/modules/java/j2seproject/queries/CompiledSourceForBinaryQuery.java
===================================================================
RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/queries/CompiledSourceForBinaryQuery.java,v
retrieving revision 1.14
diff -u -r1.14 CompiledSourceForBinaryQuery.java
--- java/j2seproject/src/org/netbeans/modules/java/j2seproject/queries/CompiledSourceForBinaryQuery.java 26 Oct 2006 20:35:59 -0000 1.14
+++ java/j2seproject/src/org/netbeans/modules/java/j2seproject/queries/CompiledSourceForBinaryQuery.java 19 Mar 2007 21:16:52 -0000
@@ -39,6 +39,7 @@
import org.netbeans.spi.project.support.ant.PropertyEvaluator;
import org.netbeans.modules.java.j2seproject.SourceRoots;
import org.openide.filesystems.URLMapper;
+import org.openide.util.ChangeSupport;
/**
* Finds sources corresponding to binaries in a J2SE project.
@@ -114,7 +115,7 @@
private class Result implements SourceForBinaryQuery.Result, PropertyChangeListener {
- private List listeners;
+ private final ChangeSupport changeSupport = new ChangeSupport(this);
private SourceRoots sourceRoots;
public Result (SourceRoots sourceRoots) {
@@ -159,37 +160,17 @@
return result.toArray(new FileObject[result.size()]);
}
- 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() {
- ChangeListener[] ls;
- synchronized (this) {
- if (this.listeners == null) {
- return;
- }
- ls = listeners.toArray(new ChangeListener[listeners.size()]);
- }
- ChangeEvent event = new ChangeEvent(this);
- for (ChangeListener l : ls) {
- l.stateChanged(event);
+ this.changeSupport.fireChange ();
}
}
Index: java/j2seproject/src/org/netbeans/modules/java/j2seproject/queries/JavadocForBinaryQueryImpl.java
===================================================================
RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/queries/JavadocForBinaryQueryImpl.java,v
retrieving revision 1.8
diff -u -r1.8 JavadocForBinaryQueryImpl.java
--- java/j2seproject/src/org/netbeans/modules/java/j2seproject/queries/JavadocForBinaryQueryImpl.java 30 Jun 2006 20:07:40 -0000 1.8
+++ java/j2seproject/src/org/netbeans/modules/java/j2seproject/queries/JavadocForBinaryQueryImpl.java 19 Mar 2007 21:16:52 -0000
@@ -22,7 +22,6 @@
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;
@@ -30,10 +29,10 @@
import java.net.URL;
import java.net.MalformedURLException;
import javax.swing.event.ChangeListener;
-import javax.xml.transform.Result;
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;
/**
@@ -56,7 +55,7 @@
class R implements JavadocForBinaryQuery.Result, PropertyChangeListener {
- private List listeners;
+ private final ChangeSupport changeSupport = new ChangeSupport(this);
private URL[] result;
public R () {
@@ -86,19 +85,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) {
@@ -106,21 +99,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: java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java
===================================================================
RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java,v
retrieving revision 1.23
diff -u -r1.23 J2SELogicalViewProvider.java
--- java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java 29 Nov 2006 23:17:20 -0000 1.23
+++ java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SELogicalViewProvider.java 19 Mar 2007 21:16:52 -0000
@@ -78,6 +78,7 @@
import org.openide.modules.SpecificationVersion;
import org.openide.nodes.AbstractNode;
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;
@@ -101,7 +102,7 @@
private final PropertyEvaluator evaluator;
private final SubprojectProvider spp;
private final ReferenceHelper resolver;
- private List changeListeners;
+ private final ChangeSupport changeSupport = new ChangeSupport(this);
public J2SELogicalViewProvider(J2SEProject project, UpdateHelper helper, PropertyEvaluator evaluator, SubprojectProvider spp, ReferenceHelper resolver) {
this.project = project;
@@ -157,18 +158,12 @@
- 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);
}
/**
@@ -177,17 +172,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 static Lookup createLookup( Project project ) {
Index: java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/LibrariesNodeFactory.java
===================================================================
RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/LibrariesNodeFactory.java,v
retrieving revision 1.2
diff -u -r1.2 LibrariesNodeFactory.java
--- java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/LibrariesNodeFactory.java 18 Sep 2006 19:45:11 -0000 1.2
+++ java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/LibrariesNodeFactory.java 19 Mar 2007 21:16:52 -0000
@@ -42,6 +42,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 +67,7 @@
private SourceRoots testSources;
private J2SEProject project;
- private ArrayList listeners = new ArrayList();
+ private final ChangeSupport changeSupport = new ChangeSupport(this);
private PropertyEvaluator evaluator;
private UpdateHelper helper;
@@ -100,24 +101,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) {
@@ -172,7 +161,7 @@
// The caller holds ProjectManager.mutex() read lock
SwingUtilities.invokeLater(new Runnable() {
public void run() {
- fireChange();
+ changeSupport.fireChange();
}
});
}
Index: java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/PlatformNode.java
===================================================================
RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/PlatformNode.java,v
retrieving revision 1.10
diff -u -r1.10 PlatformNode.java
--- java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/PlatformNode.java 30 Jun 2006 20:07:42 -0000 1.10
+++ java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/PlatformNode.java 19 Mar 2007 21:16:52 -0000
@@ -43,7 +43,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;
@@ -56,6 +55,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;
@@ -212,7 +212,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;
@@ -245,38 +245,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: java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/SourceNodeFactory.java
===================================================================
RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/SourceNodeFactory.java,v
retrieving revision 1.2
diff -u -r1.2 SourceNodeFactory.java
--- java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/SourceNodeFactory.java 18 Sep 2006 19:45:11 -0000 1.2
+++ java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/SourceNodeFactory.java 19 Mar 2007 21:16:52 -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;
@@ -37,12 +36,12 @@
import org.netbeans.modules.java.j2seproject.J2SEProject;
import org.netbeans.modules.java.j2seproject.ui.customizer.CustomizerProviderImpl;
import org.netbeans.spi.java.project.support.ui.PackageView;
-import org.netbeans.spi.project.ui.support.NodeFactorySupport;
import org.netbeans.spi.project.ui.support.NodeFactory;
import org.netbeans.spi.project.ui.support.NodeList;
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;
/**
@@ -63,7 +62,7 @@
private J2SEProject project;
- private List listeners = new ArrayList();
+ private final ChangeSupport changeSupport = new ChangeSupport(this);
public SourcesNodeList(J2SEProject proj) {
project = proj;
@@ -83,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) {
@@ -120,7 +107,7 @@
// The caller holds ProjectManager.mutex() read lock
SwingUtilities.invokeLater(new Runnable() {
public void run() {
- fireChange();
+ changeSupport.fireChange();
}
});
}
Index: java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/wizards/PanelConfigureProject.java
===================================================================
RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/wizards/PanelConfigureProject.java,v
retrieving revision 1.11
diff -u -r1.11 PanelConfigureProject.java
--- java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/wizards/PanelConfigureProject.java 29 Nov 2006 20:25:06 -0000 1.11
+++ java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/wizards/PanelConfigureProject.java 19 Mar 2007 21:16:52 -0000
@@ -20,13 +20,12 @@
package org.netbeans.modules.java.j2seproject.ui.wizards;
import java.awt.Component;
-import java.util.HashSet;
-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;
/**
@@ -59,26 +58,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() {
- ChangeListener[] _listeners;
- synchronized (listeners) {
- _listeners = listeners.toArray(new ChangeListener[listeners.size()]);
- }
- ChangeEvent ev = new ChangeEvent(this);
- for (ChangeListener l : _listeners) {
- l.stateChanged(ev);
- }
+ changeSupport.fireChange();
}
public void readSettings(Object settings) {
Index: java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/wizards/PanelSourceFolders.java
===================================================================
RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/wizards/PanelSourceFolders.java,v
retrieving revision 1.47
diff -u -r1.47 PanelSourceFolders.java
--- java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/wizards/PanelSourceFolders.java 2 Mar 2007 03:34:41 -0000 1.47
+++ java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/wizards/PanelSourceFolders.java 19 Mar 2007 21:16:52 -0000
@@ -26,7 +26,6 @@
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
-import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.netbeans.spi.project.ui.templates.support.Templates;
import org.openide.DialogDisplayer;
@@ -35,6 +34,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;
@@ -268,22 +268,16 @@
static class Panel implements WizardDescriptor.ValidatingPanel, WizardDescriptor.FinishablePanel {
- private List 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) {
@@ -321,17 +315,7 @@
}
private void fireChangeEvent () {
- ChangeListener[] _listeners;
- synchronized (this) {
- if (listeners == null) {
- return;
- }
- _listeners = listeners.toArray(new ChangeListener[listeners.size()]);
- }
- ChangeEvent event = new ChangeEvent (this);
- for (ChangeListener l : _listeners) {
- l.stateChanged(event);
- }
+ changeSupport.fireChange();
}
public boolean isFinishPanel() {