From b254ebb961b73b3d7e61337190023253fd1f0ad1 Mon Sep 17 00:00:00 2001 From: Ted Williams Date: Tue, 18 Nov 2008 05:22:56 +0000 Subject: [PATCH] [255593] [Traditional Rendering] Goto Context Action redundant if experimental Goto Address bar is present --- .../traditional/TraditionalRendering.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/plugins/org.eclipse.dd.debug.memory.renderings.traditional/src/org/eclipse/dd/debug/memory/renderings/traditional/TraditionalRendering.java b/plugins/org.eclipse.dd.debug.memory.renderings.traditional/src/org/eclipse/dd/debug/memory/renderings/traditional/TraditionalRendering.java index 94e146a66cd..ed6979e4ad9 100644 --- a/plugins/org.eclipse.dd.debug.memory.renderings.traditional/src/org/eclipse/dd/debug/memory/renderings/traditional/TraditionalRendering.java +++ b/plugins/org.eclipse.dd.debug.memory.renderings.traditional/src/org/eclipse/dd/debug/memory/renderings/traditional/TraditionalRendering.java @@ -25,12 +25,14 @@ import org.eclipse.core.runtime.Status; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.model.IMemoryBlock; import org.eclipse.debug.core.model.IMemoryBlockExtension; +import org.eclipse.debug.core.model.IMemoryBlockRetrieval; import org.eclipse.debug.core.model.MemoryByte; import org.eclipse.debug.internal.ui.DebugPluginImages; import org.eclipse.debug.internal.ui.DebugUIMessages; import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.internal.ui.IInternalDebugUIConstants; import org.eclipse.debug.internal.ui.memory.IMemoryBlockConnection; +import org.eclipse.debug.internal.ui.views.memory.MemoryViewUtil; import org.eclipse.debug.internal.ui.views.memory.renderings.GoToAddressAction; import org.eclipse.debug.ui.IDebugUIConstants; import org.eclipse.debug.ui.memory.AbstractMemoryRendering; @@ -1078,7 +1080,28 @@ public class TraditionalRendering extends AbstractMemoryRendering implements IRe manager.add(copyAction); manager.add(copyAddressAction); - manager.add(gotoAddressAction); + // IMemoryGoToAddressProvider interface, called using reflection, waiting on platform acceptance of patch + final IMemoryBlockRetrieval retrieve = MemoryViewUtil.getMemoryBlockRetrieval(TraditionalRendering.this.getMemoryBlock()); + if (retrieve != null) + { + try + { + Method m = retrieve.getClass().getMethod("getGoToAddressRenderingId", new Class[] {}); + m.setAccessible(true); + + if(m != null) + { + String id = (String) m.invoke(retrieve, new Object[] {}); + if(id == null) + manager.add(gotoAddressAction); + } + } + catch(Exception e) + { + // do nothing + } + } + manager.add(gotoBaseAddressAction); manager.add(refreshAction); manager.add(new Separator());