one time listener problem fixed

This commit is contained in:
no_reply@jetbrains.com
2005-01-27 20:50:17 +03:00
parent 0e71d0582c
commit 60d80cf5fb
@@ -103,12 +103,14 @@ public class PomModelImpl extends UserDataHolderBase implements PomModel {
public void addModelListener(PomModelListener listener) {
synchronized(myListeners){
myListeners.add(listener);
myListenersArray = null;
}
}
public void removeModelListener(PomModelListener listener) {
synchronized(myListeners){
myListeners.remove(listener);
myListenersArray = null;
}
}
@@ -151,8 +153,8 @@ public class PomModelImpl extends UserDataHolderBase implements PomModel {
}
}
{
final Iterator<PomModelListener> listenersIterator = myListeners.iterator();
while (listenersIterator.hasNext()) listenersIterator.next().modelChanged(event);
final PomModelListener[] listeners = getListeners();
for (int i = 0; i < listeners.length; i++) listeners[i].modelChanged(event);
}
}
}
@@ -161,6 +163,12 @@ public class PomModelImpl extends UserDataHolderBase implements PomModel {
if(progressIndicator != null) progressIndicator.finishNonCancelableSection();
}
}
private PomModelListener[] myListenersArray = null;
private PomModelListener[] getListeners(){
if(myListenersArray != null) return myListenersArray;
return myListenersArray = myListeners.toArray(new PomModelListener[myListeners.size()]);
}
// Project component
public void projectOpened() {}