Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingCellModifier.java')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingCellModifier.java276
1 files changed, 138 insertions, 138 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingCellModifier.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingCellModifier.java
index a48396771..9312bf799 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingCellModifier.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingCellModifier.java
@@ -40,16 +40,16 @@ import org.eclipse.swt.widgets.TableItem;
// to plug cell modifier in case the element is not MemorySegment
public class AsyncTableRenderingCellModifier implements ICellModifier {
- private AbstractAsyncTableRendering fRendering;
- private boolean fMBSupportsValueModification = false;
+ private AbstractAsyncTableRendering fRendering;
+ private boolean fMBSupportsValueModification = false;
- private ICellModifier fCustomModifier;
+ private ICellModifier fCustomModifier;
- public AsyncTableRenderingCellModifier(AbstractAsyncTableRendering rendering, ICellModifier customModifier) {
- fRendering = rendering;
- fCustomModifier = customModifier;
+ public AsyncTableRenderingCellModifier(AbstractAsyncTableRendering rendering, ICellModifier customModifier) {
+ fRendering = rendering;
+ fCustomModifier = customModifier;
- Job job = new Job("AsyncTableRenderingCellModifier"){ //$NON-NLS-1$
+ Job job = new Job("AsyncTableRenderingCellModifier"){ //$NON-NLS-1$
@Override
protected IStatus run(IProgressMonitor monitor) {
@@ -58,126 +58,126 @@ public class AsyncTableRenderingCellModifier implements ICellModifier {
}};
job.setSystem(true);
job.schedule();
- }
+ }
- @Override
+ @Override
public boolean canModify(Object element, String property) {
- boolean canModify = true;
- try {
- if (!(element instanceof MemorySegment)) {
+ boolean canModify = true;
+ try {
+ if (!(element instanceof MemorySegment)) {
return false;
}
- if (!isValueModificationSupported()) {
- return false;
- }
-
- MemorySegment line = (MemorySegment) element;
- if (TableRenderingLine.P_ADDRESS.equals(property)) {
- return false;
- }
-
- // property is stored as number of addressable unit away from the
- // line address
- // to calculate offset to the memory line array, offset =
- // numberofAddressableUnit * addressableSize
- int addressableSize = getAddressableSize();
-
- int offset = Integer.valueOf(property, 16).intValue() * addressableSize;
-
- MemoryByte[] bytes = line.getBytes(offset, fRendering.getBytesPerColumn());
-
- if (fCustomModifier != null)
- {
- BigInteger address = line.getAddress().add(BigInteger.valueOf(offset));
- MemoryRenderingElement mElement = new MemoryRenderingElement(fRendering, address, bytes);
- return fCustomModifier.canModify(mElement, null);
- }
-
- for (int i = 0; i < bytes.length; i++) {
- if (!bytes[i].isWritable()) {
- canModify = false;
- }
- }
- return canModify;
- } catch (NumberFormatException e) {
- canModify = false;
- return canModify;
- }
- }
-
- /**
- * @return the rendering addressable size
- */
- private int getAddressableSize() {
- int addressableSize = fRendering.getAddressableSize();
- if (addressableSize < 1) {
+ if (!isValueModificationSupported()) {
+ return false;
+ }
+
+ MemorySegment line = (MemorySegment) element;
+ if (TableRenderingLine.P_ADDRESS.equals(property)) {
+ return false;
+ }
+
+ // property is stored as number of addressable unit away from the
+ // line address
+ // to calculate offset to the memory line array, offset =
+ // numberofAddressableUnit * addressableSize
+ int addressableSize = getAddressableSize();
+
+ int offset = Integer.valueOf(property, 16).intValue() * addressableSize;
+
+ MemoryByte[] bytes = line.getBytes(offset, fRendering.getBytesPerColumn());
+
+ if (fCustomModifier != null)
+ {
+ BigInteger address = line.getAddress().add(BigInteger.valueOf(offset));
+ MemoryRenderingElement mElement = new MemoryRenderingElement(fRendering, address, bytes);
+ return fCustomModifier.canModify(mElement, null);
+ }
+
+ for (int i = 0; i < bytes.length; i++) {
+ if (!bytes[i].isWritable()) {
+ canModify = false;
+ }
+ }
+ return canModify;
+ } catch (NumberFormatException e) {
+ canModify = false;
+ return canModify;
+ }
+ }
+
+ /**
+ * @return the rendering addressable size
+ */
+ private int getAddressableSize() {
+ int addressableSize = fRendering.getAddressableSize();
+ if (addressableSize < 1) {
addressableSize = 1;
}
- return addressableSize;
- }
+ return addressableSize;
+ }
- @Override
+ @Override
public Object getValue(Object element, String property) {
- // give back the value of the column
+ // give back the value of the column
- if (!(element instanceof MemorySegment)) {
+ if (!(element instanceof MemorySegment)) {
return null;
}
- MemorySegment line = (MemorySegment) element;
- try {
- if (TableRenderingLine.P_ADDRESS.equals(property)) {
+ MemorySegment line = (MemorySegment) element;
+ try {
+ if (TableRenderingLine.P_ADDRESS.equals(property)) {
return line.getAddress();
}
- int offsetToLineBuffer = Integer.valueOf(property, 16).intValue() * getAddressableSize();
- MemoryByte[] memory = line.getBytes(offsetToLineBuffer, fRendering.getBytesPerColumn());
+ int offsetToLineBuffer = Integer.valueOf(property, 16).intValue() * getAddressableSize();
+ MemoryByte[] memory = line.getBytes(offsetToLineBuffer, fRendering.getBytesPerColumn());
- int offsetFromLineAddress = Integer.valueOf(property, 16).intValue();
- BigInteger address = line.getAddress().add(BigInteger.valueOf(offsetFromLineAddress));
+ int offsetFromLineAddress = Integer.valueOf(property, 16).intValue();
+ BigInteger address = line.getAddress().add(BigInteger.valueOf(offsetFromLineAddress));
- if (fCustomModifier != null)
- {
- MemoryRenderingElement mElement = new MemoryRenderingElement(fRendering, address, memory);
- return fCustomModifier.getValue(mElement, null);
- }
+ if (fCustomModifier != null)
+ {
+ MemoryRenderingElement mElement = new MemoryRenderingElement(fRendering, address, memory);
+ return fCustomModifier.getValue(mElement, null);
+ }
- // ask the rendering for a string representation of the bytes
- return fRendering.getString(fRendering.getRenderingId(), address, memory);
+ // ask the rendering for a string representation of the bytes
+ return fRendering.getString(fRendering.getRenderingId(), address, memory);
- } catch (NumberFormatException e) {
- return "00"; //$NON-NLS-1$
- }
- }
+ } catch (NumberFormatException e) {
+ return "00"; //$NON-NLS-1$
+ }
+ }
- @Override
+ @Override
public void modify(Object element, final String property, final Object value) {
- MemorySegment segment = null;
- if (element instanceof TableItem) {
- Object data = ((TableItem)element).getData();
- if (data != null && data instanceof MemorySegment) {
+ MemorySegment segment = null;
+ if (element instanceof TableItem) {
+ Object data = ((TableItem)element).getData();
+ if (data != null && data instanceof MemorySegment) {
segment = (MemorySegment)data;
}
- } else if (element instanceof MemorySegment){
- segment = (MemorySegment) element;
- }
+ } else if (element instanceof MemorySegment){
+ segment = (MemorySegment) element;
+ }
- if (segment == null) {
+ if (segment == null) {
return;
}
- final MemorySegment line = segment;
+ final MemorySegment line = segment;
- Job job = new Job("Set Values"){ //$NON-NLS-1$
+ Job job = new Job("Set Values"){ //$NON-NLS-1$
@Override
protected IStatus run(IProgressMonitor monitor) {
try {
- // calculate offset to update
+ // calculate offset to update
final IMemoryBlock memoryBlk = fRendering.getMemoryBlock();
// number of addressable units from the line's start address
@@ -198,7 +198,7 @@ public class AsyncTableRenderingCellModifier implements ICellModifier {
address = address.add(BigInteger.valueOf(offsetFromLineAddress));
if (fCustomModifier != null) {
- MemoryRenderingElement mElement = new MemoryRenderingElement(fRendering, address, oldArray);
+ MemoryRenderingElement mElement = new MemoryRenderingElement(fRendering, address, oldArray);
fCustomModifier.modify(mElement, null, value);
return Status.OK_STATUS;
}
@@ -209,77 +209,77 @@ public class AsyncTableRenderingCellModifier implements ICellModifier {
return Status.OK_STATUS;
}
- byte[] bytes = null;
- String oldValue = (String) getValue(line, property);
- if (!oldValue.equals(value)) {
- bytes = fRendering.getBytes(fRendering.getRenderingId(), address, oldArray, (String) value);
+ byte[] bytes = null;
+ String oldValue = (String) getValue(line, property);
+ if (!oldValue.equals(value)) {
+ bytes = fRendering.getBytes(fRendering.getRenderingId(), address, oldArray, (String) value);
- if (bytes == null) {
+ if (bytes == null) {
return Status.OK_STATUS;
}
- if (bytes.length == 0) {
+ if (bytes.length == 0) {
return Status.OK_STATUS;
}
- if (bytes.length <= oldArray.length) {
- boolean changed = false;
- // check that the bytes returned has actually changed
- for (int i = 0; i < bytes.length; i++) {
- if (bytes[i] != oldArray[i].getValue()) {
- changed = true;
- break;
- }
- }
- if (!changed) {
+ if (bytes.length <= oldArray.length) {
+ boolean changed = false;
+ // check that the bytes returned has actually changed
+ for (int i = 0; i < bytes.length; i++) {
+ if (bytes[i] != oldArray[i].getValue()) {
+ changed = true;
+ break;
+ }
+ }
+ if (!changed) {
return Status.OK_STATUS;
}
- }
- } else {
- // return if value has not changed
- return Status.OK_STATUS;
- }
+ }
+ } else {
+ // return if value has not changed
+ return Status.OK_STATUS;
+ }
- final byte[] newByteValues = bytes;
+ final byte[] newByteValues = bytes;
- if (memoryBlk instanceof IMemoryBlockExtension) {
+ if (memoryBlk instanceof IMemoryBlockExtension) {
((IMemoryBlockExtension) memoryBlk).setValue(offsetFromMBBase, newByteValues);
} else {
memoryBlk.setValue(offsetFromMBBase.longValue(), newByteValues);
}
- } catch (DebugException e) {
- MemoryViewUtil.openError(DebugUIMessages.MemoryViewCellModifier_failure_title, DebugUIMessages.MemoryViewCellModifier_failed, e);
- } catch (NumberFormatException e) {
- MemoryViewUtil.openError(DebugUIMessages.MemoryViewCellModifier_failure_title, DebugUIMessages.MemoryViewCellModifier_failed + "\n" + DebugUIMessages.MemoryViewCellModifier_data_is_invalid, null); //$NON-NLS-1$
- }
- return Status.OK_STATUS;
+ } catch (DebugException e) {
+ MemoryViewUtil.openError(DebugUIMessages.MemoryViewCellModifier_failure_title, DebugUIMessages.MemoryViewCellModifier_failed, e);
+ } catch (NumberFormatException e) {
+ MemoryViewUtil.openError(DebugUIMessages.MemoryViewCellModifier_failure_title, DebugUIMessages.MemoryViewCellModifier_failed + "\n" + DebugUIMessages.MemoryViewCellModifier_data_is_invalid, null); //$NON-NLS-1$
+ }
+ return Status.OK_STATUS;
}};
- job.setSystem(true);
- job.schedule();
- }
+ job.setSystem(true);
+ job.schedule();
+ }
- private BigInteger getOffset(IMemoryBlock memory, BigInteger lineAddress, int lineOffset) throws DebugException {
+ private BigInteger getOffset(IMemoryBlock memory, BigInteger lineAddress, int lineOffset) throws DebugException {
- BigInteger memoryAddr;
+ BigInteger memoryAddr;
- if (memory instanceof IMemoryBlockExtension) {
- memoryAddr = ((IMemoryBlockExtension) memory).getBigBaseAddress();
- } else {
- memoryAddr = BigInteger.valueOf(memory.getStartAddress());
- }
+ if (memory instanceof IMemoryBlockExtension) {
+ memoryAddr = ((IMemoryBlockExtension) memory).getBigBaseAddress();
+ } else {
+ memoryAddr = BigInteger.valueOf(memory.getStartAddress());
+ }
- if (memoryAddr == null)
+ if (memoryAddr == null)
{
memoryAddr = new BigInteger("0"); //$NON-NLS-1$
}
- return lineAddress.subtract(memoryAddr).add(BigInteger.valueOf(lineOffset));
- }
+ return lineAddress.subtract(memoryAddr).add(BigInteger.valueOf(lineOffset));
+ }
- private boolean isValueModificationSupported()
- {
- return fMBSupportsValueModification;
- }
+ private boolean isValueModificationSupported()
+ {
+ return fMBSupportsValueModification;
+ }
}

Back to the top