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 202678
Collapse All | Expand All

(-)ui/org/eclipse/debug/internal/ui/elements/adapters/RegisterGroupProxy.java (+4 lines)
Lines 91-96 Link Here
91
			return TreePath.EMPTY;
91
			return TreePath.EMPTY;
92
		}
92
		}
93
93
94
		public Object getViewerInput() {
95
		    return fFrame;
96
		}
97
		
94
		/* (non-Javadoc)
98
		/* (non-Javadoc)
95
		 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate#getPresentationContext()
99
		 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate#getPresentationContext()
96
		 */
100
		 */
(-)ui/org/eclipse/debug/internal/ui/viewers/model/ElementMementoRequest.java (-2 / +2 lines)
Lines 29-36 Link Here
29
	 * @param element
29
	 * @param element
30
	 * @param memento
30
	 * @param memento
31
	 */
31
	 */
32
	public ElementMementoRequest(ModelContentProvider provider, IMementoManager manager, IPresentationContext context, Object element, TreePath elementPath, IMemento memento, ModelDelta delta) {
32
	public ElementMementoRequest(ModelContentProvider provider, IMementoManager manager, IPresentationContext context, Object element, TreePath elementPath, Object viewerInput, IMemento memento, ModelDelta delta) {
33
		super(provider, context, element, elementPath, memento);
33
		super(provider, context, element, elementPath, viewerInput, memento);
34
		fManager = manager;
34
		fManager = manager;
35
		fDelta = delta;
35
		fDelta = delta;
36
	}
36
	}
