diff --git a/plugins/org.eclipse.dd.debug.memory.renderings.traditional/src/org/eclipse/dd/debug/memory/renderings/traditional/Rendering.java b/plugins/org.eclipse.dd.debug.memory.renderings.traditional/src/org/eclipse/dd/debug/memory/renderings/traditional/Rendering.java index 28e1eba6f85..e47500e5df5 100644 --- a/plugins/org.eclipse.dd.debug.memory.renderings.traditional/src/org/eclipse/dd/debug/memory/renderings/traditional/Rendering.java +++ b/plugins/org.eclipse.dd.debug.memory.renderings.traditional/src/org/eclipse/dd/debug/memory/renderings/traditional/Rendering.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006-2007 Wind River Systems, Inc. and others. + * Copyright (c) 2006-2008 Wind River Systems, Inc. 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 @@ -140,6 +140,8 @@ public class Rendering extends Composite implements IDebugEventSetListener private int fPaneSpacing = 16; + private String fPaddingString = "?"; //$NON-NLS-1$ + // flag whether the memory cache is dirty private boolean fCacheDirty = false; @@ -514,6 +516,18 @@ public class Rendering extends Composite implements IDebugEventSetListener layout(true); } + public void setPaddingString(String padding) + { + fPaddingString = padding; + + refresh(); + } + + public char getPaddingCharacter() + { + return fPaddingString.charAt(0); // use only the first character + } + static int suspendCount = 0; public void handleDebugEvents(DebugEvent[] events) @@ -1933,7 +1947,7 @@ public class Rendering extends Composite implements IDebugEventSetListener StringBuffer errorText = new StringBuffer(); for(int i = getRadixCharacterCount(radix, bytes.length); i > 0; i--) - errorText.append('?'); + errorText.append(getPaddingCharacter()); return errorText.toString(); } @@ -2015,7 +2029,7 @@ public class Rendering extends Composite implements IDebugEventSetListener { StringBuffer errorText = new StringBuffer(); for(int i = memoryBytes.length; i > 0; i--) - errorText.append('?'); + errorText.append(getPaddingCharacter()); return errorText.toString(); } @@ -2077,7 +2091,7 @@ public class Rendering extends Composite implements IDebugEventSetListener // return ?s the length of byte count StringBuffer buf = new StringBuffer(); for(int i = 0; i < memoryBytes.length - buf.length(); i++) - buf.append('?'); + buf.append(getPaddingCharacter()); return buf.toString(); } } diff --git a/plugins/org.eclipse.dd.debug.memory.renderings.traditional/src/org/eclipse/dd/debug/memory/renderings/traditional/TraditionalRendering.java b/plugins/org.eclipse.dd.debug.memory.renderings.traditional/src/org/eclipse/dd/debug/memory/renderings/traditional/TraditionalRendering.java index 028943ab1d2..4e51b4b1edd 100644 --- a/plugins/org.eclipse.dd.debug.memory.renderings.traditional/src/org/eclipse/dd/debug/memory/renderings/traditional/TraditionalRendering.java +++ b/plugins/org.eclipse.dd.debug.memory.renderings.traditional/src/org/eclipse/dd/debug/memory/renderings/traditional/TraditionalRendering.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006 Wind River Systems, Inc. and others. + * Copyright (c) 2006-2008 Wind River Systems, Inc. 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 @@ -20,7 +20,6 @@ import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; -import org.eclipse.dd.debug.memory.renderings.traditional.Rendering.Selection; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.model.IMemoryBlock; import org.eclipse.debug.core.model.IMemoryBlockExtension; @@ -31,6 +30,7 @@ import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.internal.ui.IInternalDebugUIConstants; import org.eclipse.debug.internal.ui.memory.IMemoryBlockConnection; import org.eclipse.debug.internal.ui.views.memory.renderings.GoToAddressAction; +import org.eclipse.debug.ui.IDebugUIConstants; import org.eclipse.debug.ui.memory.AbstractMemoryRendering; import org.eclipse.debug.ui.memory.AbstractTableRendering; import org.eclipse.debug.ui.memory.IMemoryRendering; @@ -156,6 +156,30 @@ public class TraditionalRendering extends AbstractMemoryRendering implements IRe } }); + + DebugUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener( + new IPropertyChangeListener() + { + public void propertyChange(PropertyChangeEvent event) + { + if(event.getProperty().equals(IDebugUIConstants.PREF_PADDED_STR)) + { + if(TraditionalRendering.this.fRendering != null) + { + setRenderingPadding((String) event.getNewValue()); + TraditionalRendering.this.fRendering.redrawPanes(); + } + } + } + }); + + } + + private void setRenderingPadding(String padding) + { + if(padding == null || padding.length() == 0) + padding = "?"; + TraditionalRendering.this.fRendering.setPaddingString(padding); } protected void logError(String message, Exception e) @@ -442,6 +466,8 @@ public class TraditionalRendering extends AbstractMemoryRendering implements IRe for(int i = 0; i < panes.length; i++) panes[i].setBackground(getColorBackground()); + setRenderingPadding(DebugUIPlugin.getDefault().getPreferenceStore().getString(IDebugUIConstants.PREF_PADDED_STR)); + fRendering.redrawPanes(); } }