Index: projects/projectapi/nbproject/project.xml
===================================================================
RCS file: /cvs/projects/projectapi/nbproject/project.xml,v
retrieving revision 1.17
diff -u -r1.17 project.xml
--- projects/projectapi/nbproject/project.xml 17 Mar 2007 12:26:27 -0000 1.17
+++ projects/projectapi/nbproject/project.xml 19 Mar 2007 21:17:31 -0000
@@ -61,7 +61,7 @@
- 7.1
+ 7.8
Index: projects/projectapi/src/org/netbeans/spi/project/support/LookupProviderSupport.java
===================================================================
RCS file: /cvs/projects/projectapi/src/org/netbeans/spi/project/support/LookupProviderSupport.java,v
retrieving revision 1.6
diff -u -r1.6 LookupProviderSupport.java
--- projects/projectapi/src/org/netbeans/spi/project/support/LookupProviderSupport.java 1 Mar 2007 13:33:47 -0000 1.6
+++ projects/projectapi/src/org/netbeans/spi/project/support/LookupProviderSupport.java 19 Mar 2007 21:17:31 -0000
@@ -36,6 +36,7 @@
import org.openide.filesystems.Repository;
import org.openide.loaders.DataFolder;
import org.openide.loaders.FolderLookup;
+import org.openide.util.ChangeSupport;
import org.openide.util.Lookup;
import org.openide.util.LookupEvent;
import org.openide.util.LookupListener;
@@ -199,7 +200,7 @@
}
private static class SourcesImpl implements Sources, ChangeListener, LookupListener {
- private List listeners = new ArrayList();
+ private final ChangeSupport changeSupport = new ChangeSupport(this);
private Lookup.Result delegates;
private Collection currentDelegates = new ArrayList();
@@ -223,7 +224,7 @@
}
srcs.addLookupListener(this);
delegates = srcs;
- fireChange();
+ changeSupport.fireChange();
}
public SourceGroup[] getSourceGroups(String type) {
@@ -238,26 +239,16 @@
return result.toArray(new SourceGroup[result.size()]);
}
- public synchronized void addChangeListener(ChangeListener listener) {
- listeners.add(listener);
+ public void addChangeListener(ChangeListener listener) {
+ changeSupport.addChangeListener(listener);
}
- public synchronized void removeChangeListener(ChangeListener listener) {
- listeners.remove(listener);
+ public void removeChangeListener(ChangeListener listener) {
+ changeSupport.removeChangeListener(listener);
}
public void stateChanged(ChangeEvent e) {
- fireChange();
- }
-
- private void fireChange() {
- ArrayList list = new ArrayList();
- synchronized (this) {
- list.addAll(listeners);
- }
- for (ChangeListener listener : list) {
- listener.stateChanged(new ChangeEvent(this));
- }
+ changeSupport.fireChange();
}
public void resultChanged(LookupEvent ev) {
@@ -271,7 +262,7 @@
ns.addChangeListener(this);
currentDelegates.add(ns);
}
- fireChange();
+ changeSupport.fireChange();
}
}
Index: projects/projectapi/test/unit/src/org/netbeans/spi/project/support/LookupProviderSupportTest.java
===================================================================
RCS file: /cvs/projects/projectapi/test/unit/src/org/netbeans/spi/project/support/LookupProviderSupportTest.java,v
retrieving revision 1.3
diff -u -r1.3 LookupProviderSupportTest.java
--- projects/projectapi/test/unit/src/org/netbeans/spi/project/support/LookupProviderSupportTest.java 19 Oct 2006 15:43:15 -0000 1.3
+++ projects/projectapi/test/unit/src/org/netbeans/spi/project/support/LookupProviderSupportTest.java 19 Mar 2007 21:17:31 -0000
@@ -232,25 +232,15 @@
private static class SourcesImpl implements Sources {
public HashMap grpMap = new HashMap();
- private List listeners = new ArrayList();
-
public SourceGroup[] getSourceGroups(String type) {
return grpMap.get(type);
}
public void addChangeListener(ChangeListener listener) {
- listeners.add(listener);
}
public void removeChangeListener(ChangeListener listener) {
- listeners.remove(listener);
- }
-
- public void fireChange() {
- for (ChangeListener listener : listeners) {
- listener.stateChanged(new ChangeEvent(this));
- }
}
}
Index: projects/projectui/nbproject/project.xml
===================================================================
RCS file: /cvs/projects/projectui/nbproject/project.xml,v
retrieving revision 1.32
diff -u -r1.32 project.xml
--- projects/projectui/nbproject/project.xml 14 Nov 2006 23:41:40 -0000 1.32
+++ projects/projectui/nbproject/project.xml 19 Mar 2007 21:17:31 -0000
@@ -180,7 +180,7 @@
- 7.4
+ 7.8
Index: projects/projectui/src/org/netbeans/modules/project/ui/NewFileWizard.java
===================================================================
RCS file: /cvs/projects/projectui/src/org/netbeans/modules/project/ui/NewFileWizard.java,v
retrieving revision 1.17
diff -u -r1.17 NewFileWizard.java
--- projects/projectui/src/org/netbeans/modules/project/ui/NewFileWizard.java 30 Jun 2006 21:27:19 -0000 1.17
+++ projects/projectui/src/org/netbeans/modules/project/ui/NewFileWizard.java 19 Mar 2007 21:17:31 -0000
@@ -144,7 +144,7 @@
// /** The template chooser panel (initially null). */
// private WizardDescriptor.Panel templateChooser = null;
// /** Change listeners. */
-// private final List/**/ listeners = new ArrayList();
+// private final ChangeSupport changeSupport = new ChangeSupport(this);
// /** Currently used wizard. */
// private TemplateWizard wiz = null;
//
@@ -223,19 +223,11 @@
// }
//
// public void addChangeListener(ChangeListener l) {
-// listeners.add(l);
+// changeSupport.addChangeListener(l);
// }
//
// public void removeChangeListener(ChangeListener l) {
-// listeners.remove(l);
-// }
-//
-// private void fireChange() {
-// ChangeEvent e = new ChangeEvent(this);
-// Iterator it = listeners.iterator();
-// while (it.hasNext()) {
-// ((ChangeListener)it.next()).stateChanged(e);
-// }
+// changeSupport.removeChangeListener(l);
// }
//
// public void setDelegate(InstantiatingIterator nue) {
@@ -252,11 +244,11 @@
// nue.addChangeListener(this);
// }
// delegate = nue;
-// fireChange();
+// changeSupport.fireChange();
// }
//
// public void stateChanged(ChangeEvent e) {
-// fireChange();
+// changeSupport.fireChange();
// }
//
// private static InstantiatingIterator findTemplateWizardIterator(FileObject template, Project p) {
Index: projects/projectui/src/org/netbeans/modules/project/ui/PhysicalView.java
===================================================================
RCS file: /cvs/projects/projectui/src/org/netbeans/modules/project/ui/PhysicalView.java,v
retrieving revision 1.18
diff -u -r1.18 PhysicalView.java
--- projects/projectui/src/org/netbeans/modules/project/ui/PhysicalView.java 28 Dec 2006 13:55:22 -0000 1.18
+++ projects/projectui/src/org/netbeans/modules/project/ui/PhysicalView.java 19 Mar 2007 21:17:31 -0000
@@ -28,7 +28,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.project.ProjectUtils;
import org.netbeans.api.project.ProjectInformation;
@@ -48,6 +47,7 @@
import org.openide.nodes.Node;
import org.openide.nodes.NodeNotFoundException;
import org.openide.nodes.NodeOp;
+import org.openide.util.ChangeSupport;
import org.openide.util.NbBundle;
import org.openide.util.Lookup;
import org.openide.util.WeakListeners;
@@ -118,7 +118,7 @@
static final class VisibilityQueryDataFilter implements ChangeListener, ChangeableDataFilter {
- EventListenerList ell = new EventListenerList();
+ private final ChangeSupport changeSupport = new ChangeSupport( this );
public VisibilityQueryDataFilter() {
VisibilityQuery.getDefault().addChangeListener( this );
@@ -130,24 +130,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: projects/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanel.java
===================================================================
RCS file: /cvs/projects/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanel.java,v
retrieving revision 1.20
diff -u -r1.20 SimpleTargetChooserPanel.java
--- projects/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanel.java 13 Jul 2006 08:04:01 -0000 1.20
+++ projects/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanel.java 19 Mar 2007 21:17:31 -0000
@@ -22,7 +22,6 @@
import java.awt.Component;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
@@ -32,6 +31,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;
@@ -41,7 +41,7 @@
*/
final class SimpleTargetChooserPanel implements WizardDescriptor.Panel, ChangeListener {
- private final List listeners = new ArrayList();
+ private final ChangeSupport changeSupport = new ChangeSupport(this);
private SimpleTargetChooserPanelGUI gui;
private Project project;
@@ -99,23 +99,12 @@
return errorMessage == null;
}
- 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() {
- ChangeEvent e = new ChangeEvent(this);
- List templist;
- synchronized (this) {
- templist = new ArrayList (listeners);
- }
- for (ChangeListener l: templist) {
- l.stateChanged(e);
- }
+ public void removeChangeListener(ChangeListener l) {
+ changeSupport.removeChangeListener(l);
}
public void readSettings( Object settings ) {
@@ -172,7 +161,7 @@
}
public void stateChanged(ChangeEvent e) {
- fireChange();
+ changeSupport.fireChange();
}
private FileObject getTargetFolderFromGUI () {
Index: projects/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanelGUI.java
===================================================================
RCS file: /cvs/projects/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanelGUI.java,v
retrieving revision 1.31
diff -u -r1.31 SimpleTargetChooserPanelGUI.java
--- projects/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanelGUI.java 25 Jan 2007 08:49:43 -0000 1.31
+++ projects/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanelGUI.java 19 Mar 2007 21:17:32 -0000
@@ -24,7 +24,6 @@
import java.io.File;
import java.text.MessageFormat;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JLabel;
@@ -37,12 +36,12 @@
import org.netbeans.api.project.ProjectUtils;
import org.netbeans.api.project.SourceGroup;
import org.netbeans.api.project.Sources;
-import org.netbeans.spi.project.support.GenericSources;
import org.openide.awt.Mnemonics;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.FileUtil;
import org.openide.loaders.DataObject;
import org.openide.loaders.DataObjectNotFoundException;
+import org.openide.util.ChangeSupport;
import org.openide.util.NbBundle;
/**
@@ -61,7 +60,7 @@
private Project project;
private String expectedExtension;
- private final List listeners = new ArrayList();
+ private final ChangeSupport changeSupport = new ChangeSupport(this);
private SourceGroup[] folders;
private boolean isFolder;
@@ -185,25 +184,14 @@
return PREF_DIM;
}
- 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);
+ public void removeChangeListener(ChangeListener l) {
+ changeSupport.removeChangeListener(l);
}
- private void fireChange() {
- ChangeEvent e = new ChangeEvent(this);
- List templist;
- synchronized (this) {
- templist = new ArrayList (listeners);
- }
- for (ChangeListener l: templist) {
- l.stateChanged(e);
- }
- }
-
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
@@ -399,7 +387,7 @@
fileTextField.setText( createdFileName.replace( '/', File.separatorChar ) ); // NOI18N
- fireChange();
+ changeSupport.fireChange();
}
Index: projects/projectui/src/org/netbeans/modules/project/ui/TemplateChooserPanel.java
===================================================================
RCS file: /cvs/projects/projectui/src/org/netbeans/modules/project/ui/TemplateChooserPanel.java,v
retrieving revision 1.13
diff -u -r1.13 TemplateChooserPanel.java
--- projects/projectui/src/org/netbeans/modules/project/ui/TemplateChooserPanel.java 23 Dec 2006 16:02:46 -0000 1.13
+++ projects/projectui/src/org/netbeans/modules/project/ui/TemplateChooserPanel.java 19 Mar 2007 21:17:32 -0000
@@ -20,8 +20,6 @@
package org.netbeans.modules.project.ui;
import java.awt.Component;
-import java.util.ArrayList;
-import java.util.List;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.netbeans.api.project.Project;
@@ -32,6 +30,7 @@
import org.openide.loaders.DataObject;
import org.openide.loaders.DataObjectNotFoundException;
import org.openide.loaders.TemplateWizard;
+import org.openide.util.ChangeSupport;
import org.openide.util.HelpCtx;
import org.openide.util.NbBundle;
@@ -45,7 +44,7 @@
private static String lastCategory = null;
private static String lastTemplate = null;
- private final List listeners = new ArrayList();
+ private final ChangeSupport changeSupport = new ChangeSupport(this);
private TemplateChooserPanelGUI gui;
private Project project;
@@ -73,23 +72,12 @@
return gui != null && gui.getTemplate() != null;
}
- 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() {
- ChangeEvent e = new ChangeEvent(this);
- List templist;
- synchronized (this) {
- templist = new ArrayList (listeners);
- }
- for (ChangeListener l: templist) {
- l.stateChanged(e);
- }
+ public void removeChangeListener(ChangeListener l) {
+ changeSupport.removeChangeListener(l);
}
public void readSettings(Object settings) {
@@ -148,7 +136,7 @@
setDelegate(null);
}
*/
- fireChange();
+ changeSupport.fireChange();
}
Index: projects/projectui/src/org/netbeans/modules/project/ui/TemplateChooserPanelGUI.java
===================================================================
RCS file: /cvs/projects/projectui/src/org/netbeans/modules/project/ui/TemplateChooserPanelGUI.java,v
retrieving revision 1.42
diff -u -r1.42 TemplateChooserPanelGUI.java
--- projects/projectui/src/org/netbeans/modules/project/ui/TemplateChooserPanelGUI.java 25 Jan 2007 08:49:46 -0000 1.42
+++ projects/projectui/src/org/netbeans/modules/project/ui/TemplateChooserPanelGUI.java 19 Mar 2007 21:17:32 -0000
@@ -32,7 +32,6 @@
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
-import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.plaf.UIResource;
import org.netbeans.api.project.Project;
@@ -47,6 +46,7 @@
import org.openide.nodes.FilterNode;
import org.openide.nodes.Node;
import org.openide.util.AsyncGUIJob;
+import org.openide.util.ChangeSupport;
import org.openide.util.NbBundle;
import org.openide.util.Utilities;
@@ -64,7 +64,7 @@
private static final java.awt.Dimension PREF_DIM = new java.awt.Dimension (500, 340);
// private final String[] recommendedTypes = null;
- private final List listeners = new ArrayList();
+ private final ChangeSupport changeSupport = new ChangeSupport(this);
//Templates folder root
private FileObject templatesFolder;
@@ -125,23 +125,16 @@
}
- 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);
+ public void removeChangeListener(ChangeListener l) {
+ changeSupport.removeChangeListener(l);
}
private void fireChange() {
- ChangeEvent e = new ChangeEvent(this);
- List templist;
- synchronized (this) {
- templist = new ArrayList (listeners);
- }
- for (ChangeListener l: templist) {
- l.stateChanged(e);
- }
+ changeSupport.fireChange();
}
Index: projects/projectui/src/org/netbeans/modules/project/ui/TemplatesPanel.java
===================================================================
RCS file: /cvs/projects/projectui/src/org/netbeans/modules/project/ui/TemplatesPanel.java,v
retrieving revision 1.23
diff -u -r1.23 TemplatesPanel.java
--- projects/projectui/src/org/netbeans/modules/project/ui/TemplatesPanel.java 25 Jan 2007 08:49:44 -0000 1.23
+++ projects/projectui/src/org/netbeans/modules/project/ui/TemplatesPanel.java 19 Mar 2007 21:17:32 -0000
@@ -44,7 +44,7 @@
*/
public class TemplatesPanel implements WizardDescriptor.Panel {
- private ArrayList listeners;
+ private final ChangeSupport changeSupport = new ChangeSupport(this);
private TemplatesPanelGUI panel;
private WarmupJob warmUp;
private boolean warmUpActive;
@@ -128,18 +128,12 @@
}
}
- 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 boolean isValid() {
@@ -303,17 +297,7 @@
}
public void fireChange() {
- Iterator it = null;
- synchronized (this) {
- if (listeners == null) {
- return;
- }
- it = ((ArrayList)listeners.clone()).iterator();
- }
- ChangeEvent event = new ChangeEvent (this);
- while (it.hasNext ()) {
- ((ChangeListener)it.next()).stateChanged(event);
- }
+ changeSupport.fireChange();
}
}
Index: projects/projectuiapi/nbproject/project.xml
===================================================================
RCS file: /cvs/projects/projectuiapi/nbproject/project.xml,v
retrieving revision 1.18
diff -u -r1.18 project.xml
--- projects/projectuiapi/nbproject/project.xml 9 Nov 2006 16:54:06 -0000 1.18
+++ projects/projectuiapi/nbproject/project.xml 19 Mar 2007 21:17:32 -0000
@@ -101,7 +101,7 @@
- 6.10
+ 7.8
Index: projects/projectuiapi/src/org/netbeans/modules/project/uiapi/DefaultProjectRenamePanel.java
===================================================================
RCS file: /cvs/projects/projectuiapi/src/org/netbeans/modules/project/uiapi/DefaultProjectRenamePanel.java,v
retrieving revision 1.10
diff -u -r1.10 DefaultProjectRenamePanel.java
--- projects/projectuiapi/src/org/netbeans/modules/project/uiapi/DefaultProjectRenamePanel.java 11 Jan 2007 13:05:23 -0000 1.10
+++ projects/projectuiapi/src/org/netbeans/modules/project/uiapi/DefaultProjectRenamePanel.java 19 Mar 2007 21:17:32 -0000
@@ -21,7 +21,6 @@
import java.awt.CardLayout;
import java.io.File;
import java.util.ArrayList;
-import java.util.List;
import javax.swing.UIManager;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
@@ -33,6 +32,7 @@
import org.netbeans.api.project.ProjectUtils;
import org.netbeans.modules.project.uiapi.DefaultProjectOperationsImplementation.InvalidablePanel;
import org.openide.filesystems.FileUtil;
+import org.openide.util.ChangeSupport;
/**
* @author Jan Lahoda
@@ -40,7 +40,7 @@
public class DefaultProjectRenamePanel extends javax.swing.JPanel implements DocumentListener, InvalidablePanel {
private Project project;
- private List listeners;
+ private final ChangeSupport changeSupport = new ChangeSupport(this);
private ProgressHandle handle;
/**
@@ -54,8 +54,6 @@
name = ProjectUtils.getInformation(project).getDisplayName();
}
- this.listeners = new ArrayList();
-
initComponents();
projectName.setText(name);
@@ -68,12 +66,12 @@
}
}
- 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);
+ public void removeChangeListener(ChangeListener l) {
+ changeSupport.removeChangeListener(l);
}
/** This method is called from within the constructor to
@@ -279,16 +277,7 @@
errorMessage.setText(newError);
if (changed) {
- ChangeListener[] listenersCopy;
-
- synchronized (this) {
- listenersCopy = listeners.toArray(new ChangeListener[0]);
- }
- ChangeEvent evt = new ChangeEvent(this);
-
- for (ChangeListener l : listenersCopy) {
- l.stateChanged(evt);
- }
+ changeSupport.fireChange();
}
}
Index: projects/projectuiapi/src/org/netbeans/modules/project/uiapi/ProjectCopyPanel.java
===================================================================
RCS file: /cvs/projects/projectuiapi/src/org/netbeans/modules/project/uiapi/ProjectCopyPanel.java,v
retrieving revision 1.13
diff -u -r1.13 ProjectCopyPanel.java
--- projects/projectuiapi/src/org/netbeans/modules/project/uiapi/ProjectCopyPanel.java 9 Feb 2007 12:32:16 -0000 1.13
+++ projects/projectuiapi/src/org/netbeans/modules/project/uiapi/ProjectCopyPanel.java 19 Mar 2007 21:17:32 -0000
@@ -20,11 +20,8 @@
import java.awt.CardLayout;
import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
import javax.swing.JFileChooser;
import javax.swing.UIManager;
-import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.DocumentListener;
import javax.swing.event.DocumentEvent;
@@ -35,6 +32,7 @@
import org.netbeans.api.project.ProjectUtils;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.FileUtil;
+import org.openide.util.ChangeSupport;
import org.openide.util.NbBundle;
/**
@@ -46,7 +44,7 @@
private boolean isMove;
private boolean invalid;
- private List listeners;
+ private final ChangeSupport changeSupport = new ChangeSupport(this);
private ProgressHandle handle;
/**
@@ -55,7 +53,6 @@
public ProjectCopyPanel(ProgressHandle handle, Project project, boolean isMove) {
this.project = project;
this.isMove = isMove;
- this.listeners = new ArrayList();
this.handle = handle;
@@ -74,12 +71,12 @@
}
}
- 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);
+ public void removeChangeListener(ChangeListener l) {
+ changeSupport.removeChangeListener(l);
}
/** This method is called from within the constructor to
@@ -399,16 +396,7 @@
errorMessage.setText(newError);
if (changed) {
- ChangeListener[] listenersCopy;
-
- synchronized (this) {
- listenersCopy = listeners.toArray(new ChangeListener[0]);
- }
- ChangeEvent evt = new ChangeEvent(this);
-
- for (ChangeListener l : listenersCopy) {
- l.stateChanged(evt);
- }
+ changeSupport.fireChange();
}
}
Index: projects/queries/nbproject/project.xml
===================================================================
RCS file: /cvs/projects/queries/nbproject/project.xml,v
retrieving revision 1.11
diff -u -r1.11 project.xml
--- projects/queries/nbproject/project.xml 14 Mar 2007 14:34:06 -0000 1.11
+++ projects/queries/nbproject/project.xml 19 Mar 2007 21:17:32 -0000
@@ -36,7 +36,7 @@
- 6.10
+ 7.8
Index: projects/queries/src/org/netbeans/api/queries/VisibilityQuery.java
===================================================================
RCS file: /cvs/projects/queries/src/org/netbeans/api/queries/VisibilityQuery.java,v
retrieving revision 1.6
diff -u -r1.6 VisibilityQuery.java
--- projects/queries/src/org/netbeans/api/queries/VisibilityQuery.java 30 Jun 2006 21:27:33 -0000 1.6
+++ projects/queries/src/org/netbeans/api/queries/VisibilityQuery.java 19 Mar 2007 21:17:32 -0000
@@ -19,16 +19,14 @@
package org.netbeans.api.queries;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashSet;
-import java.util.List;
import java.util.Set;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.netbeans.spi.queries.VisibilityQueryImplementation;
import org.openide.filesystems.FileObject;
+import org.openide.util.ChangeSupport;
import org.openide.util.Lookup;
import org.openide.util.LookupEvent;
import org.openide.util.LookupListener;
@@ -48,7 +46,7 @@
private final ResultListener resultListener = new ResultListener();
private final VqiChangedListener vqiListener = new VqiChangedListener ();
- private final List listeners = Collections.synchronizedList(new ArrayList());
+ private final ChangeSupport changeSupport = new ChangeSupport(this);
private Lookup.Result vqiResult = null;
private Set cachedVqiInstances = null;
@@ -88,7 +86,7 @@
* @param l a listener to add
*/
public void addChangeListener(ChangeListener l) {
- listeners.add(l);
+ changeSupport.addChangeListener(l);
}
/**
@@ -96,21 +94,7 @@
* @param l a listener to remove
*/
public void removeChangeListener(ChangeListener l) {
- listeners.remove(l);
- }
-
- private void fireChange() {
- ChangeListener[] _listeners;
- 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.removeChangeListener(l);
}
private synchronized Set getVqiInstances() {
@@ -145,13 +129,13 @@
private class ResultListener implements LookupListener {
public void resultChanged(LookupEvent ev) {
setupChangeListeners(cachedVqiInstances, new LinkedHashSet(vqiResult.allInstances()));
- fireChange();
+ changeSupport.fireChange();
}
}
private class VqiChangedListener implements ChangeListener {
public void stateChanged(ChangeEvent e) {
- fireChange();
+ changeSupport.fireChange();
}
}