(-)ui/org/eclipse/debug/internal/ui/viewers/model/LabelUpdate.java (-1 / +7 lines)
Lines 29-34 Link Here
29
class LabelUpdate extends Request implements ILabelUpdate {
29
class LabelUpdate extends Request implements ILabelUpdate {
30
	
30
	
31
	private TreePath fElementPath;
31
	private TreePath fElementPath;
32
	private Object fViewerInput;
32
	private String[] fColumnIds;
33
	private String[] fColumnIds;
33
	private RGB[] fBackgrounds;
34
	private RGB[] fBackgrounds;
34
	private RGB[] fForegrounds;
35
	private RGB[] fForegrounds;
Lines 57-65 Link Here
57
	 * @param columnIds column identifiers or <code>null</code>
58
	 * @param columnIds column identifiers or <code>null</code>
58
	 * @param context presentation context
59
	 * @param context presentation context
59
	 */
60
	 */
60
	public LabelUpdate(TreePath elementPath, TreeItem item, TreeModelLabelProvider provider, String[] columnIds, IPresentationContext context) {
61
	public LabelUpdate(TreePath elementPath, Object viewerInput, TreeItem item, TreeModelLabelProvider provider, String[] columnIds, IPresentationContext context) {
61
		fContext = context;
62
		fContext = context;
62
		fElementPath = elementPath;
63
		fElementPath = elementPath;
64
		fViewerInput = viewerInput;
63
		fProvider = provider;
65
		fProvider = provider;
64
		fColumnIds = columnIds;
66
		fColumnIds = columnIds;
65
		fItem = item;
67
		fItem = item;
Lines 84-89 Link Here
84
	public TreePath getElementPath() {
86
	public TreePath getElementPath() {
85
		return fElementPath;
87
		return fElementPath;
86
	}
88
	}
89
	
90
	public Object getViewerInput() {
91
	    return fViewerInput;
92
	}
87
93
88
	/* (non-Javadoc)
94
	/* (non-Javadoc)
89
	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate#setBackground(org.eclipse.swt.graphics.RGB, int)
95
	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate#setBackground(org.eclipse.swt.graphics.RGB, int)
(-)ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelLabelProvider.java (-1 / +1 lines)
Lines 196-202 Link Here
196
		Object element = elementPath.getLastSegment();
196
		Object element = elementPath.getLastSegment();
197
		IElementLabelProvider presentation = ViewerAdapterService.getLabelProvider(element);
197
		IElementLabelProvider presentation = ViewerAdapterService.getLabelProvider(element);
198
		if (presentation != null) {
198
		if (presentation != null) {
199
			presentation.update(new ILabelUpdate[]{new LabelUpdate(elementPath, (TreeItem) row.getItem(), this, visibleColumns, fViewer.getPresentationContext())});
199
			presentation.update(new ILabelUpdate[]{new LabelUpdate(elementPath, fViewer.getInput(), (TreeItem) row.getItem(), this, visibleColumns, fViewer.getPresentationContext())});
200
		} else if (element instanceof String) {
200
		} else if (element instanceof String) {
201
			// for example, expression error messages
201
			// for example, expression error messages
202
			row.setText(0, (String)element);
202
			row.setText(0, (String)element);
(-)ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java (-3 / +3 lines)
Lines 61-67 Link Here
61
		Object element = getElement(path);
61
		Object element = getElement(path);
62
		IElementContentProvider contentAdapter = ViewerAdapterService.getContentProvider(element);
62
		IElementContentProvider contentAdapter = ViewerAdapterService.getContentProvider(element);
63
		if (contentAdapter != null) {
63
		if (contentAdapter != null) {
64
			ChildrenCountUpdate request = new ChildrenCountUpdate(this, path, element, contentAdapter, getPresentationContext());
64
			ChildrenCountUpdate request = new ChildrenCountUpdate(this, path, getViewer().getInput(), contentAdapter, getPresentationContext());
65
			schedule(request);
65
			schedule(request);
66
		}
66
		}
67
	}	
67
	}	
Lines 70-76 Link Here
70
		Object parent = getElement(parentPath);
70
		Object parent = getElement(parentPath);
71
		IElementContentProvider contentAdapter = ViewerAdapterService.getContentProvider(parent);
71
		IElementContentProvider contentAdapter = ViewerAdapterService.getContentProvider(parent);
72
		if (contentAdapter != null) {
72
		if (contentAdapter != null) {
73
			ChildrenUpdate request = new ChildrenUpdate(this, parentPath, parent, modelIndex, contentAdapter, getPresentationContext());
73
			ChildrenUpdate request = new ChildrenUpdate(this, parentPath, getViewer().getInput(), modelIndex, contentAdapter, getPresentationContext());
74
			schedule(request);
74
			schedule(request);
75
		}			
75
		}			
76
	}	
76
	}	
Lines 79-85 Link Here
79
		Object element = getElement(path);
79
		Object element = getElement(path);
80
		IElementContentProvider contentAdapter = ViewerAdapterService.getContentProvider(element);
80
		IElementContentProvider contentAdapter = ViewerAdapterService.getContentProvider(element);
81
		if (contentAdapter != null) {
81
		if (contentAdapter != null) {
82
			HasChildrenUpdate request = new HasChildrenUpdate(this, path, element, contentAdapter, getPresentationContext());
82
			HasChildrenUpdate request = new HasChildrenUpdate(this, path, getViewer().getInput(), contentAdapter, getPresentationContext());
83
			schedule(request);
83
			schedule(request);
84
		}
84
		}
85
	}		
85
	}		
(-)ui/org/eclipse/debug/internal/ui/viewers/model/MementoUpdate.java (-1 / +7 lines)
Lines 24-29 Link Here
24
	private IPresentationContext fContext;
24
	private IPresentationContext fContext;
25
	private Object fElement;
25
	private Object fElement;
26
	private TreePath fElementPath;
26
	private TreePath fElementPath;
27
	private Object fViewerInput;
27
	private IMemento fMemento;
28
	private IMemento fMemento;
28
	protected ModelContentProvider fProvider;
29
	protected ModelContentProvider fProvider;
29
	
30
	
Lines 34-43 Link Here
34
	 * @param element element
35
	 * @param element element
35
	 * @param memento memento
36
	 * @param memento memento
36
	 */
37
	 */
37
	public MementoUpdate(ModelContentProvider provider, IPresentationContext context, Object element, TreePath elementPath, IMemento memento) {
38
	public MementoUpdate(ModelContentProvider provider, IPresentationContext context, Object element, TreePath elementPath, Object viewerInput, IMemento memento) {
38
		fContext = context;
39
		fContext = context;
39
		fElement = element;
40
		fElement = element;
40
		fElementPath = elementPath;
41
		fElementPath = elementPath;
42
		fViewerInput = viewerInput;
41
		fMemento = memento;
43
		fMemento = memento;
42
		fProvider = provider;
44
		fProvider = provider;
43
	}
45
	}
Lines 57-62 Link Here
57
		return fElementPath;
59
		return fElementPath;
58
	}
60
	}
59
	
61
	
62
	public Object getViewerInput() {
63
	    return fViewerInput;
64
	}
65
	
60
	public IMemento getMemento() {
66
	public IMemento getMemento() {
61
		return fMemento;
67
		return fMemento;
62
	}
68
	}
(-)ui/org/eclipse/debug/internal/ui/viewers/model/ViewerUpdateMonitor.java (-5 / +13 lines)
Lines 37-43 Link Here
37
	/**
37
	/**
38
	 * Element
38
	 * Element
39
	 */
39
	 */
40
	private Object fElement;
40
	private Object fViewerInput;
41
	
41
	
42
	/**
42
	/**
43
	 * Element content provider
43
	 * Element content provider
Lines 83-93 Link Here
83
     * @param elementPath path to associated model element - empty for root element
83
     * @param elementPath path to associated model element - empty for root element
84
     * @param element associated model element
84
     * @param element associated model element
85
     */
85
     */
86
    public ViewerUpdateMonitor(ModelContentProvider contentProvider, TreePath elementPath, Object element, IElementContentProvider elementContentProvider, IPresentationContext context) {
86
    public ViewerUpdateMonitor(ModelContentProvider contentProvider, TreePath elementPath, Object viewerInput, IElementContentProvider elementContentProvider, IPresentationContext context) {
87
    	fContext = context;
87
    	fContext = context;
88
    	fElementContentProvider = elementContentProvider;
88
    	fElementContentProvider = elementContentProvider;
89
        fContentProvider = contentProvider;
89
        fContentProvider = contentProvider;
90
        fElement = element;
90
        fViewerInput = viewerInput;
91
        fElementPath = elementPath;
91
        fElementPath = elementPath;
92
        // serialize updates per viewer
92
        // serialize updates per viewer
93
        fViewerUpdateJob.setRule(getUpdateSchedulingRule());
93
        fViewerUpdateJob.setRule(getUpdateSchedulingRule());
Lines 168-182 Link Here
168
	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate#getElement()
168
	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate#getElement()
169
	 */
169
	 */
170
	public Object getElement() {
170
	public Object getElement() {
171
		return fElement;
171
	    if (fElementPath.getSegmentCount() != 0) {
172
	        return fElementPath.getLastSegment();
173
	    } else {
174
            return fViewerInput;
175
	    }
172
	}
176
	}
173
	
177
174
	/* (non-Javadoc)
178
	/* (non-Javadoc)
175
	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate#getElementPath()
179
	 * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate#getElementPath()
176
	 */
180
	 */
177
	public TreePath getElementPath() {
181
	public TreePath getElementPath() {
178
		return fElementPath;
182
		return fElementPath;
179
	}
183
	}
184
185
	public Object getViewerInput() {
186
	    return fViewerInput;
187
	}
180
	
188
	
181
	/**
189
	/**
182
	 * Returns whether this request can coalesce the given request, and performs the
190
	 * Returns whether this request can coalesce the given request, and performs the
(-)ui/org/eclipse/debug/internal/ui/viewers/model/ModelContentProvider.java (-6 / +6 lines)
Lines 311-317 Link Here
311
			
311
			
312
			};
312
			};
313
			manager.addRequest(new ElementMementoRequest(ModelContentProvider.this, manager, getPresentationContext(),
313
			manager.addRequest(new ElementMementoRequest(ModelContentProvider.this, manager, getPresentationContext(),
314
									delta.getElement(), getViewerTreePath(delta), inputMemento, delta));
314
									delta.getElement(), getViewerTreePath(delta), getViewer().getInput(), inputMemento, delta));
315
			manager.processReqeusts();
315
			manager.processReqeusts();
316
		}
316
		}
317
	}
317
	}
Lines 350-356 Link Here
350
					if (provider != null) {
350
					if (provider != null) {
351
						provider.compareElements(new IElementCompareRequest[]{
351
						provider.compareElements(new IElementCompareRequest[]{
352
								new ElementCompareRequest(ModelContentProvider.this,
352
								new ElementCompareRequest(ModelContentProvider.this,
353
										potentialMatch, path, (IMemento) element, (ModelDelta)delta)});
353
										potentialMatch, path, getViewer().getInput(), (IMemento) element, (ModelDelta)delta)});
354
					}
354
					}
355
				} else {
355
				} else {
356
					if (element.equals(potentialMatch)) {
356
					if (element.equals(potentialMatch)) {
Lines 377-383 Link Here
377
			buildViewerState(delta);
377
			buildViewerState(delta);
378
			if (delta.getChildDeltas().length > 0) {
378
			if (delta.getChildDeltas().length > 0) {
379
				// encode delta with mementos in place of elements, in non-UI thread
379
				// encode delta with mementos in place of elements, in non-UI thread
380
				encodeDelta(delta, stateProvider);
380
				encodeDelta(input, delta, stateProvider);
381
			}
381
			}
382
		}
382
		}
383
	}
383
	}
Lines 388-394 Link Here
388
	 * @param delta
388
	 * @param delta
389
	 * @param stateProvider
389
	 * @param stateProvider
390
	 */
390
	 */
391
	protected void encodeDelta(final ModelDelta rootDelta, final IElementMementoProvider defaultProvider) {
391
	protected void encodeDelta(final Object input, final ModelDelta rootDelta, final IElementMementoProvider defaultProvider) {
392
		final XMLMemento inputMemento = XMLMemento.createWriteRoot("VIEWER_INPUT_MEMENTO"); //$NON-NLS-1$
392
		final XMLMemento inputMemento = XMLMemento.createWriteRoot("VIEWER_INPUT_MEMENTO"); //$NON-NLS-1$
393
		final XMLMemento childrenMemento = XMLMemento.createWriteRoot("CHILDREN_MEMENTO"); //$NON-NLS-1$
393
		final XMLMemento childrenMemento = XMLMemento.createWriteRoot("CHILDREN_MEMENTO"); //$NON-NLS-1$
394
		final IMementoManager manager = new IMementoManager() {
394
		final IMementoManager manager = new IMementoManager() {
Lines 471-481 Link Here
471
				if (delta.getParentDelta() == null) {
471
				if (delta.getParentDelta() == null) {
472
					manager.addRequest(
472
					manager.addRequest(
473
						new ElementMementoRequest(ModelContentProvider.this, manager, getPresentationContext(),
473
						new ElementMementoRequest(ModelContentProvider.this, manager, getPresentationContext(),
474
								delta.getElement(), getViewerTreePath(delta), inputMemento, (ModelDelta)delta));
474
								delta.getElement(), getViewerTreePath(delta), input, inputMemento, (ModelDelta)delta));
475
				} else {
475
				} else {
476
					manager.addRequest(
476
					manager.addRequest(
477
						new ElementMementoRequest(ModelContentProvider.this, manager, getPresentationContext(),
477
						new ElementMementoRequest(ModelContentProvider.this, manager, getPresentationContext(),
478
								delta.getElement(), getViewerTreePath(delta), childrenMemento.createChild("CHILD_ELEMENT"), (ModelDelta)delta)); //$NON-NLS-1$
478
								delta.getElement(), getViewerTreePath(delta), input, childrenMemento.createChild("CHILD_ELEMENT"), (ModelDelta)delta)); //$NON-NLS-1$
479
				}
479
				}
480
				return true;
480
				return true;
481
			}
481
			}
(-)ui/org/eclipse/debug/internal/ui/viewers/model/ElementCompareRequest.java (-2 / +2 lines)
Lines 27-34 Link Here
27
	 * @param element
27
	 * @param element
28
	 * @param memento
28
	 * @param memento
29
	 */
29
	 */
30
	public ElementCompareRequest(ModelContentProvider provider, Object element, TreePath elementPath, IMemento memento, ModelDelta delta) {
30
	public ElementCompareRequest(ModelContentProvider provider, Object element, TreePath elementPath, Object viewerInput, IMemento memento, ModelDelta delta) {
31
		super(provider, provider.getPresentationContext(), element, elementPath, memento);
31
		super(provider, provider.getPresentationContext(), element, elementPath, viewerInput, memento);
32
		fProvider = provider;
32
		fProvider = provider;
33
		fDelta = delta;
33
		fDelta = delta;
34
	}
34
	}
(-)ui/org/eclipse/debug/internal/ui/viewers/model/provisional/IViewerUpdate.java (+8 lines)
Lines 43-46 Link Here
43
     * @return tree path, possibly empty
43
     * @return tree path, possibly empty
44
     */
44
     */
45
    public TreePath getElementPath();
45
    public TreePath getElementPath();
46
    
47
    /**
48
     * Returns the input in the viewer associated with this request. The
49
     * viewer input is not part of the element path.
50
     * 
51
     * @return viewer input 
52
     */
53
    public Object getViewerInput();
46
}
54
}

Return to bug 202678