Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 274904 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/mylyn/internal/context/core/InteractionContext.java (+26 lines)
Lines 11-20 Link Here
11
package org.eclipse.mylyn.internal.context.core;
11
package org.eclipse.mylyn.internal.context.core;
12
12
13
import java.util.ArrayList;
13
import java.util.ArrayList;
14
import java.util.Collection;
14
import java.util.Collections;
15
import java.util.Collections;
15
import java.util.HashMap;
16
import java.util.HashMap;
17
import java.util.HashSet;
16
import java.util.List;
18
import java.util.List;
17
import java.util.Map;
19
import java.util.Map;
20
import java.util.Set;
18
import java.util.concurrent.ConcurrentHashMap;
21
import java.util.concurrent.ConcurrentHashMap;
19
import java.util.concurrent.CopyOnWriteArrayList;
22
import java.util.concurrent.CopyOnWriteArrayList;
20
23
Lines 178-183 Link Here
178
		return activeNode;
181
		return activeNode;
179
	}
182
	}
180
183
184
	public void delete(Collection<IInteractionElement> nodes) {
185
186
		List<InteractionEvent> eventsToRemove = new ArrayList<InteractionEvent>();
187
		Set<String> handlesToRemove = new HashSet<String>();
188
		for (IInteractionElement node : nodes) {
189
			handlesToRemove.add(node.getHandleIdentifier());
190
			landmarkMap.remove(node.getHandleIdentifier());
191
			elementMap.remove(node.getHandleIdentifier());
192
193
			if (activeNode != null && node.getHandleIdentifier().equals(activeNode.getHandleIdentifier())) {
194
				activeNode = null;
195
			}
196
		}
197
198
		for (InteractionEvent event : interactionHistory) {
199
			if (handlesToRemove.contains(event.getStructureHandle())) {
200
				eventsToRemove.add(event);
201
			}
202
		}
203
		interactionHistory.removeAll(eventsToRemove);
204
205
	}
206
181
	public void delete(IInteractionElement node) {
207
	public void delete(IInteractionElement node) {
182
		landmarkMap.remove(node.getHandleIdentifier());
208
		landmarkMap.remove(node.getHandleIdentifier());
183
		elementMap.remove(node.getHandleIdentifier());
209
		elementMap.remove(node.getHandleIdentifier());
(-)src/org/eclipse/mylyn/internal/context/core/InteractionContextManager.java (+14 lines)
Lines 457-462 Link Here
457
		notifyElementsDeleted(getActiveContext(), Arrays.asList(new IInteractionElement[] { element }));
457
		notifyElementsDeleted(getActiveContext(), Arrays.asList(new IInteractionElement[] { element }));
458
	}
458
	}
459
459
460
	public void deleteElements(Collection<IInteractionElement> elements) {
461
		IInteractionContext context = getActiveContext();
462
463
		if (elements == null || elements.size() == 0 || context == null) {
464
			return;
465
		}
466
467
		context.delete(elements);
468
469
		if (elements.size() > 0) {
470
			notifyElementsDeleted(getActiveContext(), new ArrayList<IInteractionElement>(elements));
471
		}
472
	}
473
460
	private void delete(IInteractionElement element, IInteractionContext context) {
474
	private void delete(IInteractionElement element, IInteractionContext context) {
461
		if (element == null || context == null) {
475
		if (element == null || context == null) {
462
			return;
476
			return;
(-)src/org/eclipse/mylyn/internal/context/core/CompositeInteractionContext.java (+7 lines)
Lines 12-17 Link Here
12
package org.eclipse.mylyn.internal.context.core;
12
package org.eclipse.mylyn.internal.context.core;
13
13
14
import java.util.ArrayList;
14
import java.util.ArrayList;
15
import java.util.Collection;
15
import java.util.HashMap;
16
import java.util.HashMap;
16
import java.util.HashSet;
17
import java.util.HashSet;
17
import java.util.List;
18
import java.util.List;
Lines 109-114 Link Here
109
		}
110
		}
110
	}
111
	}
111
112
113
	public void delete(Collection<IInteractionElement> nodes) {
114
		for (InteractionContext taskscape : contexts.values()) {
115
			taskscape.delete(nodes);
116
		}
117
	}
118
112
	public void clear() {
119
	public void clear() {
113
		for (InteractionContext taskscape : contexts.values()) {
120
		for (InteractionContext taskscape : contexts.values()) {
114
			taskscape.reset();
121
			taskscape.reset();
(-)src/org/eclipse/mylyn/context/core/IInteractionContextManager.java (+6 lines)
Lines 11-16 Link Here
11
11
12
package org.eclipse.mylyn.context.core;
12
package org.eclipse.mylyn.context.core;
13
13
14
import java.util.Collection;
14
import java.util.Set;
15
import java.util.Set;
15
16
16
import org.eclipse.mylyn.monitor.core.InteractionEvent;
17
import org.eclipse.mylyn.monitor.core.InteractionEvent;
Lines 47-52 Link Here
47
48
48
	public abstract void deleteElement(IInteractionElement element);
49
	public abstract void deleteElement(IInteractionElement element);
49
50
51
	/**
52
	 * @since 3.2
53
	 */
54
	public abstract void deleteElements(Collection<IInteractionElement> element);
55
50
	public IInteractionElement getActiveElement();
56
	public IInteractionElement getActiveElement();
51
57
52
	public IInteractionElement processInteractionEvent(InteractionEvent event);
58
	public IInteractionElement processInteractionEvent(InteractionEvent event);
(-)src/org/eclipse/mylyn/context/core/IInteractionContext.java (+6 lines)
Lines 11-16 Link Here
11
11
12
package org.eclipse.mylyn.context.core;
12
package org.eclipse.mylyn.context.core;
13
13
14
import java.util.Collection;
14
import java.util.List;
15
import java.util.List;
15
16
16
import org.eclipse.mylyn.monitor.core.InteractionEvent;
17
import org.eclipse.mylyn.monitor.core.InteractionEvent;
Lines 46-51 Link Here
46
47
47
	public abstract void delete(IInteractionElement element);
48
	public abstract void delete(IInteractionElement element);
48
49
50
	/**
51
	 * @since 3.2
52
	 */
53
	public abstract void delete(Collection<IInteractionElement> elements);
54
49
	public abstract void updateElementHandle(IInteractionElement element, String newHandle);
55
	public abstract void updateElementHandle(IInteractionElement element, String newHandle);
50
56
51
	public abstract List<IInteractionElement> getAllElements();
57
	public abstract List<IInteractionElement> getAllElements();
(-)src/org/eclipse/mylyn/internal/context/ui/editors/ContextEditorFormPage.java (-3 / +1 lines)
Lines 391-399 Link Here
391
							}
391
							}
392
						}
392
						}
393
						allToRemove.removeAll(allVisibleElements);
393
						allToRemove.removeAll(allVisibleElements);
394
						for (IInteractionElement interactionElement : allToRemove) {
394
						ContextCore.getContextManager().deleteElements(allToRemove);
395
							ContextCore.getContextManager().deleteElement(interactionElement);
396
						}
397
					} else {
395
					} else {
398
						MessageDialog.openInformation(Display.getCurrent().getActiveShell(),
396
						MessageDialog.openInformation(Display.getCurrent().getActiveShell(),
399
								Messages.ContextEditorFormPage_Remove_Invisible,
397
								Messages.ContextEditorFormPage_Remove_Invisible,

Return to bug 274904