|
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 |
} |