diff options
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemorySegmentLabelAdapter.java')
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/elements/adapters/MemorySegmentLabelAdapter.java | 124 |
1 files changed, 62 insertions, 62 deletions
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 index eca235333..d5363430c 100644 --- 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 @@ -4,7 +4,7 @@ * 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 *******************************************************************************/ @@ -45,7 +45,7 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { @Override protected String[] getLabels(Object element, IPresentationContext context) throws CoreException { - + if (context instanceof MemoryViewPresentationContext) { MemoryViewPresentationContext tableRenderingContext = (MemoryViewPresentationContext)context; @@ -57,15 +57,15 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { { 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, tableRendering.getAdapter(TableRenderingContentDescriptor.class)); } - + labels[labels.length - 1 ] = IInternalDebugCoreConstants.EMPTY_STRING; return labels; } @@ -73,7 +73,7 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { } return new String[0]; } - + private String getColumnText(Object element, int columnIndex, AbstractAsyncTableRendering tableRendering, TableRenderingContentDescriptor descriptor) { String columnLabel = null; @@ -86,9 +86,9 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { 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(); @@ -101,21 +101,21 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { } 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 = tableRendering.getAdapter(ILabelProvider.class); if (labelProvider != null && columnIndex > 0) { @@ -124,14 +124,14 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { 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)); - + address = address.add(BigInteger.valueOf(start)); + columnLabel = tableRendering.getString(tableRendering.getRenderingId(), address, bytes); } return columnLabel; @@ -147,32 +147,32 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { { 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); - + 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 = tableRendering.getAdapter(ILabelProvider.class); if (labelProvider != null && columnIndex > 0) { @@ -183,9 +183,9 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { { return DebugElementHelper.getImageDescriptor(image); } - } + } } - + int start = (columnIndex-1)*tableRendering.getBytesPerColumn(); MemoryByte[] bytes = ((MemorySegment)element).getBytes(start, tableRendering.getBytesPerColumn()); @@ -195,17 +195,17 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { { 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); @@ -221,7 +221,7 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { { 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++) @@ -231,18 +231,18 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { return fontData; } } - + return new FontData[0]; } - - private FontData getColumnFontData(Object element, int columnIndex, AbstractAsyncTableRendering tableRendering) + + 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 = tableRendering.getAdapter(IFontProvider.class); if (fontProvider != null && columnIndex > 0) { @@ -251,7 +251,7 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { Font font = fontProvider.getFont(renderingElement); if (font != null) return font.getFontData()[0]; - } + } } } return null; @@ -260,7 +260,7 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { @Override protected RGB[] getForegrounds(Object element, IPresentationContext context) throws CoreException { - + if (context instanceof MemoryViewPresentationContext) { MemoryViewPresentationContext tableRenderingContext = (MemoryViewPresentationContext)context; @@ -268,34 +268,34 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { { 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 = tableRendering.getAdapter(IColorProvider.class); if (colorProvider != null && columnIndex > 0) { @@ -304,23 +304,23 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { 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 = tableRendering.getAdapter(IColorProvider.class); if (colorProvider != null && columnIndex > 0) { @@ -329,9 +329,9 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { 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; @@ -340,22 +340,22 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { { 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_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; } @@ -363,7 +363,7 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { @Override protected RGB[] getBackgrounds(Object element, IPresentationContext context) throws CoreException { - + if (context instanceof MemoryViewPresentationContext) { MemoryViewPresentationContext tableRenderingContext = (MemoryViewPresentationContext)context; @@ -371,27 +371,27 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { { 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> @@ -407,7 +407,7 @@ public class MemorySegmentLabelAdapter extends AsynchronousLabelAdapter { } 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()); |