Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Fix for PR 25988

Fix for PR 25988: The 'Padding Character' preference of the Memory view 
doesn't work.

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/ChangeLog,v
retrieving revision 1.28
diff -u -r1.28 ChangeLog
--- ChangeLog	5 Nov 2002 20:26:57 -0000	1.28
+++ ChangeLog	11 Nov 2002 20:13:07 -0000
@@ -1,3 +1,8 @@
+2002-11-11 Mikhail Khodjaiants
+	Fix for PR 25988: The 'Padding Character' preference of the Memory view 
doesn't work.
+	* MemoryControlArea.java
+	* MemoryViewPreferencePage.java
+
 2002-11-05 Mikhail Khodjaiants
 	Implementation of the "Add Global Variables" action of the Expressions view.
 	Action images:
Index: 
src/org/eclipse/cdt/debug/internal/ui/preferences/MemoryViewPreferencePage.java
===================================================================
RCS file: 
/home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/preferences/MemoryViewPreferencePage.java,v
retrieving revision 1.4
diff -u -r1.4 MemoryViewPreferencePage.java
--- 
src/org/eclipse/cdt/debug/internal/ui/preferences/MemoryViewPreferencePage.java	
31 Oct 2002 23:29:27 -0000	1.4
+++ 
src/org/eclipse/cdt/debug/internal/ui/preferences/MemoryViewPreferencePage.java	
11 Nov 2002 20:13:07 -0000
@@ -96,7 +96,8 @@
 //		addField( dirty );
 		addField( font );
 
-		StringFieldEditor paddingChar = new StringFieldEditor( 
ICDebugPreferenceConstants.PREF_MEMORY_PADDING_CHAR, "Padding Character:", 1, 
getFieldEditorParent() );
+//		StringFieldEditor paddingChar = new StringFieldEditor( 
ICDebugPreferenceConstants.PREF_MEMORY_PADDING_CHAR, "Padding Character:", 1, 
getFieldEditorParent() );
+		StringFieldEditor paddingChar = createPaddingCharacterField();
 		paddingChar.setTextLimit( 1 );
 		addField( paddingChar );
 	}
@@ -135,5 +136,16 @@
 		boolean ok = super.performOk();
 		CDebugUIPlugin.getDefault().savePluginPreferences();
 		return ok;
+	}
+	
+	private StringFieldEditor createPaddingCharacterField()
+	{
+		return new StringFieldEditor( 
ICDebugPreferenceConstants.PREF_MEMORY_PADDING_CHAR, "Padding Character:", 1, 
getFieldEditorParent() )
+					{
+						protected boolean doCheckState() 
+						{
+							return ( getTextControl().getText().length() == 1 );
+						}
+					};
 	}
 }
Index: 
src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryControlArea.java
===================================================================
RCS file: 
/home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryControlArea.java,v
retrieving revision 1.13
diff -u -r1.13 MemoryControlArea.java
--- src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryControlArea.java	
30 Oct 2002 23:39:31 -0000	1.13
+++ src/org/eclipse/cdt/debug/internal/ui/views/memory/MemoryControlArea.java	
11 Nov 2002 20:13:07 -0000
@@ -13,6 +13,7 @@
 import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
 import org.eclipse.debug.core.DebugException;
 import org.eclipse.debug.core.model.IDebugTarget;
+import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CTabFolder;
@@ -72,11 +73,10 @@
 
 	private MemoryPresentation createPresentation()
 	{
-/*
 		IPreferenceStore pstore = CDebugUIPlugin.getDefault().getPreferenceStore();
 		char[] paddingCharStr = pstore.getString( 
ICDebugPreferenceConstants.PREF_MEMORY_PADDING_CHAR ).toCharArray();
-		char paddingChar = ( paddingCharStr.length > 0 ) ? paddingCharStr[0] : '.';
-*/
+		setPaddingChar( ( paddingCharStr.length > 0 ) ? paddingCharStr[0] : '.' );
+
 		return new MemoryPresentation();
 	}
 
@@ -164,10 +164,11 @@
 		{
 			fMemoryText.setDirtyColor();
 		}
-		else
+		else if ( event.getProperty().equals( 
ICDebugPreferenceConstants.PREF_MEMORY_PADDING_CHAR ) )
 		{
-//			updatePresentation( event );
-//			fMemoryText.refresh();
+			String paddingCharString = (String)event.getNewValue();
+			setPaddingChar( ( paddingCharString.length() > 0 ) ? 
paddingCharString.charAt( 0 ) : '.' );
+			refresh();
 		}
 	}
 
@@ -307,6 +308,21 @@
 	public void setPaddingChar( char paddingChar )
 	{
 		fPaddingChar = paddingChar;
+		if ( getMemoryBlock() != null )
+		{
+			try
+			{
+				getMemoryBlock().reformat( getMemoryBlock().getFormat(),
+										   getMemoryBlock().getWordSize(),
+										   getMemoryBlock().getNumberOfRows(),
+										   getMemoryBlock().getNumberOfColumns(),
+										   fPaddingChar );
+			}
+			catch( DebugException e )
+			{
+				// ignore
+			}
+		}
 	}
 
 	public void setWordSize( int wordSize )


Back to the top