Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/AsynchronousDebugLabelAdapter.java135
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/DefaultVariableCellModifier.java74
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/DefaultViewerInputProvider.java42
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemoryBlockContentAdapter.java503
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemoryBlockLabelAdapter.java60
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemoryRetrievalContentAdapter.java52
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemorySegmentLabelAdapter.java418
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/Messages.java34
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/Messages.properties14
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/RegisterGroupProxy.java429
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/StackFrameSourceDisplayAdapter.java237
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/StackFrameViewerInputProvider.java47
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/VariableColumnFactoryAdapter.java52
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/VariableColumnPresentation.java86
14 files changed, 0 insertions, 2183 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/AsynchronousDebugLabelAdapter.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/AsynchronousDebugLabelAdapter.java
deleted file mode 100644
index 7f84fba56..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/AsynchronousDebugLabelAdapter.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.debug.internal.ui.elements.adapters;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.model.IDebugElement;
-import org.eclipse.debug.internal.ui.DelegatingModelPresentation;
-import org.eclipse.debug.internal.ui.LazyModelPresentation;
-import org.eclipse.debug.internal.ui.viewers.PartPresentationContext;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.debug.internal.ui.viewers.provisional.AsynchronousLabelAdapter;
-import org.eclipse.debug.internal.ui.viewers.provisional.ILabelRequestMonitor;
-import org.eclipse.debug.internal.ui.views.launch.DebugElementHelper;
-import org.eclipse.debug.ui.IDebugModelPresentation;
-import org.eclipse.debug.ui.IDebugView;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Asynchronous label adapter for debug elements.
- *
- * @since 3.2
- */
-public class AsynchronousDebugLabelAdapter extends AsynchronousLabelAdapter {
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.viewers.AsynchronousLabelAdapter#computeLabels(java.lang.Object, org.eclipse.debug.ui.viewers.IPresentationContext, org.eclipse.debug.ui.viewers.ILabelRequestMonitor)
- */
- protected void computeLabels(Object element, IPresentationContext context, ILabelRequestMonitor monitor) {
- DelegatingModelPresentation presentation = DebugElementHelper.getPresentation();
- // Honor view specific settings in a debug view by copying model presentation settings
- // into the debug element helper's presentation before we get the label. This allows
- // for qualified name and type name settings to remain in tact.
- if (context instanceof PartPresentationContext) {
- PartPresentationContext ppc = (PartPresentationContext) context;
- if (element instanceof IDebugElement && ppc.getPart() instanceof IDebugView) {
- IWorkbenchPart part = ppc.getPart();
- if (part instanceof IDebugView) {
- IDebugModelPresentation pres = ((IDebugView)part).getPresentation(((IDebugElement)element).getModelIdentifier());
- Map settings = null;
- synchronized (presentation) {
- if (pres instanceof DelegatingModelPresentation) {
- settings = ((DelegatingModelPresentation)pres).getAttributes();
- } else if (pres instanceof LazyModelPresentation) {
- settings = ((LazyModelPresentation)pres).getAttributes();
- }
- if (settings != null) {
- Iterator iterator = settings.entrySet().iterator();
- while (iterator.hasNext()) {
- Map.Entry entry = (Entry) iterator.next();
- presentation.setAttribute((String) entry.getKey(), entry.getValue());
- }
- super.computeLabels(element, context, monitor);
- return;
- }
- }
- }
- }
- }
- super.computeLabels(element, context, monitor);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.viewers.AsynchronousLabelAdapter#getLabels(java.lang.Object, org.eclipse.debug.ui.viewers.IPresentationContext)
- */
- protected String[] getLabels(Object element, IPresentationContext context) throws CoreException {
- return new String[] {DebugElementHelper.getLabel(element)};
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.viewers.AsynchronousLabelAdapter#getImageDescriptors(java.lang.Object, org.eclipse.debug.ui.viewers.IPresentationContext)
- */
- protected ImageDescriptor[] getImageDescriptors(Object element, IPresentationContext context) throws CoreException {
- return new ImageDescriptor[] {DebugElementHelper.getImageDescriptor(element)};
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.viewers.AsynchronousLabelAdapter#getFontDatas(java.lang.Object, org.eclipse.debug.ui.viewers.IPresentationContext)
- */
- protected FontData[] getFontDatas(Object element, IPresentationContext context) throws CoreException {
- FontData[] datas = new FontData[getNumElements(context)];
- Arrays.fill(datas, DebugElementHelper.getFont(element));
- return datas;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.viewers.AsynchronousLabelAdapter#getForegrounds(java.lang.Object, org.eclipse.debug.ui.viewers.IPresentationContext)
- */
- protected RGB[] getForegrounds(Object element, IPresentationContext context) throws CoreException {
- RGB[] rgbs = new RGB[getNumElements(context)];
- Arrays.fill(rgbs, DebugElementHelper.getForeground(element));
- return rgbs;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.viewers.AsynchronousLabelAdapter#getBackgrounds(java.lang.Object, org.eclipse.debug.ui.viewers.IPresentationContext)
- */
- protected RGB[] getBackgrounds(Object element, IPresentationContext context) throws CoreException {
- RGB[] rgbs = new RGB[getNumElements(context)];
- Arrays.fill(rgbs, DebugElementHelper.getBackground(element));
- return rgbs;
- }
-
- /**
- * Returns the number of columns in the given presentation context, or 1
- * if there are no columns.
- *
- * @param context presentation context
- * @return number of columns or 1 if none
- */
- protected int getNumElements(IPresentationContext context) {
- String[] columns = context.getColumns();
- if (columns == null) {
- return 1;
- }
- return columns.length;
- }
-
-}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/DefaultVariableCellModifier.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/DefaultVariableCellModifier.java
deleted file mode 100644
index 346efdc21..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/DefaultVariableCellModifier.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.ui.elements.adapters;
-
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IVariable;
-import org.eclipse.debug.internal.ui.DebugUIPlugin;
-import org.eclipse.debug.internal.ui.DefaultLabelProvider;
-import org.eclipse.debug.internal.ui.actions.variables.details.DetailPaneAssignValueAction;
-import org.eclipse.jface.viewers.ICellModifier;
-
-/**
- * @since 3.2
- *
- */
-public class DefaultVariableCellModifier implements ICellModifier {
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, java.lang.String)
- */
- public boolean canModify(Object element, String property) {
- if (VariableColumnPresentation.COLUMN_VARIABLE_VALUE.equals(property)) {
- if (element instanceof IVariable) {
- return ((IVariable) element).supportsValueModification();
- }
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object, java.lang.String)
- */
- public Object getValue(Object element, String property) {
- if (VariableColumnPresentation.COLUMN_VARIABLE_VALUE.equals(property)) {
- if (element instanceof IVariable) {
- IVariable variable = (IVariable) element;
- try {
- return DefaultLabelProvider.escapeSpecialChars(variable.getValue().getValueString());
- } catch (DebugException e) {
- DebugUIPlugin.log(e);
- }
- }
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, java.lang.String, java.lang.Object)
- */
- public void modify(Object element, String property, Object value) {
- Object oldValue = getValue(element, property);
- if (!value.equals(oldValue)) {
- if (VariableColumnPresentation.COLUMN_VARIABLE_VALUE.equals(property)) {
- if (element instanceof IVariable) {
- if (value instanceof String) {
- // The value column displays special characters escaped, so encode the string with any special characters escaped properly
- String valueExpression = DefaultLabelProvider.encodeEsacpedChars((String)value);
- IVariable variable = (IVariable) element;
- DetailPaneAssignValueAction.assignValue(DebugUIPlugin.getShell(), variable, valueExpression);
- }
- }
- }
- }
- }
-
-}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/DefaultViewerInputProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/DefaultViewerInputProvider.java
deleted file mode 100644
index cd5a10d91..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/DefaultViewerInputProvider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Wind River Systems and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.ui.elements.adapters;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.internal.ui.model.elements.ViewerInputProvider;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate;
-import org.eclipse.debug.ui.IDebugUIConstants;
-
-/**
- * Default input provider supplies the expression manager as input to the
- * expression view.
- *
- * @since 3.4
- */
-public class DefaultViewerInputProvider extends ViewerInputProvider {
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.model.elements.ViewerInputProvider#getViewerInput(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate)
- */
- protected Object getViewerInput(Object source, IPresentationContext context, IViewerUpdate update) throws CoreException {
- return DebugPlugin.getDefault().getExpressionManager();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.model.elements.ViewerInputProvider#supportsContextId(java.lang.String)
- */
- protected boolean supportsContextId(String id) {
- return IDebugUIConstants.ID_EXPRESSION_VIEW.equals(id);
- }
-
-}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemoryBlockContentAdapter.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemoryBlockContentAdapter.java
deleted file mode 100644
index 65c221efa..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemoryBlockContentAdapter.java
+++ /dev/null
@@ -1,503 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * WindRiver - Bug 192028 [Memory View] Memory view does not
- * display memory blocks that do not reference IDebugTarget
- *******************************************************************************/
-
-package org.eclipse.debug.internal.ui.elements.adapters;
-
-import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IMemoryBlock;
-import org.eclipse.debug.core.model.IMemoryBlockExtension;
-import org.eclipse.debug.core.model.MemoryByte;
-import org.eclipse.debug.internal.ui.DebugUIMessages;
-import org.eclipse.debug.internal.ui.DebugUIPlugin;
-import org.eclipse.debug.internal.ui.memory.provisional.AbstractAsyncTableRendering;
-import org.eclipse.debug.internal.ui.memory.provisional.MemoryViewPresentationContext;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.debug.internal.ui.viewers.provisional.AsynchronousContentAdapter;
-import org.eclipse.debug.internal.ui.views.memory.MemoryViewUtil;
-import org.eclipse.debug.internal.ui.views.memory.renderings.MemorySegment;
-import org.eclipse.debug.internal.ui.views.memory.renderings.TableRenderingContentDescriptor;
-import org.eclipse.debug.ui.memory.IMemoryRendering;
-
-public class MemoryBlockContentAdapter extends AsynchronousContentAdapter {
-
- // Cache to allow the content provider to comppute change information
- // Cache is taken by copying the lineCache after a suspend event
- // or change event from the the memory block.
- protected Hashtable contentCache;
-
- public MemoryBlockContentAdapter()
- {
- contentCache = new Hashtable();
- }
-
- protected Object[] getChildren(Object parent, IPresentationContext context)
- throws CoreException {
-
- if (!(parent instanceof IMemoryBlock))
- return new Object[0];
-
- if (!(context instanceof MemoryViewPresentationContext))
- return new Object[0];
-
- MemoryViewPresentationContext memoryViewContext = (MemoryViewPresentationContext)context;
- IMemoryRendering rendering = memoryViewContext.getRendering();
-
- if (!(rendering instanceof AbstractAsyncTableRendering))
- return new Object[0];
-
- try
- {
- return getMemoryFromMemoryBlock(memoryViewContext);
- } catch (DebugException e) {
- throw e;
- }
-
- }
-
- protected boolean hasChildren(Object element, IPresentationContext context)
- throws CoreException {
-
- if (context instanceof MemoryViewPresentationContext)
- {
- if (((MemoryViewPresentationContext)context).getRendering() != null)
- return true;
- }
-
- return false;
- }
-
- protected boolean supportsPartId(String id) {
- return true;
- }
-
-
- private Object[] getMemoryFromMemoryBlock(MemoryViewPresentationContext context) throws DebugException {
- IMemoryBlock memoryBlock = context.getRendering().getMemoryBlock();
- if (memoryBlock instanceof IMemoryBlockExtension)
- {
- return loadContentForExtendedMemoryBlock(context);
- }
-
- return loadContentForSimpleMemoryBlock(context);
-
- }
-
- /**
- * @throws DebugException
- */
- public Object[] loadContentForSimpleMemoryBlock(MemoryViewPresentationContext context) throws DebugException {
- AbstractAsyncTableRendering rendering = getTableRendering(context);
- if (rendering != null)
- {
- IMemoryBlock memoryBlock = rendering.getMemoryBlock();
- long startAddress = memoryBlock.getStartAddress();
- BigInteger address = BigInteger.valueOf(startAddress);
- long length = memoryBlock.getLength();
- long numLines = length / rendering.getBytesPerLine();
- return getMemoryToFitTable(address, numLines, context);
- }
- return EMPTY;
- }
-
- /**
- * @throws DebugException
- */
- public Object[] loadContentForExtendedMemoryBlock(MemoryViewPresentationContext context) throws DebugException {
-
- AbstractAsyncTableRendering rendering = getTableRendering(context);
- if (rendering != null)
- {
- TableRenderingContentDescriptor descriptor = (TableRenderingContentDescriptor)rendering.getAdapter(TableRenderingContentDescriptor.class);
-
- if (descriptor == null)
- return new Object[0];
-
- if (descriptor.getNumLines() <= 0)
- return new Object[0];
-
- // calculate top buffered address
- BigInteger loadAddress = descriptor.getLoadAddress();
- if (loadAddress == null)
- {
- loadAddress = new BigInteger("0"); //$NON-NLS-1$
- }
-
- BigInteger mbStart = descriptor.getStartAddress();
- BigInteger mbEnd = descriptor.getEndAddress();
-
- // check that the load address is within range
- if (loadAddress.compareTo(mbStart) < 0 || loadAddress.compareTo(mbEnd) > 0)
- {
- // default load address to memory block base address
- loadAddress = ((IMemoryBlockExtension)descriptor.getMemoryBlock()).getBigBaseAddress();
- descriptor.setLoadAddress(loadAddress);
- }
-
- // if address is still out of range, throw an exception
- if (loadAddress.compareTo(mbStart) < 0 || loadAddress.compareTo(mbEnd) > 0)
- {
- throw new DebugException(DebugUIPlugin.newErrorStatus(DebugUIMessages.TableRenderingContentProvider_0 + loadAddress.toString(16), null));
- }
-
- int addressableUnitsPerLine = rendering.getAddressableUnitPerLine();
- BigInteger bufferStart = loadAddress.subtract(BigInteger.valueOf(descriptor.getPreBuffer()*addressableUnitsPerLine));
- BigInteger bufferEnd = loadAddress.add(BigInteger.valueOf(descriptor.getPostBuffer()*addressableUnitsPerLine));
- bufferEnd = bufferEnd.add(BigInteger.valueOf(descriptor.getNumLines()*addressableUnitsPerLine));
-
- // TODO: should rely on input to tell us what to load
- // instead of having the content adapter override the setting
- if (descriptor.isDynamicLoad())
- {
- if (bufferStart.compareTo(mbStart) < 0)
- bufferStart = mbStart;
-
- if (bufferEnd.compareTo(mbEnd) > 0)
- {
- bufferEnd = mbEnd;
-
- int numLines = bufferEnd.subtract(bufferStart).divide(BigInteger.valueOf(addressableUnitsPerLine)).intValue();
- if (numLines < descriptor.getNumLines())
- {
- // re-calculate buffer start since we may not have enough lines to popoulate the view
- bufferStart = bufferEnd.subtract(BigInteger.valueOf(descriptor.getNumLines()*addressableUnitsPerLine));
- bufferStart = bufferStart.subtract(BigInteger.valueOf(descriptor.getPreBuffer()*addressableUnitsPerLine));
-
- // if after adjusting buffer start, it goes before the memory block start
- // address, adjust it back
- if (bufferStart.compareTo(mbStart) < 0)
- bufferStart = mbStart;
- }
- }
-
- // buffer end must be greater than buffer start
- if (bufferEnd.compareTo(bufferStart) <= 0)
- throw new DebugException(DebugUIPlugin.newErrorStatus(DebugUIMessages.TableRenderingContentProvider_1, null));
-
- int numLines = bufferEnd.subtract(bufferStart).divide(BigInteger.valueOf(addressableUnitsPerLine)).intValue()+1;
- // get stoarage to fit the memory view tab size
- return getMemoryToFitTable(bufferStart, numLines,context);
- }
- else
- {
- if (bufferStart.compareTo(mbStart) < 0)
- bufferStart = mbStart;
-
- if (bufferEnd.compareTo(mbEnd) > 0)
- {
- bufferStart = mbEnd.subtract(BigInteger.valueOf((descriptor.getNumLines()-1)*addressableUnitsPerLine));
- bufferEnd = mbEnd;
-
- // after adjusting buffer start, check if it's smaller than memory block's start address
- if (bufferStart.compareTo(mbStart) < 0)
- bufferStart = mbStart;
- }
-
- // buffer end must be greater than buffer start
- if (bufferEnd.compareTo(bufferStart) <= 0)
- throw new DebugException(DebugUIPlugin.newErrorStatus(DebugUIMessages.TableRenderingContentProvider_2, null));
-
- int numLines = descriptor.getNumLines();
- int bufferNumLines = bufferEnd.subtract(bufferStart).divide(BigInteger.valueOf(addressableUnitsPerLine)).intValue()+1;
-
- if (bufferNumLines < numLines)
- numLines = bufferNumLines;
-
- // get stoarage to fit the memory view tab size
- return getMemoryToFitTable(bufferStart, numLines, context);
- }
- }
- return EMPTY;
- }
-
- /**
- * Get memory to fit table
- * @param startingAddress
- * @param numberOfLines
- * @param updateDelta
- * @throws DebugException
- */
- public Object[] getMemoryToFitTable(BigInteger startAddress, long numberOfLines, MemoryViewPresentationContext context) throws DebugException
- {
- AbstractAsyncTableRendering tableRendering = getTableRendering(context);
- if (tableRendering == null)
- {
- DebugException e = new DebugException(DebugUIPlugin.newErrorStatus(DebugUIMessages.MemoryViewContentProvider_Unable_to_retrieve_content, null));
- throw e;
- }
-
- TableRenderingContentDescriptor descriptor = (TableRenderingContentDescriptor)tableRendering.getAdapter(TableRenderingContentDescriptor.class);
- if(descriptor == null)
- return new Object[0];
-
- // do not ask for memory from memory block if the debug target
- // is already terminated
- IDebugTarget target = descriptor.getMemoryBlock().getDebugTarget();
-
- // check for null target to not calculate and retrieve memory for standard debug model
- if (target != null && (target.isDisconnected() || target.isTerminated()))
- return new Object[0];
-
- boolean error = false;
- DebugException dbgEvt = null;
-
- String adjustedAddress = startAddress.toString(16);
-
- // align to the closest boundary based on addressable size per line
- if (descriptor.isAlignAddressToBoundary() && descriptor.getMemoryBlock() instanceof IMemoryBlockExtension)
- {
- startAddress = MemoryViewUtil.alignToBoundary(startAddress, tableRendering.getAddressableUnitPerLine());
- }
-
- IMemoryBlockExtension extMemoryBlock = null;
- MemoryByte[] memoryBuffer = null;
-
- long reqNumBytes = 0;
- try
- {
-
- if (descriptor.getMemoryBlock() instanceof IMemoryBlockExtension)
- {
- reqNumBytes = tableRendering.getBytesPerLine() * numberOfLines;
- // get memory from memory block
- extMemoryBlock = (IMemoryBlockExtension) descriptor.getMemoryBlock();
-
- long reqNumberOfUnits = tableRendering.getAddressableUnitPerLine() * numberOfLines;
-
- memoryBuffer = extMemoryBlock.getBytesFromAddress(startAddress, reqNumberOfUnits);
-
- if(memoryBuffer == null)
- {
- DebugException e = new DebugException(DebugUIPlugin.newErrorStatus(DebugUIMessages.MemoryViewContentProvider_Unable_to_retrieve_content, null));
- throw e;
- }
- }
- else
- {
- // get memory from memory block
- byte[] memory = descriptor.getMemoryBlock().getBytes();
-
- if (memory == null)
- {
- DebugException e = new DebugException(DebugUIPlugin.newErrorStatus(DebugUIMessages.MemoryViewContentProvider_Unable_to_retrieve_content, null));
- throw e;
- }
-
- int prefillNumBytes = 0;
-
- // number of bytes need to prefill
- if (!startAddress.toString(16).endsWith("0")) //$NON-NLS-1$
- {
- adjustedAddress = startAddress.toString(16).substring(0, adjustedAddress.length() - 1);
- adjustedAddress += "0"; //$NON-NLS-1$
- BigInteger adjustedStart = new BigInteger(adjustedAddress, 16);
- prefillNumBytes = startAddress.subtract(adjustedStart).intValue();
- startAddress = adjustedStart;
- }
- reqNumBytes = descriptor.getMemoryBlock().getLength() + prefillNumBytes;
-
- // figure out number of dummy bytes to append
- while (reqNumBytes % tableRendering.getBytesPerLine() != 0)
- {
- reqNumBytes ++;
- }
-
- numberOfLines = reqNumBytes / tableRendering.getBytesPerLine();
-
- // create memory byte for IMemoryBlock
- memoryBuffer = new MemoryByte[(int)reqNumBytes];
-
- // prefill buffer to ensure double-word alignment
- for (int i=0; i<prefillNumBytes; i++)
- {
- MemoryByte tmp = new MemoryByte();
- tmp.setValue((byte)0);
- tmp.setWritable(false);
- tmp.setReadable(false);
- tmp.setEndianessKnown(false);
- memoryBuffer[i] = tmp;
- }
-
- // fill buffer with memory returned by debug adapter
- int j = prefillNumBytes; // counter for memoryBuffer
- for (int i=0; i<memory.length; i++)
- {
- MemoryByte tmp = new MemoryByte();
- tmp.setValue(memory[i]);
- tmp.setReadable(true);
- tmp.setWritable(true);
- tmp.setEndianessKnown(false);
- memoryBuffer[j] = tmp;
- j++;
- }
-
- // append to buffer to fill up the entire line
- for (int i=j; i<memoryBuffer.length; i++)
- {
- MemoryByte tmp = new MemoryByte();
- tmp.setValue((byte)0);
- tmp.setWritable(false);
- tmp.setReadable(false);
- tmp.setEndianessKnown(false);
- memoryBuffer[i] = tmp;
- }
- }
- }
- catch (DebugException e)
- {
- memoryBuffer = makeDummyContent(numberOfLines, tableRendering.getBytesPerLine());
-
- // finish creating the content provider before throwing an event
- error = true;
- dbgEvt = e;
- }
- catch (Throwable e)
- {
- // catch all errors from this process just to be safe
- memoryBuffer = makeDummyContent(numberOfLines, tableRendering.getBytesPerLine());
-
- // finish creating the content provider before throwing an event
- error = true;
- dbgEvt = new DebugException(DebugUIPlugin.newErrorStatus(e.getMessage(), e));
- }
-
- // if debug adapter did not return enough memory, create dummy memory
- if (memoryBuffer.length < reqNumBytes)
- {
- ArrayList newBuffer = new ArrayList();
-
- for (int i=0; i<memoryBuffer.length; i++)
- {
- newBuffer.add(memoryBuffer[i]);
- }
-
- for (int i=memoryBuffer.length; i<reqNumBytes; i++)
- {
- MemoryByte mb = new MemoryByte();
- mb.setReadable(false);
- mb.setWritable(false);
- mb.setEndianessKnown(false);
- newBuffer.add(mb);
- }
-
- memoryBuffer = (MemoryByte[])newBuffer.toArray(new MemoryByte[newBuffer.size()]);
-
- }
-
- boolean manageDelta = true;
-
- // If change information is not managed by the memory block
- // The view tab will manage it and calculate delta information
- // for its content cache.
- if (descriptor.getMemoryBlock() instanceof IMemoryBlockExtension)
- {
- manageDelta = !((IMemoryBlockExtension)descriptor.getMemoryBlock()).supportsChangeManagement();
- }
-
- if (error){
- throw dbgEvt;
- }
-
- // put memory information into MemoryViewLine
- return organizeLines(numberOfLines, memoryBuffer, startAddress, manageDelta, context);
-
-
- }
-
- private Object[] organizeLines(long numberOfLines, MemoryByte[] memoryBuffer, BigInteger address, boolean manageDelta, MemoryViewPresentationContext context)
- {
- Vector lineCache = new Vector();
- IMemoryRendering rendering = context.getRendering();
- if (!(rendering instanceof AbstractAsyncTableRendering))
- return lineCache.toArray();
-
- AbstractAsyncTableRendering tableRendering = (AbstractAsyncTableRendering)rendering;
- int addressableUnit = tableRendering.getBytesPerLine()/tableRendering.getAddressableSize();
-
- for (int i = 0; i < numberOfLines; i++)
- {
- int bytesPerLine = tableRendering.getBytesPerLine();
- MemoryByte[] memory = new MemoryByte[bytesPerLine];
-
- // counter for memory, starts from 0 to number of bytes per line
- int k = 0;
- // j is the counter for memArray, memory returned by debug adapter
- for (int j = i * bytesPerLine;
- j < i * bytesPerLine + bytesPerLine;
- j++)
- {
-
- byte changeFlag = memoryBuffer[j].getFlags();
- if (manageDelta)
- {
- // turn off both change and known bits to make sure that
- // the change bits returned by debug adapters do not take
- // any effect
-
- changeFlag |= MemoryByte.HISTORY_KNOWN;
- changeFlag ^= MemoryByte.HISTORY_KNOWN;
-
- changeFlag |= MemoryByte.CHANGED;
- changeFlag ^= MemoryByte.CHANGED;
- }
-
- MemoryByte newByteObj = new MemoryByte(memoryBuffer[j].getValue(), changeFlag);
- memory[k] = newByteObj;
- k++;
- }
-
- MemorySegment newLine = new MemorySegment(address, memory, addressableUnit);
- lineCache.add(newLine);
- address = address.add(BigInteger.valueOf(addressableUnit));
- }
- return lineCache.toArray();
- }
-
- /**
- * @param numberOfLines
- * @return an array of dummy MemoryByte
- */
- private MemoryByte[] makeDummyContent(long numberOfLines, int bytesPerLine) {
- MemoryByte[] memoryBuffer;
- // make up dummy memory, needed for recovery in case the debug adapter
- // is capable of retrieving memory again
-
- int numBytes = (int)(bytesPerLine * numberOfLines);
- memoryBuffer = new MemoryByte[numBytes];
-
- for (int i=0; i<memoryBuffer.length; i++){
- memoryBuffer[i] = new MemoryByte();
- memoryBuffer[i].setValue((byte)0);
- memoryBuffer[i].setWritable(false);
- memoryBuffer[i].setReadable(false);
- memoryBuffer[i].setEndianessKnown(false);
- }
- return memoryBuffer;
- }
-
- protected AbstractAsyncTableRendering getTableRendering(MemoryViewPresentationContext context)
- {
- IMemoryRendering memRendering = context.getRendering();
- if (memRendering != null && memRendering instanceof AbstractAsyncTableRendering)
- {
- return (AbstractAsyncTableRendering)memRendering;
- }
- return null;
- }
-}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemoryBlockLabelAdapter.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemoryBlockLabelAdapter.java
deleted file mode 100644
index 6e9c3c116..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemoryBlockLabelAdapter.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.debug.internal.ui.elements.adapters;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.model.IMemoryBlock;
-import org.eclipse.debug.core.model.IMemoryBlockExtension;
-import org.eclipse.debug.internal.ui.DebugPluginImages;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.debug.ui.IDebugUIConstants;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-public class MemoryBlockLabelAdapter extends AsynchronousDebugLabelAdapter {
-
- protected ImageDescriptor[] getImageDescriptors(Object element, IPresentationContext context) throws CoreException {
- if (element instanceof IMemoryBlock)
- return new ImageDescriptor[]{DebugPluginImages.getImageDescriptor(IDebugUIConstants.IMG_OBJS_VARIABLE)};
-
- return new ImageDescriptor[0];
- }
-
- /**
- * @param memoryBlockLabel
- * @return
- */
- private String getLabel(IMemoryBlock memoryBlock) {
-
- String memoryBlockLabel = " "; //$NON-NLS-1$
- if (memoryBlock instanceof IMemoryBlockExtension)
- {
- // simply return the expression without the address
- // do not want to keep track of changes in the address
- if (((IMemoryBlockExtension)memoryBlock).getExpression() != null)
- {
- memoryBlockLabel += ((IMemoryBlockExtension)memoryBlock).getExpression();
- }
- }
- else
- {
- long address = memoryBlock.getStartAddress();
- memoryBlockLabel = Long.toHexString(address);
- }
- return memoryBlockLabel;
- }
-
- protected String[] getLabels(Object element, IPresentationContext context) throws CoreException {
- if (element instanceof IMemoryBlock)
- return new String[]{getLabel((IMemoryBlock)element)};
- return super.getLabels(element, context);
- }
-}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemoryRetrievalContentAdapter.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemoryRetrievalContentAdapter.java
deleted file mode 100644
index eb963920b..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemoryRetrievalContentAdapter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.debug.internal.ui.elements.adapters;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.model.IMemoryBlockRetrieval;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.debug.internal.ui.viewers.provisional.AsynchronousContentAdapter;
-import org.eclipse.debug.ui.IDebugUIConstants;
-
-public class MemoryRetrievalContentAdapter extends AsynchronousContentAdapter{
-
- protected Object[] getChildren(Object parent, IPresentationContext context) throws CoreException {
- String id = context.getId();
- if (id.equals(IDebugUIConstants.ID_MEMORY_VIEW))
- {
- if (parent instanceof IMemoryBlockRetrieval)
- {
- return DebugPlugin.getDefault().getMemoryBlockManager().getMemoryBlocks((IMemoryBlockRetrieval)parent);
- }
- }
- return EMPTY;
- }
-
- protected boolean hasChildren(Object element, IPresentationContext context) throws CoreException {
- String id = context.getId();
- if (id.equals(IDebugUIConstants.ID_MEMORY_VIEW))
- {
- if (element instanceof IMemoryBlockRetrieval)
- {
- if (((IMemoryBlockRetrieval)element).supportsStorageRetrieval())
- return DebugPlugin.getDefault().getMemoryBlockManager().getMemoryBlocks((IMemoryBlockRetrieval)element).length > 0;
- }
- }
- return false;
- }
-
- protected boolean supportsPartId(String id) {
- return id.equals(IDebugUIConstants.ID_MEMORY_VIEW);
- }
-
-}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemorySegmentLabelAdapter.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemorySegmentLabelAdapter.java
deleted file mode 100644
index 5d07d2d1a..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemorySegmentLabelAdapter.java
+++ /dev/null
@@ -1,418 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.debug.internal.ui.elements.adapters;
-
-import java.math.BigInteger;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.model.MemoryByte;
-import org.eclipse.debug.internal.core.IInternalDebugCoreConstants;
-import org.eclipse.debug.internal.ui.DebugPluginImages;
-import org.eclipse.debug.internal.ui.DebugUIPlugin;
-import org.eclipse.debug.internal.ui.IInternalDebugUIConstants;
-import org.eclipse.debug.internal.ui.memory.provisional.AbstractAsyncTableRendering;
-import org.eclipse.debug.internal.ui.memory.provisional.MemoryViewPresentationContext;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.debug.internal.ui.viewers.provisional.AsynchronousLabelAdapter;
-import org.eclipse.debug.internal.ui.views.launch.DebugElementHelper;
-import org.eclipse.debug.internal.ui.views.memory.renderings.AbstractBaseTableRendering;
-import org.eclipse.debug.internal.ui.views.memory.renderings.MemorySegment;
-import org.eclipse.debug.internal.ui.views.memory.renderings.TableRenderingContentDescriptor;
-import org.eclipse.debug.ui.IDebugUIConstants;
-import org.eclipse.debug.ui.memory.IMemoryBlockTablePresentation;
-import org.eclipse.debug.ui.memory.MemoryRenderingElement;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IColorProvider;
-import org.eclipse.jface.viewers.IFontProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-
-public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter {
-
- protected String[] getLabels(Object element, IPresentationContext context)
- throws CoreException {
-
- if (context instanceof MemoryViewPresentationContext)
- {
- MemoryViewPresentationContext tableRenderingContext = (MemoryViewPresentationContext)context;
- if (tableRenderingContext.getRendering() != null && tableRenderingContext.getRendering() instanceof AbstractAsyncTableRendering)
- {
- AbstractAsyncTableRendering tableRendering = (AbstractAsyncTableRendering)tableRenderingContext.getRendering();
- TableRenderingContentDescriptor descriptor = (TableRenderingContentDescriptor)tableRendering.getAdapter(TableRenderingContentDescriptor.class);
- if (descriptor != null)
- {
- String addressStr = getColumnText(element, 0, tableRendering, descriptor);
- int numColumns = tableRendering.getAddressableUnitPerLine() / tableRendering.getAddressableUnitPerColumn();
-
- String[] labels = new String[numColumns+2];
- labels[0] = addressStr;
-
- for (int i=0; i<=numColumns; i++)
- {
- labels[i+1] = getColumnText(element, i+1, tableRendering, (TableRenderingContentDescriptor)tableRendering.getAdapter(TableRenderingContentDescriptor.class));
- }
-
- labels[labels.length - 1 ] = IInternalDebugCoreConstants.EMPTY_STRING;
- return labels;
- }
- }
- }
- return new String[0];
- }
-
- private String getColumnText(Object element, int columnIndex, AbstractAsyncTableRendering tableRendering, TableRenderingContentDescriptor descriptor) {
- String columnLabel = null;
-
- if (columnIndex == 0)
- {
- IMemoryBlockTablePresentation presentation = (IMemoryBlockTablePresentation)tableRendering.getMemoryBlock().getAdapter(IMemoryBlockTablePresentation.class);
- if (presentation != null)
- {
- String rowLabel = presentation.getRowLabel(tableRendering.getMemoryBlock(), ((MemorySegment)element).getAddress());
- if (rowLabel != null)
- return rowLabel;
- }
-
- columnLabel = ((MemorySegment)element).getAddress().toString(16).toUpperCase();
-
- int addressSize = descriptor.getAddressSize();
- int prefillLength = addressSize * 2 - columnLabel.length();
- StringBuffer buf = new StringBuffer();
- if (prefillLength > 0)
- {
- for (int i=0; i<prefillLength; i++)
- {
- buf.append("0"); //$NON-NLS-1$
- }
- }
- buf.append(columnLabel);
- return buf.toString();
-
- }
- else if (columnIndex > (tableRendering.getBytesPerLine()/tableRendering.getBytesPerColumn()))
- {
- columnLabel = " "; //$NON-NLS-1$
- }
- else
- {
- if (element instanceof MemorySegment)
- {
- MemorySegment segment = (MemorySegment)element;
- if (segment.getBytes().length != tableRendering.getBytesPerLine())
- return IInternalDebugCoreConstants.EMPTY_STRING;
- }
-
- ILabelProvider labelProvider = (ILabelProvider)tableRendering.getAdapter(ILabelProvider.class);
- if (labelProvider != null && columnIndex > 0)
- {
- MemoryRenderingElement renderingElement = getMemoryRenderingElement(element, columnIndex, tableRendering);
- if (renderingElement != null) {
- String label = labelProvider.getText(renderingElement);
- if (label != null)
- return label;
- }
- }
-
- int start = (columnIndex-1)*tableRendering.getBytesPerColumn();
- MemoryByte[] bytes = ((MemorySegment)element).getBytes(start, tableRendering.getBytesPerColumn());
- BigInteger address = ((MemorySegment)element).getAddress();
- address = address.add(BigInteger.valueOf(start));
-
- columnLabel = tableRendering.getString(tableRendering.getRenderingId(), address, bytes);
- }
- return columnLabel;
- }
-
- protected ImageDescriptor[] getImageDescriptors(Object element,
- IPresentationContext context) throws CoreException {
- if (context instanceof MemoryViewPresentationContext)
- {
- MemoryViewPresentationContext tableRenderingContext = (MemoryViewPresentationContext)context;
- if (tableRenderingContext.getRendering() != null && tableRenderingContext.getRendering() instanceof AbstractAsyncTableRendering)
- {
- AbstractAsyncTableRendering tableRendering = (AbstractAsyncTableRendering)tableRenderingContext.getRendering();
- int numColumns = tableRendering.getAddressableUnitPerLine() / tableRendering.getAddressableUnitPerColumn();
-
- ImageDescriptor[] images = new ImageDescriptor[numColumns+2];
-
- for (int i=0; i<=numColumns; i++)
- {
- images[i] = getColumnImageDescriptor(element, i, tableRendering);
- }
-
- images[images.length - 1 ] = null;
- return images;
- }
- }
- return new ImageDescriptor[0];
- }
-
- private ImageDescriptor getColumnImageDescriptor(Object element, int columnIndex, AbstractAsyncTableRendering tableRendering)
- {
- if (columnIndex == 0)
- return DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_OBJECT_MEMORY);
-
- if (element instanceof MemorySegment)
- {
- MemorySegment segment = (MemorySegment)element;
- if (segment.getBytes().length != tableRendering.getBytesPerLine())
- return null;
-
- ILabelProvider labelProvider = (ILabelProvider)tableRendering.getAdapter(ILabelProvider.class);
- if (labelProvider != null && columnIndex > 0)
- {
- MemoryRenderingElement renderingElement = getMemoryRenderingElement(element, columnIndex, tableRendering);
- if (renderingElement != null) {
- Image image = labelProvider.getImage(renderingElement);
- if (image != null)
- {
- return DebugElementHelper.getImageDescriptor(image);
- }
- }
- }
-
- int start = (columnIndex-1)*tableRendering.getBytesPerColumn();
-
- MemoryByte[] bytes = ((MemorySegment)element).getBytes(start, tableRendering.getBytesPerColumn());
- boolean allKnown = true;
- boolean unchanged = true;
- for (int i=0; i<bytes.length; i++)
- {
- if (!bytes[i].isHistoryKnown())
- allKnown = false;
-
- if (bytes[i].isChanged())
- unchanged = false;
- }
-
- if (allKnown)
- {
- // mark changed elements with changed icon
- if (!unchanged)
- return DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_OBJECT_MEMORY_CHANGED);
-
- }
- }
- return DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_OBJECT_MEMORY);
- }
-
- protected FontData[] getFontDatas(Object element,
- IPresentationContext context) throws CoreException {
- if (context instanceof MemoryViewPresentationContext)
- {
- MemoryViewPresentationContext tableRenderingContext = (MemoryViewPresentationContext)context;
- if (tableRenderingContext.getRendering() != null && tableRenderingContext.getRendering() instanceof AbstractAsyncTableRendering)
- {
- AbstractAsyncTableRendering tableRendering = (AbstractAsyncTableRendering)tableRenderingContext.getRendering();
- int numColumns = tableRendering.getAddressableUnitPerLine() / tableRendering.getAddressableUnitPerColumn();
-
- FontData[] fontData = new FontData[numColumns+2];
-
- for (int i=0; i<fontData.length-1; i++)
- {
- fontData[i] = getColumnFontData(element, i, tableRendering);
- }
- return fontData;
- }
- }
-
- return new FontData[0];
- }
-
- private FontData getColumnFontData(Object element, int columnIndex, AbstractAsyncTableRendering tableRendering)
- {
- if (element instanceof MemorySegment)
- {
- MemorySegment segment = (MemorySegment)element;
- if (segment.getBytes().length != tableRendering.getBytesPerLine())
- return null;
-
- IFontProvider fontProvider = (IFontProvider)tableRendering.getAdapter(IFontProvider.class);
- if (fontProvider != null && columnIndex > 0)
- {
- MemoryRenderingElement renderingElement = getMemoryRenderingElement(element, columnIndex, tableRendering);
- if (renderingElement != null) {
- Font font = fontProvider.getFont(renderingElement);
- if (font != null)
- return font.getFontData()[0];
- }
- }
- }
- return null;
- }
-
- protected RGB[] getForegrounds(Object element, IPresentationContext context)
- throws CoreException {
-
- if (context instanceof MemoryViewPresentationContext)
- {
- MemoryViewPresentationContext tableRenderingContext = (MemoryViewPresentationContext)context;
- if (tableRenderingContext.getRendering() != null && tableRenderingContext.getRendering() instanceof AbstractAsyncTableRendering)
- {
- AbstractAsyncTableRendering tableRendering = (AbstractAsyncTableRendering)tableRenderingContext.getRendering();
- int numColumns = tableRendering.getAddressableUnitPerLine() / tableRendering.getAddressableUnitPerColumn();
-
- RGB[] colors = new RGB[numColumns+2];
-
- for (int i=0; i<colors.length-1; i++)
- {
- colors[i] = getColumnForeground(element, i, tableRendering);
- }
-
- colors[colors.length-1] = null;
-
- return colors;
- }
- }
-
- return new RGB[0];
- }
-
- private RGB getColumnBackground(Object element, int columnIndex, AbstractAsyncTableRendering tableRendering)
- {
- if (columnIndex == 0)
- return null;
-
- if (element instanceof MemorySegment)
- {
- MemorySegment segment = (MemorySegment)element;
- if (segment.getBytes().length != tableRendering.getBytesPerLine())
- return null;
-
- IColorProvider colorProvider = (IColorProvider)tableRendering.getAdapter(IColorProvider.class);
- if (colorProvider != null && columnIndex > 0)
- {
- MemoryRenderingElement renderingElement = getMemoryRenderingElement(element, columnIndex, tableRendering);
- if (renderingElement != null) {
- Color color = colorProvider.getBackground(renderingElement);
- if (color != null)
- return color.getRGB();
- }
- }
- }
- return null;
- }
-
- private RGB getColumnForeground(Object element, int columnIndex, AbstractAsyncTableRendering tableRendering)
- {
- if (columnIndex == 0)
- return null;
-
- if (element instanceof MemorySegment)
- {
- MemorySegment segment = (MemorySegment)element;
- if (segment.getBytes().length != tableRendering.getBytesPerLine())
- return null;
-
- IColorProvider colorProvider = (IColorProvider)tableRendering.getAdapter(IColorProvider.class);
- if (colorProvider != null && columnIndex > 0)
- {
- MemoryRenderingElement renderingElement = getMemoryRenderingElement(element, columnIndex, tableRendering);
- if (renderingElement != null) {
- Color color = colorProvider.getForeground(renderingElement);
- if (color != null)
- return color.getRGB();
- }
- }
-
- int start = (columnIndex-1)*tableRendering.getBytesPerColumn();
- MemoryByte[] bytes = segment.getBytes(start, tableRendering.getBytesPerColumn());
- boolean allKnown = true;
- boolean unchanged = true;
- for (int i=0; i<bytes.length; i++)
- {
- if (!bytes[i].isHistoryKnown())
- allKnown = false;
-
- if (bytes[i].isChanged())
- unchanged = false;
- }
-
- if (allKnown)
- {
- // mark changed elements in changed color
- if (!unchanged)
- return DebugUIPlugin.getPreferenceColor(IDebugUIConstants.PREF_CHANGED_DEBUG_ELEMENT_COLOR).getRGB();
-
- return DebugUIPlugin.getPreferenceColor(IDebugUIConstants.PREF_MEMORY_HISTORY_KNOWN_COLOR).getRGB();
- }
-
- return DebugUIPlugin.getPreferenceColor(IDebugUIConstants.PREF_MEMORY_HISTORY_UNKNOWN_COLOR).getRGB();
-
- }
- return null;
- }
-
- protected RGB[] getBackgrounds(Object element, IPresentationContext context)
- throws CoreException {
-
- if (context instanceof MemoryViewPresentationContext)
- {
- MemoryViewPresentationContext tableRenderingContext = (MemoryViewPresentationContext)context;
- if (tableRenderingContext.getRendering() != null && tableRenderingContext.getRendering() instanceof AbstractAsyncTableRendering)
- {
- AbstractAsyncTableRendering tableRendering = (AbstractAsyncTableRendering)tableRenderingContext.getRendering();
- int numColumns = tableRendering.getAddressableUnitPerLine() / tableRendering.getAddressableUnitPerColumn();
-
- RGB[] colors = new RGB[numColumns+2];
-
- for (int i=0; i<colors.length-1; i++)
- {
- colors[i] = getColumnBackground(element, i, tableRendering);
- }
-
- colors[colors.length-1] = null;
-
- return colors;
- }
- }
-
- return new RGB[0];
- }
-
- /**
- * Returns a memory rendering element corresponding to the given element
- * or <code>null</code> if none.
- *
- * @param element element to be rendered
- * @param columnIndex column index at which to render
- * @return memory rendering element or <code>null</code>
- */
- private MemoryRenderingElement getMemoryRenderingElement(Object element, int columnIndex, AbstractBaseTableRendering rendering) {
- if (element instanceof MemorySegment) {
- MemorySegment line = (MemorySegment) element;
- BigInteger address = line.getAddress();
- int offset = (columnIndex - 1) * rendering.getBytesPerColumn();
- if (offset < rendering.getBytesPerLine() && (offset + rendering.getBytesPerColumn()) <= rendering.getBytesPerLine()) {
- return getMemoryRenderingElement(line, address, offset, rendering);
- }
- }
- return null;
- }
-
- private MemoryRenderingElement getMemoryRenderingElement(MemorySegment line, BigInteger lineAddress, int offset, AbstractBaseTableRendering rendering) {
- BigInteger cellAddress = lineAddress.add(BigInteger.valueOf(offset));
- MemoryByte[] bytes = line.getBytes(offset, rendering.getBytesPerColumn());
- // make a copy to ensure that the memory bytes are not overwritten
- // by clients
- MemoryByte[] copy = new MemoryByte[bytes.length];
- System.arraycopy(bytes, 0, copy, 0, bytes.length);
- MemoryRenderingElement renderingElement = new MemoryRenderingElement(
- rendering, cellAddress, copy);
- return renderingElement;
- }
-
-}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/Messages.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/Messages.java
deleted file mode 100644
index 3dc7f87a3..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/Messages.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.ui.elements.adapters;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @since 3.2
- *
- */
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.debug.internal.ui.elements.adapters.Messages"; //$NON-NLS-1$
-
- private Messages() {
- }
-
- static {
- // initialize resource bundle
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String VariableColumnPresentation_0;
- public static String VariableColumnPresentation_1;
- public static String VariableColumnPresentation_2;
- public static String VariableColumnPresentation_3;
-}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/Messages.properties b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/Messages.properties
deleted file mode 100644
index 2e62499d3..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/Messages.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-VariableColumnPresentation_0=Declared Type
-VariableColumnPresentation_1=Name
-VariableColumnPresentation_2=Value
-VariableColumnPresentation_3=Actual Type
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/RegisterGroupProxy.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/RegisterGroupProxy.java
deleted file mode 100644
index ba69b6ff7..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/RegisterGroupProxy.java
+++ /dev/null
@@ -1,429 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.ui.elements.adapters;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IRegisterGroup;
-import org.eclipse.debug.core.model.IStackFrame;
-import org.eclipse.debug.internal.core.commands.Request;
-import org.eclipse.debug.internal.ui.viewers.model.ViewerAdapterService;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenCountUpdate;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenUpdate;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementCompareRequest;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoProvider;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoRequest;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IHasChildrenUpdate;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxy;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxyFactory;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.ui.IMemento;
-
-/**
- * Used as input to the registers view for a stack frame. Insulates register groups
- * that do not change across stack frame selection to avoid register groups collapsing
- * while stepping between frames.
- * <p>
- * The standard debug model {@link IStackFrame} uses an
- * {@link org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputProvider} to
- * create a register group proxy for the register view's input.
- * </p>
- * <p>
- * This class delegates to the underlying stack frame for the following adapters. This way,
- * if a standard model provides custom adapters they are still used to present custom content
- * in the view and provide stable register groups while stepping.
- * <ul>
- * <li>{@link IModelProxyFactory}</li>
- * <li>{@link IColumnPresentationFactory}</li>
- * <li>{@link IElementContentProvider}</li>
- * <li>{@link IElementMementoProvider}</li>
- * </ul>
- * </p>
- * @since 3.4
- */
-public class RegisterGroupProxy implements IModelProxyFactory, IColumnPresentationFactory, IElementContentProvider, IElementMementoProvider {
-
- private IRegisterGroup[] fGroups;
- private IStackFrame fFrame;
-
- private static final String HASH_CODE = "HASH_CODE"; //$NON-NLS-1$
-
- /**
- * Local implementation of a viewer update request. This class delegates to the underlying frame
- * for viewer requests. The requests have to be wrapped such that the request's element provided
- * for existing clients is the underlying frame, rather than the register group proxy (as existing
- * models do not know or need to know about the proxy).
- */
- private class Update extends Request implements IViewerUpdate {
- private IViewerUpdate fViewerUpdate;
-
- Update(IViewerUpdate update) {
- fViewerUpdate = update;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate#getElement()
- */
- public Object getElement() {
- return fFrame;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate#getElementPath()
- */
- public TreePath getElementPath() {
- return TreePath.EMPTY;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate#getPresentationContext()
- */
- public IPresentationContext getPresentationContext() {
- return fViewerUpdate.getPresentationContext();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.commands.Request#done()
- */
- public void done() {
- fViewerUpdate.setStatus(getStatus());
- fViewerUpdate.done();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate#getViewerInput()
- */
- public Object getViewerInput() {
- return fFrame;
- }
-
- }
-
- private class CountUpdate extends Update implements IChildrenCountUpdate {
-
- private IChildrenCountUpdate fUpdate;
-
- CountUpdate(IChildrenCountUpdate delegate) {
- super(delegate);
- fUpdate = delegate;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenCountUpdate#setChildCount(int)
- */
- public void setChildCount(int numChildren) {
- fUpdate.setChildCount(numChildren);
- }
-
- }
-
- private class HasUpdate extends Update implements IHasChildrenUpdate {
-
- private IHasChildrenUpdate fUpdate;
-
- HasUpdate(IHasChildrenUpdate delegate) {
- super(delegate);
- fUpdate = delegate;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IHasChildrenUpdate#setHasChilren(boolean)
- */
- public void setHasChilren(boolean hasChildren) {
- fUpdate.setHasChilren(hasChildren);
- }
-
- }
-
- private class ChildrenUpdate extends Update implements IChildrenUpdate {
-
- private IChildrenUpdate fUpdate;
-
- ChildrenUpdate(IChildrenUpdate delegate) {
- super(delegate);
- fUpdate = delegate;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenUpdate#getLength()
- */
- public int getLength() {
- return fUpdate.getLength();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenUpdate#getOffset()
- */
- public int getOffset() {
- return fUpdate.getOffset();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenUpdate#setChild(java.lang.Object, int)
- */
- public void setChild(Object child, int offset) {
- fUpdate.setChild(child, offset);
- }
-
- }
-
- /**
- * The memento request has to override {@link #getElement()} to provide the element
- * that a memento is requested for (which could be any element in the view, not just
- * the root stack frame).
- */
- private class MementoRequest extends Update implements IElementMementoRequest {
-
- private IElementMementoRequest fUpdate;
- MementoRequest(IElementMementoRequest request) {
- super(request);
- fUpdate = request;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoRequest#getMemento()
- */
- public IMemento getMemento() {
- return fUpdate.getMemento();
- }
- public Object getElement() {
- return fUpdate.getElement();
- }
- public TreePath getElementPath() {
- return fUpdate.getElementPath();
- }
-
- }
-
- private class ElementCompare extends MementoRequest implements IElementCompareRequest {
-
- private IElementCompareRequest fRequest;
- ElementCompare(IElementCompareRequest request) {
- super(request);
- fRequest = request;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementCompareRequest#setEqual(boolean)
- */
- public void setEqual(boolean equal) {
- fRequest.setEqual(equal);
- }
-
- }
-
- /**
- * Creates a new register group proxy for the given stack frame.
- *
- * @param frame stack frame
- * @throws DebugException exception if unable to retrieve register groups
- */
- public RegisterGroupProxy(IStackFrame frame) throws DebugException {
- fFrame = frame;
- init(frame);
- }
-
- /* (non-Javadoc)
- *
- * A register group proxy is equal to other stack frames that have the same
- * register groups.
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- if (obj instanceof RegisterGroupProxy) {
- return Arrays.equals(fGroups, ((RegisterGroupProxy)obj).fGroups);
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- int code = getClass().hashCode();
- for (int i = 0; i < fGroups.length; i++) {
- code+=fGroups[i].hashCode();
- }
- return code;
- }
-
- /**
- * Initializes the register groups for this stack frame.
- *
- * @param frame stack frame
- */
- private void init(IStackFrame frame) throws DebugException {
- fGroups = frame.getRegisterGroups();
- }
-
- /**
- * Returns cached register groups for this stack frame.
- *
- * @return register groups
- */
- protected IRegisterGroup[] getRegisterGroups() {
- return fGroups;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxyFactory#createModelProxy(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext)
- */
- public IModelProxy createModelProxy(Object element, IPresentationContext context) {
- IModelProxyFactory factory = ViewerAdapterService.getModelProxyFactory(fFrame);
- if (factory != null) {
- return factory.createModelProxy(fFrame, context);
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory#createColumnPresentation(org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, java.lang.Object)
- */
- public IColumnPresentation createColumnPresentation(IPresentationContext context, Object element) {
- IColumnPresentationFactory factory = ViewerAdapterService.getColumnPresentationFactory(fFrame);
- if (factory != null) {
- return factory.createColumnPresentation(context, fFrame);
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory#getColumnPresentationId(org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, java.lang.Object)
- */
- public String getColumnPresentationId(IPresentationContext context, Object element) {
- IColumnPresentationFactory factory = ViewerAdapterService.getColumnPresentationFactory(fFrame);
- if (factory != null) {
- return factory.getColumnPresentationId(context, fFrame);
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider#update(org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenCountUpdate[])
- */
- public void update(IChildrenCountUpdate[] updates) {
- IElementContentProvider provider = ViewerAdapterService.getContentProvider(fFrame);
- if (provider != null) {
- IChildrenCountUpdate[] others = new IChildrenCountUpdate[updates.length];
- for (int i = 0; i < updates.length; i++) {
- others[i] = new CountUpdate(updates[i]);
- }
- provider.update(others);
- } else {
- cancelUpdates(updates);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider#update(org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenUpdate[])
- */
- public void update(IChildrenUpdate[] updates) {
- IElementContentProvider provider = ViewerAdapterService.getContentProvider(fFrame);
- if (provider != null) {
- IChildrenUpdate[] others = new IChildrenUpdate[updates.length];
- for (int i = 0; i < updates.length; i++) {
- others[i] = new ChildrenUpdate(updates[i]);
- }
- provider.update(others);
- } else {
- cancelUpdates(updates);
- }
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider#update(org.eclipse.debug.internal.ui.viewers.model.provisional.IHasChildrenUpdate[])
- */
- public void update(IHasChildrenUpdate[] updates) {
- IElementContentProvider provider = ViewerAdapterService.getContentProvider(fFrame);
- if (provider != null) {
- IHasChildrenUpdate[] others = new IHasChildrenUpdate[updates.length];
- for (int i = 0; i < updates.length; i++) {
- others[i] = new HasUpdate(updates[i]);
- }
- provider.update(others);
- } else {
- cancelUpdates(updates);
- }
- }
-
- /**
- * Cancels a collection of update requests.
- *
- * @param updates updates to cancel
- */
- private void cancelUpdates(IViewerUpdate[] updates) {
- for (int i = 0; i < updates.length; i++) {
- updates[i].setStatus(Status.CANCEL_STATUS);
- updates[i].done();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoProvider#compareElements(org.eclipse.debug.internal.ui.viewers.model.provisional.IElementCompareRequest[])
- */
- public void compareElements(IElementCompareRequest[] requests) {
- IElementMementoProvider provider = ViewerAdapterService.getMementoProvider(fFrame);
- if (provider != null) {
- List others = new ArrayList(requests.length);
- for (int i = 0; i < requests.length; i++) {
- IElementCompareRequest request = requests[i];
- if (request.getElement().equals(this)) {
- Integer integer = request.getMemento().getInteger(HASH_CODE);
- if (integer != null) {
- request.setEqual(integer.intValue() == hashCode());
- } else {
- request.setEqual(false);
- }
- request.done();
- } else {
- others.add(new ElementCompare(request));
- }
- }
- if (!others.isEmpty()) {
- provider.compareElements((IElementCompareRequest[]) others.toArray(new IElementCompareRequest[others.size()]));
- }
- } else {
- cancelUpdates(requests);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoProvider#encodeElements(org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoRequest[])
- */
- public void encodeElements(IElementMementoRequest[] requests) {
- IElementMementoProvider provider = ViewerAdapterService.getMementoProvider(fFrame);
- if (provider != null) {
- List others = new ArrayList(requests.length);
- for (int i = 0; i < requests.length; i++) {
- IElementMementoRequest request = requests[i];
- if (request.getElement().equals(this)) {
- request.getMemento().putInteger(HASH_CODE, this.hashCode());
- request.done();
- } else {
- others.add(new MementoRequest(request));
- }
- }
- if (!others.isEmpty()) {
- provider.encodeElements((IElementMementoRequest[]) others.toArray(new IElementMementoRequest[others.size()]));
- }
- } else {
- cancelUpdates(requests);
- }
- }
-
-}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/StackFrameSourceDisplayAdapter.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/StackFrameSourceDisplayAdapter.java
deleted file mode 100644
index 5b4045744..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/StackFrameSourceDisplayAdapter.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.ui.elements.adapters;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IDebugEventSetListener;
-import org.eclipse.debug.core.model.IDebugElement;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.ISourceLocator;
-import org.eclipse.debug.core.model.IStackFrame;
-import org.eclipse.debug.core.model.IThread;
-import org.eclipse.debug.internal.ui.InstructionPointerManager;
-import org.eclipse.debug.internal.ui.sourcelookup.SourceLookupResult;
-import org.eclipse.debug.internal.ui.views.launch.DecorationManager;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.debug.ui.sourcelookup.ISourceDisplay;
-import org.eclipse.debug.ui.sourcelookup.ISourceLookupResult;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.progress.UIJob;
-
-/**
- * @since 3.2
- */
-public class StackFrameSourceDisplayAdapter implements ISourceDisplay {
-
- private IStackFrame fPrevFrame;
- private SourceLookupResult fPrevResult;
-
- /**
- * Constructs singleton source display adapter for stack frames.
- */
- public StackFrameSourceDisplayAdapter() {
- DebugPlugin.getDefault().addDebugEventListener(new IDebugEventSetListener() {
- public void handleDebugEvents(DebugEvent[] events) {
- for (int i = 0; i < events.length; i++) {
- final DebugEvent event = events[i];
- switch (event.getKind()) {
- case DebugEvent.TERMINATE:
- clearCachedModel(event.getSource());
- // fall through
- case DebugEvent.RESUME:
- if (!event.isEvaluation()) {
- Job uijob = new UIJob("clear source selection"){ //$NON-NLS-1$
- public IStatus runInUIThread(
- IProgressMonitor monitor) {
- clearSourceSelection(event.getSource());
- return Status.OK_STATUS;
- }
-
- };
- uijob.setSystem(true);
- uijob.schedule();
- }
- break;
- case DebugEvent.CHANGE:
- if (event.getSource() instanceof IStackFrame) {
- if (event.getDetail() == DebugEvent.CONTENT) {
- // force source lookup if a stack frame fires a content change event
- clearCachedModel(event.getSource());
- }
- }
- break;
- }
- }
- }
- });
- }
-
- /**
- * A job to perform source lookup on the currently selected stack frame.
- */
- class SourceLookupJob extends Job {
-
- private IStackFrame fTarget;
- private ISourceLocator fLocator;
- private IWorkbenchPage fPage;
-
- /**
- * Constructs a new source lookup job.
- */
- public SourceLookupJob(IStackFrame frame, ISourceLocator locator, IWorkbenchPage page) {
- super("Debug Source Lookup"); //$NON-NLS-1$
- setPriority(Job.INTERACTIVE);
- setSystem(true);
- fTarget = frame;
- fLocator = locator;
- fPage = page;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus run(IProgressMonitor monitor) {
- if (!monitor.isCanceled()) {
- if (!fTarget.isTerminated()) {
- ISourceLookupResult result = DebugUITools.lookupSource(fTarget, fLocator);
- synchronized (StackFrameSourceDisplayAdapter.this) {
- fPrevResult = (SourceLookupResult)result;
- fPrevFrame = fTarget;
- }
- if (!monitor.isCanceled() && !fTarget.isTerminated()) {
- new SourceDisplayJob(result, fPage).schedule();
- }
- }
- }
- return Status.OK_STATUS;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.jobs.Job#belongsTo(java.lang.Object)
- */
- public boolean belongsTo(Object family) {
- // source lookup jobs are a family per workbench page
- if (family instanceof SourceLookupJob) {
- SourceLookupJob slj = (SourceLookupJob) family;
- return slj.fPage.equals(fPage);
- }
- return false;
- }
-
- }
-
- class SourceDisplayJob extends UIJob {
-
- private ISourceLookupResult fResult;
- private IWorkbenchPage fPage;
-
- public SourceDisplayJob(ISourceLookupResult result, IWorkbenchPage page) {
- super("Debug Source Display"); //$NON-NLS-1$
- setSystem(true);
- setPriority(Job.INTERACTIVE);
- fResult = result;
- fPage = page;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStatus runInUIThread(IProgressMonitor monitor) {
- if (!monitor.isCanceled() && fResult != null) {
- DebugUITools.displaySource(fResult, fPage);
- // termination may have occurred while displaying source
- if (monitor.isCanceled()) {
- Object artifact = fResult.getArtifact();
- if (artifact instanceof IStackFrame) {
- clearSourceSelection(((IStackFrame)artifact).getThread());
- }
- }
- }
-
- return Status.OK_STATUS;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.jobs.Job#belongsTo(java.lang.Object)
- */
- public boolean belongsTo(Object family) {
- // source display jobs are a family per workbench page
- if (family instanceof SourceDisplayJob) {
- SourceDisplayJob sdj = (SourceDisplayJob) family;
- return sdj.fPage.equals(fPage);
- }
- return false;
- }
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.contexts.ISourceDisplayAdapter#displaySource(java.lang.Object, org.eclipse.ui.IWorkbenchPage, boolean)
- */
- public synchronized void displaySource(Object context, IWorkbenchPage page, boolean force) {
- IStackFrame frame = (IStackFrame)context;
- if (!force && frame.equals(fPrevFrame)) {
- fPrevResult.updateArtifact(context);
- SourceDisplayJob sdj = new SourceDisplayJob(fPrevResult, page);
- // cancel any existing source display jobs for this page
- Job.getJobManager().cancel(sdj);
- sdj.schedule();
- } else {
- SourceLookupJob slj = new SourceLookupJob(frame, frame.getLaunch().getSourceLocator(), page);
- // cancel any existing source lookup jobs for this page
- Job.getJobManager().cancel(slj);
- slj.schedule();
- }
- }
-
- /**
- * Clears any source decorations associated with the given thread or
- * debug target.
- *
- * @param source thread or debug target
- */
- private void clearSourceSelection(Object source) {
- if (source instanceof IThread) {
- IThread thread = (IThread)source;
- DecorationManager.removeDecorations(thread);
- InstructionPointerManager.getDefault().removeAnnotations(thread);
- } else if (source instanceof IDebugTarget) {
- IDebugTarget target = (IDebugTarget)source;
- DecorationManager.removeDecorations(target);
- InstructionPointerManager.getDefault().removeAnnotations(target);
- }
- }
-
- /**
- * Clear any cached results associated with the given object.
- *
- * @param source
- */
- private synchronized void clearCachedModel(Object source) {
- if (fPrevFrame != null) {
- IDebugTarget target = null;
- if (source instanceof IDebugElement) {
- target = ((IDebugElement)source).getDebugTarget();
- }
- if (fPrevFrame.getDebugTarget().equals(target)) {
- fPrevFrame = null;
- fPrevResult = null;
- }
- }
- }
-
-}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/StackFrameViewerInputProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/StackFrameViewerInputProvider.java
deleted file mode 100644
index d48d9d822..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/StackFrameViewerInputProvider.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * Wind River Systems - support for alternative expression view content providers
- *******************************************************************************/
-package org.eclipse.debug.internal.ui.elements.adapters;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.model.IStackFrame;
-import org.eclipse.debug.internal.ui.model.elements.ViewerInputProvider;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate;
-import org.eclipse.debug.ui.IDebugUIConstants;
-
-/**
- * @since 3.4
- */
-public class StackFrameViewerInputProvider extends ViewerInputProvider {
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.model.elements.ViewerInputProvider#getViewerInput(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate)
- */
- protected Object getViewerInput(Object source, IPresentationContext context, IViewerUpdate update) throws CoreException {
- if ( IDebugUIConstants.ID_REGISTER_VIEW.equals(context.getId()) ) {
- return new RegisterGroupProxy((IStackFrame) source);
- } else {
- return DebugPlugin.getDefault().getExpressionManager();
- }
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.model.elements.ViewerInputProvider#supportsContextId(java.lang.String)
- */
- protected boolean supportsContextId(String id) {
- return IDebugUIConstants.ID_REGISTER_VIEW.equals(id) ||
- IDebugUIConstants.ID_EXPRESSION_VIEW.equals(id);
- }
-
-}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/VariableColumnFactoryAdapter.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/VariableColumnFactoryAdapter.java
deleted file mode 100644
index c756501a0..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/VariableColumnFactoryAdapter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.ui.elements.adapters;
-
-import org.eclipse.debug.core.model.IStackFrame;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.debug.ui.IDebugUIConstants;
-
-/**
- * Factory for default variable column presentation.
- *
- * @since 3.2
- */
-public class VariableColumnFactoryAdapter implements IColumnPresentationFactory {
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.provisional.IColumnPresenetationFactoryAdapter#createColumnPresentation(org.eclipse.debug.internal.ui.viewers.provisional.IPresentationContext, java.lang.Object)
- */
- public IColumnPresentation createColumnPresentation(IPresentationContext context, Object element) {
- String id = context.getId();
- if (IDebugUIConstants.ID_VARIABLE_VIEW.equals(id) || IDebugUIConstants.ID_REGISTER_VIEW.equals(id)) {
- if (element instanceof IStackFrame) {
- return new VariableColumnPresentation();
- }
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.provisional.IColumnPresenetationFactoryAdapter#getColumnPresentationId(org.eclipse.debug.internal.ui.viewers.provisional.IPresentationContext, java.lang.Object)
- */
- public String getColumnPresentationId(IPresentationContext context, Object element) {
- String id = context.getId();
- if (IDebugUIConstants.ID_VARIABLE_VIEW.equals(id) || IDebugUIConstants.ID_REGISTER_VIEW.equals(id)) {
- if (element instanceof IStackFrame) {
- return VariableColumnPresentation.DEFAULT_VARIABLE_COLUMN_PRESENTATION;
- }
- }
- return null;
- }
-
-}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/VariableColumnPresentation.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/VariableColumnPresentation.java
deleted file mode 100644
index 961e340bf..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/VariableColumnPresentation.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.ui.elements.adapters;
-
-import org.eclipse.debug.internal.ui.viewers.provisional.AbstractColumnPresentation;
-import org.eclipse.debug.ui.IDebugUIConstants;
-
-/**
- * Columns for Java variables.
- *
- * @since 3.2
- */
-public class VariableColumnPresentation extends AbstractColumnPresentation {
-
- /**
- * Constant identifier for the default variable column presentation.
- */
- public final static String DEFAULT_VARIABLE_COLUMN_PRESENTATION = IDebugUIConstants.PLUGIN_ID + ".VARIALBE_COLUMN_PRESENTATION"; //$NON-NLS-1$
-
- /**
- * Default column identifiers
- */
- public final static String COLUMN_VARIABLE_NAME = DEFAULT_VARIABLE_COLUMN_PRESENTATION + ".COL_VAR_NAME"; //$NON-NLS-1$
- public final static String COLUMN_VARIABLE_TYPE = DEFAULT_VARIABLE_COLUMN_PRESENTATION + ".COL_VAR_TYPE"; //$NON-NLS-1$
- public final static String COLUMN_VARIABLE_VALUE = DEFAULT_VARIABLE_COLUMN_PRESENTATION + ".COL_VAR_VALUE"; //$NON-NLS-1$
- public final static String COLUMN_VALUE_TYPE = DEFAULT_VARIABLE_COLUMN_PRESENTATION + ".COL_VALUE_TYPE"; //$NON-NLS-1$
-
- private static final String[] ALL_COLUMNS = new String[]{COLUMN_VARIABLE_NAME, COLUMN_VARIABLE_TYPE, COLUMN_VARIABLE_VALUE, COLUMN_VALUE_TYPE};
- private static final String[] INITIAL_COLUMNS = new String[]{COLUMN_VARIABLE_NAME, COLUMN_VARIABLE_VALUE};
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.provisional.IColumnPresentation#getColumns()
- */
- public String[] getAvailableColumns() {
- return ALL_COLUMNS;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.provisional.IColumnPresentation#getHeader(java.lang.String)
- */
- public String getHeader(String id) {
- if (COLUMN_VARIABLE_TYPE.equals(id)) {
- return Messages.VariableColumnPresentation_0;
- }
- if (COLUMN_VARIABLE_NAME.equals(id)) {
- return Messages.VariableColumnPresentation_1;
- }
- if (COLUMN_VARIABLE_VALUE.equals(id)) {
- return Messages.VariableColumnPresentation_2;
- }
- if (COLUMN_VALUE_TYPE.equals(id)) {
- return Messages.VariableColumnPresentation_3;
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.provisional.IColumnPresentation#getId()
- */
- public String getId() {
- return DEFAULT_VARIABLE_COLUMN_PRESENTATION;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.provisional.IColumnPresentation#getInitialColumns()
- */
- public String[] getInitialColumns() {
- return INITIAL_COLUMNS;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.viewers.provisional.IColumnPresentation#isOptional()
- */
- public boolean isOptional() {
- return true;
- }
-
-}

Back to the top