Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorddunne2010-07-16 22:08:19 +0000
committerddunne2010-07-16 22:08:19 +0000
commit1561e365d604c103e300e0f8c70a7bb6eafc395b (patch)
tree620a7798cc8101c791a9af36e71f1b6be576ea92
parent88dfcbd1db00136e70bc907ff23dfdb9a57992f2 (diff)
downloadorg.eclipse.osee-1561e365d604c103e300e0f8c70a7bb6eafc395b.tar.gz
org.eclipse.osee-1561e365d604c103e300e0f8c70a7bb6eafc395b.tar.xz
org.eclipse.osee-1561e365d604c103e300e0f8c70a7bb6eafc395b.zip
Events - UI
-rw-r--r--plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessEventListener.java159
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/IMassViewerEventHandler.java18
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassContentProvider.java19
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewer.java43
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewerEventManager.java102
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/page/ArtifactSearchPage.java52
6 files changed, 289 insertions, 104 deletions
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessEventListener.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessEventListener.java
index 6143524750a..43bd8039066 100644
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessEventListener.java
+++ b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessEventListener.java
@@ -23,93 +23,98 @@ import org.eclipse.osee.framework.skynet.core.event2.artifact.IArtifactEventList
import org.eclipse.osee.framework.skynet.core.event2.filter.IEventFilter;
import org.eclipse.osee.framework.skynet.core.utility.LoadedArtifacts;
+/**
+ * <REM2>
+ *
+ * @author Donald G. Dunne
+ */
public final class AccessEventListener implements IBranchEventListener, IArtifactsPurgedEventListener, IArtifactEventListener {
- private final AccessControlService service;
+ private final AccessControlService service;
- public AccessEventListener(AccessControlService service) {
- this.service = service;
- }
+ public AccessEventListener(AccessControlService service) {
+ this.service = service;
+ }
- private void reload() throws OseeCoreException {
- service.reloadCache();
- }
+ private void reload() throws OseeCoreException {
+ service.reloadCache();
+ }
- @Override
- public void handleBranchEventREM1(Sender sender, BranchEventType branchModType, int branchId) {
- try {
- if (branchModType == BranchEventType.Deleted || sender.isLocal() && branchModType == BranchEventType.Purged) {
- BranchAccessObject branchAccessObject = BranchAccessObject.getBranchAccessObject(branchId);
- updateAccessList(sender, branchAccessObject);
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
- }
+ @Override
+ public void handleBranchEventREM1(Sender sender, BranchEventType branchModType, int branchId) {
+ try {
+ if (branchModType == BranchEventType.Deleted || sender.isLocal() && branchModType == BranchEventType.Purged) {
+ BranchAccessObject branchAccessObject = BranchAccessObject.getBranchAccessObject(branchId);
+ updateAccessList(sender, branchAccessObject);
+ }
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ }
+ }
- @Override
- public void handleArtifactsPurgedEvent(Sender sender, LoadedArtifacts loadedArtifacts) {
- try {
- for (Artifact artifact : loadedArtifacts.getLoadedArtifacts()) {
- ArtifactAccessObject artifactAccessObject = ArtifactAccessObject.getArtifactAccessObject(artifact);
- updateAccessList(sender, artifactAccessObject);
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
- }
+ @Override
+ public void handleArtifactsPurgedEvent(Sender sender, LoadedArtifacts loadedArtifacts) {
+ try {
+ for (Artifact artifact : loadedArtifacts.getLoadedArtifacts()) {
+ ArtifactAccessObject artifactAccessObject = ArtifactAccessObject.getArtifactAccessObject(artifact);
+ updateAccessList(sender, artifactAccessObject);
+ }
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ }
+ }
- @Override
- public void handleArtifactEvent(ArtifactEvent artifactEvent, Sender sender) {
- for (EventBasicGuidArtifact guidArt : artifactEvent.getArtifacts()) {
- if (guidArt.is(EventModType.Added) && guidArt.is(CoreArtifactTypes.User)) {
- try {
- reload();
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
- }
- if (guidArt.is(EventModType.Purged)) {
- try {
- Artifact cacheArt = ArtifactCache.getActive(guidArt);
- if (cacheArt != null) {
- ArtifactAccessObject artifactAccessObject = ArtifactAccessObject.getArtifactAccessObject(cacheArt);
- updateAccessList(sender, artifactAccessObject);
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
+ @Override
+ public void handleArtifactEvent(ArtifactEvent artifactEvent, Sender sender) {
+ for (EventBasicGuidArtifact guidArt : artifactEvent.getArtifacts()) {
+ if (guidArt.is(EventModType.Added) && guidArt.is(CoreArtifactTypes.User)) {
+ try {
+ reload();
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ }
+ }
+ if (guidArt.is(EventModType.Purged)) {
+ try {
+ Artifact cacheArt = ArtifactCache.getActive(guidArt);
+ if (cacheArt != null) {
+ ArtifactAccessObject artifactAccessObject = ArtifactAccessObject.getArtifactAccessObject(cacheArt);
+ updateAccessList(sender, artifactAccessObject);
+ }
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ }
- }
- }
- }
+ }
+ }
+ }
- @Override
- public List<? extends IEventFilter> getEventFilters() {
- return null;
- }
+ @Override
+ public List<? extends IEventFilter> getEventFilters() {
+ return null;
+ }
- @Override
- public void handleBranchEvent(Sender sender, final BranchEvent branchEvent) {
- try {
- if (branchEvent.getEventType() == BranchEventType.Deleted || sender.isLocal() && branchEvent.getEventType() == BranchEventType.Purged) {
- BranchAccessObject branchAccessObject =
- BranchAccessObject.getBranchAccessObject(branchEvent.getBranchGuid());
- updateAccessList(sender, branchAccessObject);
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
- }
+ @Override
+ public void handleBranchEvent(Sender sender, final BranchEvent branchEvent) {
+ try {
+ if (branchEvent.getEventType() == BranchEventType.Deleted || sender.isLocal() && branchEvent.getEventType() == BranchEventType.Purged) {
+ BranchAccessObject branchAccessObject =
+ BranchAccessObject.getBranchAccessObject(branchEvent.getBranchGuid());
+ updateAccessList(sender, branchAccessObject);
+ }
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ }
+ }
- @Override
- public void handleLocalBranchToArtifactCacheUpdateEvent(Sender sender) {
- }
+ @Override
+ public void handleLocalBranchToArtifactCacheUpdateEvent(Sender sender) {
+ }
- private void updateAccessList(Sender sender, AccessObject accessObject) throws OseeCoreException {
- List<AccessControlData> acl = service.generateAccessControlList(accessObject);
- for (AccessControlData accessControlData : acl) {
- service.removeAccessControlDataIf(sender.isLocal(), accessControlData);
- }
- }
+ private void updateAccessList(Sender sender, AccessObject accessObject) throws OseeCoreException {
+ List<AccessControlData> acl = service.generateAccessControlList(accessObject);
+ for (AccessControlData accessControlData : acl) {
+ service.removeAccessControlDataIf(sender.isLocal(), accessControlData);
+ }
+ }
} \ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/IMassViewerEventHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/IMassViewerEventHandler.java
new file mode 100644
index 00000000000..8f593c5c40c
--- /dev/null
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/IMassViewerEventHandler.java
@@ -0,0 +1,18 @@
+/*
+ * Created on Jun 30, 2010
+ *
+ * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE
+ */
+package org.eclipse.osee.framework.ui.skynet.artifact.massEditor;
+
+
+/**
+ * @author Donald G. Dunne
+ */
+public interface IMassViewerEventHandler {
+
+ public MassXViewer getMassXViewer();
+
+ public boolean isDisposed();
+
+}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassContentProvider.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassContentProvider.java
index 63f0e7a15a8..e2f089a40f1 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassContentProvider.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassContentProvider.java
@@ -16,6 +16,7 @@ import java.util.HashSet;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
+import org.eclipse.osee.framework.skynet.core.event2.artifact.EventBasicGuidArtifact;
import org.eclipse.osee.framework.ui.plugin.util.Displays;
public class MassContentProvider implements ITreeContentProvider {
@@ -64,15 +65,25 @@ public class MassContentProvider implements ITreeContentProvider {
});
}
- public void remove(final Artifact art) {
+ public void remove(final EventBasicGuidArtifact art) {
removeAll(Arrays.asList(art));
}
- public void removeAll(final Collection<? extends Artifact> arts) {
+ public void removeAll(final Collection<? extends EventBasicGuidArtifact> arts) {
Displays.ensureInDisplayThread(new Runnable() {
public void run() {
if (xViewer.getInput() == null) xViewer.setInput(rootSet);
- rootSet.remove(arts);
+ rootSet.removeAll(arts);
+ xViewer.refresh();
+ };
+ });
+ }
+
+ public void removeAllArts(final Collection<? extends Artifact> arts) {
+ Displays.ensureInDisplayThread(new Runnable() {
+ public void run() {
+ if (xViewer.getInput() == null) xViewer.setInput(rootSet);
+ rootSet.removeAll(arts);
xViewer.refresh();
};
});
@@ -88,7 +99,7 @@ public class MassContentProvider implements ITreeContentProvider {
});
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("rawtypes")
public Object[] getChildren(Object parentElement) {
if (parentElement instanceof Collection) {
return ((Collection) parentElement).toArray();
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewer.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewer.java
index d2083c0823c..94c45981dcb 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewer.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewer.java
@@ -48,28 +48,39 @@ import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.FileTransfer;
import org.eclipse.swt.dnd.TextTransfer;
import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.TreeColumn;
import org.eclipse.swt.widgets.TreeItem;
/**
+ * <REM2> new handled in MassXViewerEventManager
+ *
* @author Donald G. Dunne
*/
-public class MassXViewer extends XViewer implements IFrameworkTransactionEventListener, IArtifactsPurgedEventListener, IArtifactsChangeTypeEventListener {
+public class MassXViewer extends XViewer implements IMassViewerEventHandler, IFrameworkTransactionEventListener, IArtifactsPurgedEventListener, IArtifactsChangeTypeEventListener {
private String title;
private final Set<Artifact> artifacts = new HashSet<Artifact>(50);
private final IDirtiableEditor editor;
private final List<String> EXTRA_COLUMNS = Arrays.asList(new String[] {"GUID", "HRID", "Artifact Type"});
+ private final Composite parent;
- /**
- * @param parent
- * @param style
- */
public MassXViewer(Composite parent, int style, MassArtifactEditor editor) {
super(parent, style, ((MassArtifactEditorInput) editor.getEditorInput()).getXViewerFactory());
+ this.parent = parent;
this.editor = editor;
OseeEventManager.addListener(this);
+ MassXViewerEventManager.add(this);
+ final MassXViewer fMassXViewer = this;
+ parent.addDisposeListener(new DisposeListener() {
+
+ @Override
+ public void widgetDisposed(DisposeEvent e) {
+ MassXViewerEventManager.remove(fMassXViewer);
+ }
+ });
}
@Override
@@ -201,12 +212,10 @@ public class MassXViewer extends XViewer implements IFrameworkTransactionEventLi
return arts;
}
- /**
- * Release resources
- */
@Override
public void dispose() {
OseeEventManager.removeListener(this);
+ MassXViewerEventManager.remove(this);
// Tell the label provider to release its resources
getLabelProvider().dispose();
}
@@ -219,9 +228,6 @@ public class MassXViewer extends XViewer implements IFrameworkTransactionEventLi
return arts;
}
- /**
- * @return Returns the title.
- */
public String getTitle() {
return title;
}
@@ -247,9 +253,6 @@ public class MassXViewer extends XViewer implements IFrameworkTransactionEventLi
((MassContentProvider) getContentProvider()).set(artifacts);
}
- /**
- * @return the artifacts
- */
public Collection<? extends Artifact> getArtifacts() {
return artifacts;
}
@@ -264,7 +267,7 @@ public class MassXViewer extends XViewer implements IFrameworkTransactionEventLi
return;
}
if (transData.cacheDeletedArtifacts.size() > 0) {
- ((MassContentProvider) getContentProvider()).removeAll(transData.cacheDeletedArtifacts);
+ ((MassContentProvider) getContentProvider()).removeAllArts(transData.cacheDeletedArtifacts);
}
if (transData.cacheChangedArtifacts.size() > 0) {
((MassContentProvider) getContentProvider()).updateAll(transData.cacheChangedArtifacts);
@@ -306,4 +309,14 @@ public class MassXViewer extends XViewer implements IFrameworkTransactionEventLi
});
}
+ @Override
+ public MassXViewer getMassXViewer() {
+ return this;
+ }
+
+ @Override
+ public boolean isDisposed() {
+ return parent == null || parent.isDisposed();
+ }
+
}
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
new file mode 100644
index 00000000000..027cfbbf2e3
--- /dev/null
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewerEventManager.java
@@ -0,0 +1,102 @@
+/*
+ * Created on Jun 30, 2010
+ *
+ * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE
+ */
+package org.eclipse.osee.framework.ui.skynet.artifact.massEditor;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
+import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
+import org.eclipse.osee.framework.skynet.core.event.Sender;
+import org.eclipse.osee.framework.skynet.core.event2.ArtifactEvent;
+import org.eclipse.osee.framework.skynet.core.event2.artifact.EventBasicGuidArtifact;
+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.plugin.util.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;
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/page/ArtifactSearchPage.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/page/ArtifactSearchPage.java
index 64baa0d17de..a9fecfcfcb0 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/page/ArtifactSearchPage.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/page/ArtifactSearchPage.java
@@ -45,6 +45,11 @@ import org.eclipse.osee.framework.skynet.core.event.IArtifactsPurgedEventListene
import org.eclipse.osee.framework.skynet.core.event.IFrameworkTransactionEventListener;
import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
import org.eclipse.osee.framework.skynet.core.event.Sender;
+import org.eclipse.osee.framework.skynet.core.event2.ArtifactEvent;
+import org.eclipse.osee.framework.skynet.core.event2.artifact.EventBasicGuidArtifact;
+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.skynet.core.utility.LoadedArtifacts;
import org.eclipse.osee.framework.ui.plugin.util.Displays;
import org.eclipse.osee.framework.ui.skynet.ArtifactDecorator;
@@ -71,7 +76,7 @@ import org.eclipse.ui.part.IPageSite;
/**
* @author Roberto E. Escobar
*/
-public class ArtifactSearchPage extends AbstractArtifactSearchViewPage implements IAdaptable, IRebuildMenuListener, IFrameworkTransactionEventListener, IArtifactsPurgedEventListener, IBranchProvider {
+public class ArtifactSearchPage extends AbstractArtifactSearchViewPage implements IAdaptable, IRebuildMenuListener, IArtifactEventListener, IFrameworkTransactionEventListener, IArtifactsPurgedEventListener, IBranchProvider {
private static final String VIEW_ID = "org.eclipse.osee.framework.ui.skynet.ArtifactSearchView";
protected static final Match[] EMPTY_MATCH_ARRAY = new Match[0];
@@ -127,8 +132,8 @@ public class ArtifactSearchPage extends AbstractArtifactSearchViewPage implement
private IArtifactSearchContentProvider fContentProvider;
private ISelectionProvider selectionProvider;
- private final ArtifactDecorator artifactDecorator =
- new ArtifactDecorator(SkynetGuiPlugin.ARTIFACT_SEARCH_RESULTS_ATTRIBUTES_PREF);
+ private final ArtifactDecorator artifactDecorator = new ArtifactDecorator(
+ SkynetGuiPlugin.ARTIFACT_SEARCH_RESULTS_ATTRIBUTES_PREF);
public ArtifactSearchPage() {
setElementLimit(new Integer(DEFAULT_ELEMENT_LIMIT));
@@ -262,7 +267,7 @@ public class ArtifactSearchPage extends AbstractArtifactSearchViewPage implement
memento.putInteger(KEY_LIMIT, getElementLimit().intValue());
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("rawtypes")
public Object getAdapter(Class adapter) {
return null;
}
@@ -349,7 +354,7 @@ public class ArtifactSearchPage extends AbstractArtifactSearchViewPage implement
}
@Override
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({"unchecked", "rawtypes"})
protected void evaluateChangedElements(Match[] matches, Set changedElements) {
if (showLineMatches()) {
for (int i = 0; i < matches.length; i++) {
@@ -364,7 +369,7 @@ public class ArtifactSearchPage extends AbstractArtifactSearchViewPage implement
}
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({"unchecked", "rawtypes"})
protected void evaluateInternalChangedElements(Match[] matches, Set changedElements) {
for (int i = 0; i < matches.length; i++) {
changedElements.add(matches[i].getElement());
@@ -522,7 +527,7 @@ public class ArtifactSearchPage extends AbstractArtifactSearchViewPage implement
return collection.isEmpty() ? null : iterator().next();
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("rawtypes")
@Override
public Iterator iterator() {
return collection.iterator();
@@ -538,10 +543,41 @@ public class ArtifactSearchPage extends AbstractArtifactSearchViewPage implement
return collection.toArray();
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("rawtypes")
@Override
public List toList() {
return new ArrayList<Artifact>(collection);
}
}
+
+ @Override
+ public List<? extends IEventFilter> getEventFilters() {
+ return null;
+ }
+
+ @Override
+ public void handleArtifactEvent(ArtifactEvent artifactEvent, Sender sender) {
+ final Collection<EventBasicGuidArtifact> deletedPurgedArts =
+ artifactEvent.get(EventModType.Deleted, EventModType.Purged);
+ if (deletedPurgedArts.isEmpty()) {
+ return;
+ }
+ Displays.ensureInDisplayThread(new Runnable() {
+ @Override
+ public void run() {
+ if (getViewer() != null) {
+ AbstractArtifactSearchResult results = getInput();
+ if (results != null) {
+ for (EventBasicGuidArtifact guidArt : deletedPurgedArts) {
+ for (Match match : results.getMatches(guidArt)) {
+ results.removeMatch(match);
+ }
+ }
+ getViewer().refresh();
+ }
+ }
+ }
+ });
+
+ }
} \ No newline at end of file

Back to the top