[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal ...
Marshall Culpepper
mculpepper at jboss.com
Wed Feb 21 14:36:51 EST 2007
User: mculpepper
Date: 07/02/21 14:36:51
Modified: core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal
PackagesModel.java
Log:
access to model listeners is now synchronized
Revision Changes Path
1.20 +75 -53 jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal/PackagesModel.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: PackagesModel.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal/PackagesModel.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- PackagesModel.java 20 Feb 2007 07:18:02 -0000 1.19
+++ PackagesModel.java 21 Feb 2007 19:36:51 -0000 1.20
@@ -281,14 +281,21 @@
public void addPackagesModelListener (IPackagesModelListener listener)
{
+ synchronized (modelListeners)
+ {
+ if (!modelListeners.contains(listener))
modelListeners.add(listener);
}
+ }
public void removePackagesModelListener (IPackagesModelListener listener)
{
+ synchronized (modelListeners)
+ {
if (modelListeners.contains(listener))
modelListeners.remove(listener);
}
+ }
public void addPackagesBuildListener (IPackagesBuildListener listener)
{
@@ -556,15 +563,20 @@
protected void fireProjectRegistered (final IProject project)
{
+ synchronized (modelListeners)
+ {
for (Iterator iter = modelListeners.iterator(); iter.hasNext(); )
{
IPackagesModelListener listener = (IPackagesModelListener) iter.next();
listener.projectRegistered(project);
}
}
+ }
protected void fireNodeAdded (final IPackageNode added)
{
+ synchronized (modelListeners)
+ {
// need to make sure if this is a package or folder node that we don't fire the "added" event prematurely
// basically we need to check if the node has been properly added to it's parent or not.
// since a package can be top level (i.e. no parent), i've added a special "shouldParentBeNull" flag (internal)
@@ -596,8 +608,11 @@
}
});
}
+ }
protected void fireNodeRemoved (final IPackageNode removed) {
+ synchronized (modelListeners)
+ {
fireEvent(removed, new Runnable() {
public void run() {
for (Iterator iter = modelListeners.iterator(); iter.hasNext(); )
@@ -608,9 +623,12 @@
}
});
}
+ }
protected void fireNodeChanged (final IPackageNode changed)
{
+ synchronized (modelListeners)
+ {
fireEvent(changed, new Runnable() {
public void run() {
for (Iterator iter = modelListeners.iterator(); iter.hasNext(); )
@@ -621,9 +639,12 @@
}
});
}
+ }
protected void fireNodeAttached (final IPackageNode attached)
{
+ synchronized (modelListeners)
+ {
fireEvent(attached, new Runnable() {
public void run ()
{
@@ -635,6 +656,7 @@
}
});
}
+ }
protected void fireEvent (IPackageNode source, Runnable runnable) {
if (projectBeingRegistered != null && source.getProject().equals(projectBeingRegistered))
More information about the jboss-cvs-commits
mailing list