Merge "[487942]  Improve the creation diagram wizard to include the name of the diagram type"
diff --git a/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/manager/ActivityExplorerManager.java b/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/manager/ActivityExplorerManager.java
index 7f73152..0f6f48f 100644
--- a/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/manager/ActivityExplorerManager.java
+++ b/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/manager/ActivityExplorerManager.java
@@ -10,9 +10,6 @@
  *******************************************************************************/
 package org.eclipse.amalgam.explorer.activity.ui.api.manager;
 
-import java.util.Collection;
-import java.util.HashSet;
-
 import org.eclipse.amalgam.explorer.activity.ui.ActivityExplorerActivator;
 import org.eclipse.amalgam.explorer.activity.ui.api.editor.ActivityExplorerEditor;
 import org.eclipse.amalgam.explorer.activity.ui.api.editor.input.ActivityExplorerEditorInput;
@@ -21,6 +18,7 @@
 import org.eclipse.amalgam.explorer.activity.ui.internal.intf.INotifier;
 import org.eclipse.amalgam.explorer.activity.ui.internal.util.ActivityExplorerLoggerService;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.ListenerList;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.sirius.business.api.session.Session;
@@ -42,7 +40,7 @@
 	
 	public static final ActivityExplorerManager INSTANCE = new ActivityExplorerManager();
 	
-	private static final Collection<IActivityExplorerEditorSessionListener> editorListeners = new HashSet<IActivityExplorerEditorSessionListener>();
+	private static final ListenerList editorListeners = new ListenerList();
 	
 	private ActivityExplorerManager() {
 	}
@@ -194,24 +192,21 @@
 	}
 
 	@Override
-	public void dispatchEvent(int notification, Session session) {
-		for (IActivityExplorerEditorSessionListener iObserver : editorListeners) {
-			iObserver.executeRequest(notification, session);
+	public void dispatchEvent(int notification, Session session) {		
+		Object[] listeners = editorListeners.getListeners();
+		for (int i = 0; i < listeners.length; ++i) {
+			((IActivityExplorerEditorSessionListener) listeners[i]).executeRequest(notification, session);
 		}
 	}
 
 	@Override
 	public void addActivityExplorerEditorListener(IActivityExplorerEditorSessionListener observer) {
-		if (editorListeners != null && !editorListeners.contains(observer)){
-			editorListeners.add(observer);
-		}
+		editorListeners.add(observer);
 	}
 
 	@Override
 	public void removeActivityExplorerEditorListener(IActivityExplorerEditorSessionListener observer) {
-		if (editorListeners != null && editorListeners.contains(observer)){
-			editorListeners.remove(observer);
-		}
+		editorListeners.remove(observer);
 	}
 	
 	protected void run(Runnable runnable) {
@@ -224,5 +219,4 @@
 	      }
 	    }
 	  }
-
 }