diff options
author | dgiormov | 2010-02-02 11:45:35 +0000 |
---|---|---|
committer | dgiormov | 2010-02-02 11:45:35 +0000 |
commit | 6983cb84135700656e48ce75835286724617e380 (patch) | |
tree | af3908a502b68ee01deea7e9037f76f0a00478ee | |
parent | b6e56d0ebe3f79868b5e002639a3199b96445083 (diff) | |
download | webtools.ejb-R3_1_maintenance.tar.gz webtools.ejb-R3_1_maintenance.tar.xz webtools.ejb-R3_1_maintenance.zip |
[219303] No notifications after editing web 2.5 models using model provider - fixed. Added listeners were disposed.R3_1_2R3_1_maintenance
-rw-r--r-- | plugins/org.eclipse.jst.jee.ejb/ejb/org/eclipse/jst/jee/model/internal/Ejb3MergedModelProviderFactory.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/plugins/org.eclipse.jst.jee.ejb/ejb/org/eclipse/jst/jee/model/internal/Ejb3MergedModelProviderFactory.java b/plugins/org.eclipse.jst.jee.ejb/ejb/org/eclipse/jst/jee/model/internal/Ejb3MergedModelProviderFactory.java index fe5fbc42..d16c3f72 100644 --- a/plugins/org.eclipse.jst.jee.ejb/ejb/org/eclipse/jst/jee/model/internal/Ejb3MergedModelProviderFactory.java +++ b/plugins/org.eclipse.jst.jee.ejb/ejb/org/eclipse/jst/jee/model/internal/Ejb3MergedModelProviderFactory.java @@ -10,11 +10,14 @@ ***********************************************************************/ package org.eclipse.jst.jee.model.internal; +import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import org.eclipse.core.resources.IProject; import org.eclipse.jst.j2ee.model.IModelProvider; import org.eclipse.jst.j2ee.model.IModelProviderFactory; +import org.eclipse.jst.j2ee.model.IModelProviderListener; import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; /** @@ -28,11 +31,25 @@ public class Ejb3MergedModelProviderFactory implements IModelProviderFactory { public IModelProvider create(IProject project) { IModelProvider result = getResource(project); if(result == null || ((EJB3MergedModelProvider)result).isDisposed()){ + Collection<IModelProviderListener> listeners = new ArrayList<IModelProviderListener>(); + if (result != null){ + listeners = ( (EJB3MergedModelProvider)result).getListeners(); + } result = new EJB3MergedModelProvider(project); + + addListeners(result, listeners); addResource(project, result); } return result; } + + private void addListeners(IModelProvider modelProvider, + Collection<IModelProviderListener> listeners) { + for (IModelProviderListener iModelProviderListener : listeners) { + if (iModelProviderListener != null) + modelProvider.addListener(iModelProviderListener); + } + } public IModelProvider create(IVirtualComponent component) { return create(component.getProject()); |