|
Lines 36-42
Link Here
|
| 36 |
import org.eclipse.debug.core.model.IMemoryBlockRetrievalExtension; |
36 |
import org.eclipse.debug.core.model.IMemoryBlockRetrievalExtension; |
| 37 |
import org.eclipse.debug.core.model.MemoryByte; |
37 |
import org.eclipse.debug.core.model.MemoryByte; |
| 38 |
import org.eclipse.debug.internal.ui.memory.MemoryRenderingManager; |
38 |
import org.eclipse.debug.internal.ui.memory.MemoryRenderingManager; |
| 39 |
import org.eclipse.debug.internal.ui.views.memory.MemoryViewUtil; |
|
|
| 40 |
import org.eclipse.debug.ui.DebugUITools; |
39 |
import org.eclipse.debug.ui.DebugUITools; |
| 41 |
import org.eclipse.debug.ui.contexts.DebugContextEvent; |
40 |
import org.eclipse.debug.ui.contexts.DebugContextEvent; |
| 42 |
import org.eclipse.debug.ui.contexts.IDebugContextListener; |
41 |
import org.eclipse.debug.ui.contexts.IDebugContextListener; |
|
Lines 345-356
Link Here
|
| 345 |
|
344 |
|
| 346 |
if(inNewTab || activeFolder.getSelection() == null) |
345 |
if(inNewTab || activeFolder.getSelection() == null) |
| 347 |
{ |
346 |
{ |
| 348 |
CTabItem item = createTab(activeFolder, activeFolder.getSelectionIndex() + 1); |
347 |
try { |
| 349 |
populateTabWithRendering(item, retrieval, context); |
348 |
IMemoryBlock block = createMemoryBlock(retrieval, expression, context); //$NON-NLS-1$ |
| 350 |
setTabFolder(retrieval, activeFolder); |
349 |
CTabItem item = createTab(activeFolder, activeFolder.getSelectionIndex() + 1); |
| 351 |
activeFolder.setSelection(item); |
350 |
populateTabWithRendering(item, retrieval, context, block); |
| 352 |
getSite().getSelectionProvider().setSelection(new StructuredSelection(item.getData(KEY_RENDERING))); |
351 |
setTabFolder(retrieval, activeFolder); |
| 353 |
} |
352 |
activeFolder.setSelection(item); |
|
|
353 |
getSite().getSelectionProvider().setSelection(new StructuredSelection(item.getData(KEY_RENDERING))); |
| 354 |
} catch (DebugException e1) { |
| 355 |
fGotoAddressBar.handleExpressionStatus(new Status(Status.ERROR, MemoryBrowserPlugin.PLUGIN_ID, |
| 356 |
Messages.getString("MemoryBrowser.FailedToGoToAddressTitle"), e1)); |
| 357 |
return; |
| 358 |
} |
| 359 |
} |
| 354 |
|
360 |
|
| 355 |
final IRepositionableMemoryRendering rendering = (IRepositionableMemoryRendering) activeFolder.getSelection().getData(KEY_RENDERING); |
361 |
final IRepositionableMemoryRendering rendering = (IRepositionableMemoryRendering) activeFolder.getSelection().getData(KEY_RENDERING); |
| 356 |
final String gotoExpression = getAddressSpacePrefix() + expression; |
362 |
final String gotoExpression = getAddressSpacePrefix() + expression; |
|
Lines 366-379
Link Here
|
| 366 |
if(((IMemoryBlockExtension) rendering.getMemoryBlock()).supportBaseAddressModification()) |
372 |
if(((IMemoryBlockExtension) rendering.getMemoryBlock()).supportBaseAddressModification()) |
| 367 |
((IMemoryBlockExtension) rendering.getMemoryBlock()).setBaseAddress(newBase); |
373 |
((IMemoryBlockExtension) rendering.getMemoryBlock()).setBaseAddress(newBase); |
| 368 |
rendering.goToAddress(newBase); |
374 |
rendering.goToAddress(newBase); |
|
|
375 |
fGotoAddressBar.handleExpressionStatus(Status.OK_STATUS); |
| 369 |
runOnUIThread(new Runnable(){ |
376 |
runOnUIThread(new Runnable(){ |
| 370 |
public void run() |
377 |
public void run() |
| 371 |
{ |
378 |
{ |
| 372 |
updateLabel(activeFolder.getSelection(), rendering); |
379 |
updateLabel(activeFolder.getSelection(), rendering); |
| 373 |
} |
380 |
} |
| 374 |
}); |
381 |
}); |
| 375 |
} catch (DebugException e1) { |
382 |
} catch (final DebugException e1) { |
| 376 |
MemoryViewUtil.openError(Messages.getString("MemoryBrowser.FailedToGoToAddressTitle"), "", e1); //$NON-NLS-1$ |
383 |
// widgets update require Display |
|
|
384 |
runOnUIThread(new Runnable(){ |
| 385 |
public void run() { |
| 386 |
fGotoAddressBar.handleExpressionStatus(new Status(Status.ERROR, MemoryBrowserPlugin.PLUGIN_ID, |
| 387 |
Messages.getString("MemoryBrowser.FailedToGoToAddressTitle"), e1)); |
| 388 |
} |
| 389 |
}); |
| 377 |
} |
390 |
} |
| 378 |
} |
391 |
} |
| 379 |
}.start(); |
392 |
}.start(); |
|
Lines 632-638
Link Here
|
| 632 |
{ |
645 |
{ |
| 633 |
fStackLayout.topControl = tabFolder; |
646 |
fStackLayout.topControl = tabFolder; |
| 634 |
} |
647 |
} |
| 635 |
else |
648 |
else |
| 636 |
{ |
649 |
{ |
| 637 |
tabFolder = this.createTabFolder(fRenderingsComposite); |
650 |
tabFolder = this.createTabFolder(fRenderingsComposite); |
| 638 |
tabFolder.addSelectionListener(new SelectionListener() |
651 |
tabFolder.addSelectionListener(new SelectionListener() |
|
Lines 643-652
Link Here
|
| 643 |
} |
656 |
} |
| 644 |
}); |
657 |
}); |
| 645 |
|
658 |
|
| 646 |
tabFolder.setData(KEY_RETRIEVAL, retrieval); |
659 |
tabFolder.setData(KEY_RETRIEVAL, retrieval); |
| 647 |
|
|
|
| 648 |
CTabItem item = createTab(tabFolder, 0); |
| 649 |
populateTabWithRendering(item, retrieval, context); |
| 650 |
setTabFolder(retrieval, tabFolder); |
660 |
setTabFolder(retrieval, tabFolder); |
| 651 |
|
661 |
|
| 652 |
fStackLayout.topControl = getTabFolder(retrieval); |
662 |
fStackLayout.topControl = getTabFolder(retrieval); |
|
Lines 678-684
Link Here
|
| 678 |
store.setValue(PREF_DEFAULT_RENDERING, defaultRenderingTypeId); |
688 |
store.setValue(PREF_DEFAULT_RENDERING, defaultRenderingTypeId); |
| 679 |
} |
689 |
} |
| 680 |
|
690 |
|
| 681 |
private void populateTabWithRendering(final CTabItem tab, final IMemoryBlockRetrieval retrieval, Object context) |
691 |
private void populateTabWithRendering(final CTabItem tab, final IMemoryBlockRetrieval retrieval, Object context, IMemoryBlock block) |
| 682 |
{ |
692 |
{ |
| 683 |
IMemoryRenderingType type = DebugUITools.getMemoryRenderingManager().getRenderingType(getDefaultRenderingTypeId()); |
693 |
IMemoryRenderingType type = DebugUITools.getMemoryRenderingManager().getRenderingType(getDefaultRenderingTypeId()); |
| 684 |
try { |
694 |
try { |
|
Lines 711-719
Link Here
|
| 711 |
public void removeMemoryRendering(IMemoryRendering rendering) {} |
721 |
public void removeMemoryRendering(IMemoryRendering rendering) {} |
| 712 |
|
722 |
|
| 713 |
}; |
723 |
}; |
| 714 |
|
724 |
|
| 715 |
IMemoryBlock block = createMemoryBlock(retrieval, "0", context); //$NON-NLS-1$ |
|
|
| 716 |
|
| 717 |
fCurrentContainers.add(container); |
725 |
fCurrentContainers.add(container); |
| 718 |
rendering.init(container, block); |
726 |
rendering.init(container, block); |
| 719 |
rendering.createControl(tab.getParent()); |
727 |
rendering.createControl(tab.getParent()); |