diff options
Diffstat (limited to 'plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewerEventManager.java')
-rw-r--r-- | plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewerEventManager.java | 166 |
1 files changed, 83 insertions, 83 deletions
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewerEventManager.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewerEventManager.java index 84010701a67..a9afaa835d6 100644 --- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewerEventManager.java +++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewerEventManager.java @@ -8,8 +8,8 @@ * Contributors: * Boeing - initial API and implementation *******************************************************************************/ -package org.eclipse.osee.framework.ui.skynet.artifact.massEditor;
-
+package org.eclipse.osee.framework.ui.skynet.artifact.massEditor; + import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -24,84 +24,84 @@ import org.eclipse.osee.framework.skynet.core.event2.artifact.EventModType; import org.eclipse.osee.framework.skynet.core.event2.artifact.IArtifactEventListener; import org.eclipse.osee.framework.skynet.core.event2.filter.IEventFilter; import org.eclipse.osee.framework.ui.swt.Displays; -
-/**
- * Common location for event handling for mass editor in order to keep number of registrations and processing to a
- * minimum.
- *
- * @author Donald G. Dunne
- */
-public class MassXViewerEventManager implements IArtifactEventListener {
-
- List<IMassViewerEventHandler> handlers = new ArrayList<IMassViewerEventHandler>();
- static MassXViewerEventManager instance;
-
- public static void add(IMassViewerEventHandler iWorldEventHandler) {
- if (instance == null) {
- instance = new MassXViewerEventManager();
- OseeEventManager.addListener(instance);
- }
- instance.handlers.add(iWorldEventHandler);
- }
-
- public static void remove(IMassViewerEventHandler iWorldEventHandler) {
- if (instance != null) {
- instance.handlers.remove(iWorldEventHandler);
- }
- }
-
- @Override
- public void handleArtifactEvent(final ArtifactEvent artifactEvent, Sender sender) {
- for (IMassViewerEventHandler handler : new CopyOnWriteArrayList<IMassViewerEventHandler>(handlers)) {
- if (handler.isDisposed()) {
- handlers.remove(handler);
- }
- }
-
- final Collection<Artifact> modifiedArts =
- artifactEvent.getCacheArtifacts(EventModType.Modified, EventModType.Reloaded);
- final Collection<Artifact> relModifiedArts = artifactEvent.getRelCacheArtifacts();
- final Collection<EventBasicGuidArtifact> deletedPurgedArts =
- artifactEvent.get(EventModType.Deleted, EventModType.Purged);
-
- Displays.ensureInDisplayThread(new Runnable() {
- @Override
- public void run() {
- if (!deletedPurgedArts.isEmpty()) {
- for (IMassViewerEventHandler handler : handlers) {
- if (!handler.isDisposed()) {
- IContentProvider contentProvider = handler.getMassXViewer().getContentProvider();
- // remove from UI
- if (contentProvider instanceof MassContentProvider) {
- ((MassContentProvider) contentProvider).removeAll(deletedPurgedArts);
- }
- }
- }
- }
- for (IMassViewerEventHandler handler : handlers) {
- if (!handler.isDisposed()) {
- IContentProvider contentProvider = handler.getMassXViewer().getContentProvider();
- // remove from UI
- if (contentProvider instanceof MassContentProvider) {
- ((MassContentProvider) contentProvider).updateAll(modifiedArts);
- }
- }
-
- for (Artifact art : relModifiedArts) {
- // Don't refresh deleted artifacts
- if (art.isDeleted()) {
- continue;
- }
- handler.getMassXViewer().refresh(art);
- }
- }
- }
- });
- }
-
- @Override
- public List<? extends IEventFilter> getEventFilters() {
- return null;
- }
-
-}
+ +/** + * Common location for event handling for mass editor in order to keep number of registrations and processing to a + * minimum. + * + * @author Donald G. Dunne + */ +public class MassXViewerEventManager implements IArtifactEventListener { + + List<IMassViewerEventHandler> handlers = new ArrayList<IMassViewerEventHandler>(); + static MassXViewerEventManager instance; + + public static void add(IMassViewerEventHandler iWorldEventHandler) { + if (instance == null) { + instance = new MassXViewerEventManager(); + OseeEventManager.addListener(instance); + } + instance.handlers.add(iWorldEventHandler); + } + + public static void remove(IMassViewerEventHandler iWorldEventHandler) { + if (instance != null) { + instance.handlers.remove(iWorldEventHandler); + } + } + + @Override + public void handleArtifactEvent(final ArtifactEvent artifactEvent, Sender sender) { + for (IMassViewerEventHandler handler : new CopyOnWriteArrayList<IMassViewerEventHandler>(handlers)) { + if (handler.isDisposed()) { + handlers.remove(handler); + } + } + + final Collection<Artifact> modifiedArts = + artifactEvent.getCacheArtifacts(EventModType.Modified, EventModType.Reloaded); + final Collection<Artifact> relModifiedArts = artifactEvent.getRelCacheArtifacts(); + final Collection<EventBasicGuidArtifact> deletedPurgedArts = + artifactEvent.get(EventModType.Deleted, EventModType.Purged); + + Displays.ensureInDisplayThread(new Runnable() { + @Override + public void run() { + if (!deletedPurgedArts.isEmpty()) { + for (IMassViewerEventHandler handler : handlers) { + if (!handler.isDisposed()) { + IContentProvider contentProvider = handler.getMassXViewer().getContentProvider(); + // remove from UI + if (contentProvider instanceof MassContentProvider) { + ((MassContentProvider) contentProvider).removeAll(deletedPurgedArts); + } + } + } + } + for (IMassViewerEventHandler handler : handlers) { + if (!handler.isDisposed()) { + IContentProvider contentProvider = handler.getMassXViewer().getContentProvider(); + // remove from UI + if (contentProvider instanceof MassContentProvider) { + ((MassContentProvider) contentProvider).updateAll(modifiedArts); + } + } + + for (Artifact art : relModifiedArts) { + // Don't refresh deleted artifacts + if (art.isDeleted()) { + continue; + } + handler.getMassXViewer().refresh(art); + } + } + } + }); + } + + @Override + public List<? extends IEventFilter> getEventFilters() { + return null; + } + +} |