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/ui/FocusedViewerManager.java (-11 / +23 lines)
Lines 241-256 Link Here
241
			 * TODO: consider making this work per-element and parent
241
			 * TODO: consider making this work per-element and parent
242
			 * Should we collect all parents before calling refresh?
242
			 * Should we collect all parents before calling refresh?
243
			 */
243
			 */
244
			ArrayList<IInteractionElement> toRefresh = new ArrayList<IInteractionElement>();
244
			if (ContextCore.getContextManager().getActiveContext() != null
245
			for (IInteractionElement interactionElement : event.getElements()) {
245
					&& event.getElements().size() > ContextCore.getContextManager()
246
				AbstractContextStructureBridge structureBridge = ContextCore.getStructureBridge(interactionElement.getContentType());
246
							.getActiveContext()
247
				IInteractionElement parent = ContextCore.getContextManager().getElement(
247
							.getInteresting()
248
						structureBridge.getParentHandle(interactionElement.getHandleIdentifier()));
248
							.size()) {
249
				if (parent != null) {
249
				// probably quicker to refresh the entire view if more than half of the elements in the context deleted
250
					toRefresh.add(parent);
250
				refreshViewers((IInteractionElement) null, false);
251
			} else {
252
				ArrayList<IInteractionElement> toRefresh = new ArrayList<IInteractionElement>();
253
254
				for (IInteractionElement interactionElement : event.getElements()) {
255
					AbstractContextStructureBridge structureBridge = ContextCore.getStructureBridge(interactionElement.getContentType());
256
					IInteractionElement parent = ContextCore.getContextManager().getElement(
257
							structureBridge.getParentHandle(interactionElement.getHandleIdentifier()));
258
					if (parent != null) {
259
						toRefresh.add(parent);
260
					}
261
				}
262
				if (toRefresh.size() != 0) {
263
					refreshViewers(toRefresh, false);
251
				}
264
				}
252
			}
265
			}
253
			refreshViewers(toRefresh, false);
254
266
255
			break;
267
			break;
256
		}
268
		}
Lines 290-296 Link Here
290
				refreshViewer(nodesToRefresh, updateLabels, viewer);
302
				refreshViewer(nodesToRefresh, updateLabels, viewer);
291
			}
303
			}
292
		} catch (Throwable t) {
304
		} catch (Throwable t) {
293
			StatusHandler.log(new Status(IStatus.ERROR, ContextUiPlugin.ID_PLUGIN, "Could not refresh viewer", t)); //$NON-NLS-1$
305
			StatusHandler.log(new Status(IStatus.ERROR, ContextUiPlugin.ID_PLUGIN, "Could not refresh viewer", t));
294
		}
306
		}
295
	}
307
	}
296
308
Lines 305-311 Link Here
305
		}
317
		}
306
		FocusedViewerDelayedRefreshJob job = refreshJobs.get(viewer);
318
		FocusedViewerDelayedRefreshJob job = refreshJobs.get(viewer);
307
		if (job == null) {
319
		if (job == null) {
308
			job = new FocusedViewerDelayedRefreshJob(viewer, "refresh viewer", updateLabels); //$NON-NLS-1$
320
			job = new FocusedViewerDelayedRefreshJob(viewer, "refresh viewer", updateLabels);
309
			refreshJobs.put(viewer, job);
321
			refreshJobs.put(viewer, job);
310
		}
322
		}
311
		job.refreshElements(nodesToRefresh.toArray());
323
		job.refreshElements(nodesToRefresh.toArray());
Lines 337-343 Link Here
337
					if (!internalExpandExceptionLogged) {
349
					if (!internalExpandExceptionLogged) {
338
						internalExpandExceptionLogged = true;
350
						internalExpandExceptionLogged = true;
339
						StatusHandler.log(new Status(IStatus.ERROR, ContextUiPlugin.ID_PLUGIN,
351
						StatusHandler.log(new Status(IStatus.ERROR, ContextUiPlugin.ID_PLUGIN,
340
								"Failed to verify expansion state, falling back to expanding all nodes", e)); //$NON-NLS-1$
352
								"Failed to verify expansion state, falling back to expanding all nodes", e));
341
					}
353
					}
342
					failed = true;
354
					failed = true;
343
				}
355
				}
(-)src/org/eclipse/mylyn/internal/context/ui/editors/ContextEditorFormPage.java (-1 / +8 lines)
Lines 451-457 Link Here
451
	private void refresh(List<IInteractionElement> elements) {
451
	private void refresh(List<IInteractionElement> elements) {
452
		createRefreshJob();
452
		createRefreshJob();
453
		if (refreshJob != null) {
453
		if (refreshJob != null) {
454
			refreshJob.doRefresh(elements.toArray());
454
			if (ContextCore.getContextManager().getActiveContext() != null
455
					&& elements.size() > ContextCore.getContextManager().getActiveContext().getInteresting().size()) {
456
				// cheaper to refresh the root at this point
457
				refreshJob.doRefresh(null);
458
			} else {
459
				refreshJob.doRefresh(elements.toArray());
460
461
			}
455
		}
462
		}
456
	}
463
	}
457
464
(-)src/org/eclipse/mylyn/internal/java/ui/TypeHistoryManager.java (-2 / +15 lines)
Lines 23-28 Link Here
23
import org.eclipse.mylyn.commons.core.StatusHandler;
23
import org.eclipse.mylyn.commons.core.StatusHandler;
24
import org.eclipse.mylyn.context.core.AbstractContextListener;
24
import org.eclipse.mylyn.context.core.AbstractContextListener;
25
import org.eclipse.mylyn.context.core.ContextChangeEvent;
25
import org.eclipse.mylyn.context.core.ContextChangeEvent;
26
import org.eclipse.mylyn.context.core.ContextCore;
26
import org.eclipse.mylyn.context.core.IInteractionElement;
27
import org.eclipse.mylyn.context.core.IInteractionElement;
27
28
28
/**
29
/**
Lines 54-61 Link Here
54
			}
55
			}
55
			break;
56
			break;
56
		case ELEMENTS_DELETED:
57
		case ELEMENTS_DELETED:
57
			for (IInteractionElement element : event.getElements()) {
58
			if (ContextCore.getContextManager().getActiveContext() != null
58
				updateTypeHistory(element, false);
59
					&& event.getElements().size() > ContextCore.getContextManager()
60
							.getActiveContext()
61
							.getInteresting()
62
							.size()) {
63
				// rebuild as it will take longer to remove all of the deleted nodes
64
				clearTypeHistory();
65
				for (IInteractionElement node : ContextCore.getContextManager().getActiveContext().getInteresting()) {
66
					updateTypeHistory(node, true);
67
				}
68
			} else {
69
				for (IInteractionElement element : event.getElements()) {
70
					updateTypeHistory(element, false);
71
				}
59
			}
72
			}
60
			break;
73
			break;
61
		}
74
		}

Return to bug 274904