diff options
author | Darin Swanson | 2004-04-28 21:40:11 +0000 |
---|---|---|
committer | Darin Swanson | 2004-04-28 21:40:11 +0000 |
commit | 9ee53cc7a28e94f7eeed89e809ecc3269a438915 (patch) | |
tree | 5d78a0f9b8c62f4eea488f6886e60e8eda30ab76 /org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/HexRenderer.java | |
parent | c3b52cbfe456b46bae9d2eee209f86de13451aa2 (diff) | |
download | eclipse.platform.debug-9ee53cc7a28e94f7eeed89e809ecc3269a438915.tar.gz eclipse.platform.debug-9ee53cc7a28e94f7eeed89e809ecc3269a438915.tar.xz eclipse.platform.debug-9ee53cc7a28e94f7eeed89e809ecc3269a438915.zip |
Bug 60254 - Change required in AbstractMemoryRenderer
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/HexRenderer.java')
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/HexRenderer.java | 59 |
1 files changed, 34 insertions, 25 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/HexRenderer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/HexRenderer.java index b59a9417c..b689683b3 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/HexRenderer.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/HexRenderer.java @@ -11,6 +11,7 @@ package org.eclipse.debug.internal.ui.views.memory; import java.math.BigInteger; +import org.eclipse.debug.internal.core.memory.MemoryByte; /** @@ -21,28 +22,39 @@ import java.math.BigInteger; public class HexRenderer extends AbstractMemoryRenderer implements IFixedLengthOutputRenderer { /* (non-Javadoc) - * @see org.eclipse.debug.ui.AbstractMemoryRenderer#getString(java.lang.String, java.math.BigInteger, byte[]) + * @see org.eclipse.debug.internal.ui.views.memory.AbstractMemoryRenderer#getString(java.lang.String, java.math.BigInteger, org.eclipse.debug.internal.core.memory.MemoryByte[], java.lang.String) */ public String getString( String dataType, BigInteger address, - byte[] data) { + MemoryByte[] data, String paddedStr) { - String str; - str = convertByteArrayToHexString(data); - str = str.toUpperCase(); + StringBuffer strBuffer = new StringBuffer(); + + for (int i=0; i<data.length; i++) + { + if ((data[i].flags & MemoryByte.VALID) != 0) + { + strBuffer.append(new String(convertByteToCharArray(data[i].value))); + } + else + { + // pad with padded string + strBuffer.append(paddedStr); + } + } - return str; + return strBuffer.toString().toUpperCase(); } /* (non-Javadoc) - * @see org.eclipse.debug.ui.AbstractMemoryRenderer#getBytes(java.lang.String, java.math.BigInteger, java.lang.String) + * @see org.eclipse.debug.internal.ui.views.memory.AbstractMemoryRenderer#getBytes(java.lang.String, java.math.BigInteger, org.eclipse.debug.internal.core.memory.MemoryByte[], java.lang.String) */ public byte[] getBytes( String dataType, BigInteger address, - byte[] currentValues, String data) { + MemoryByte[] currentValues, String data) { byte[] bytes = convertHexStringToByteArray(data); @@ -50,18 +62,7 @@ public class HexRenderer extends AbstractMemoryRenderer implements IFixedLengthO } /* (non-Javadoc) - * @see org.eclipse.debug.ui.FixedLengthDataRenderer#getString(java.lang.String, java.math.BigInteger, byte[], int) - */ - public String getString(String renderingId, BigInteger address, byte[] data, int columnSize) { - String str; - str = convertByteArrayToHexString(data); - str = str.toUpperCase(); - - return str; - } - - /* (non-Javadoc) - * @see org.eclipse.debug.ui.FixedLengthDataRenderer#getNumCharPerByte() + * @see org.eclipse.debug.internal.ui.views.memory.IFixedLengthOutputRenderer#getNumCharPerByte() */ public int getNumCharPerByte() { return 2; @@ -75,19 +76,27 @@ public class HexRenderer extends AbstractMemoryRenderer implements IFixedLengthO static public String convertByteArrayToHexString(byte[] byteArray) { StringBuffer strBuffer = new StringBuffer(); - char charArray[] = new char[2]; + char charArray[]; for (int i=0; i<byteArray.length;i ++) { - int val = byteArray[i]; - if (val < 0) val += 256; - charArray[0] = Character.forDigit(val / 16, 16); - charArray[1] = Character.forDigit(val % 16, 16); + charArray = convertByteToCharArray(byteArray[i]); strBuffer.append(charArray); } return strBuffer.toString(); } + + static private char[] convertByteToCharArray(byte aByte) + { + char charArray[] = new char[2]; + int val = aByte; + if (val<0) val += 256; + charArray[0] = Character.forDigit(val/16, 16); + charArray[1] = Character.forDigit(val%16, 16); + + return charArray; + } /** * Convert raw memory datat to byte array |