diff --git a/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/plugin.xml b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/plugin.xml
index 5c4e11f975b..a2a1bead26c 100644
--- a/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/plugin.xml
+++ b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/plugin.xml
@@ -30,5 +30,8 @@
-
+
+
+
diff --git a/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/MemoryBrowser.java b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/MemoryBrowser.java
index 340b4b9da7d..2ec35b54ac3 100644
--- a/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/MemoryBrowser.java
+++ b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/MemoryBrowser.java
@@ -55,6 +55,7 @@ import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.resource.ColorRegistry;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.util.IPropertyChangeListener;
@@ -126,6 +127,9 @@ public class MemoryBrowser extends ViewPart implements IDebugContextListener, IL
private final static String KEY_MEMORY_BLOCK = "MEMORY"; //$NON-NLS-1$
private final static String KEY_RETRIEVAL = "RETRIEVAL"; //$NON-NLS-1$
private final static String KEY_CONTAINER = "CONTAINER"; //$NON-NLS-1$
+
+ public static final String PREF_DEFAULT_RENDERING = "org.eclipse.cdt.debug.ui.memory.memorybrowser.defaultRendering"; //$NON-NLS-1$
+
public MemoryBrowser() {
}
@@ -138,19 +142,25 @@ public class MemoryBrowser extends ViewPart implements IDebugContextListener, IL
public void createPartControl(Composite parent) {
// set default rendering type. use the traditional rendering if available. fallback on first registered type.
// this should eventually be configurable via a preference page.
- boolean isTraditionalRenderingAvailable = false;
- final String traditionalRenderingId = "org.eclipse.cdt.debug.ui.memory.traditional.TraditionalRendering"; //$NON-NLS-1$
+ boolean isDefaultRenderingAvailable = false;
+ IPreferenceStore store = MemoryBrowserPlugin.getDefault().getPreferenceStore();
+ String defaultRendering = store.getString(PREF_DEFAULT_RENDERING);
+ if(defaultRendering == null || defaultRendering.trim().length() == 0)
+ {
+ defaultRendering = "org.eclipse.cdt.debug.ui.memory.traditional.TraditionalRendering"; //$NON-NLS-1$
+ }
+
IMemoryRenderingType[] types = getRenderingTypes();
for(final IMemoryRenderingType type : types)
{
- if(type.getId().equals(traditionalRenderingId))
+ if(type.getId().equals(defaultRendering))
{
- isTraditionalRenderingAvailable = true;
+ isDefaultRenderingAvailable = true;
break;
}
}
- if(isTraditionalRenderingAvailable)
- defaultRenderingTypeId = traditionalRenderingId;
+ if(isDefaultRenderingAvailable)
+ defaultRenderingTypeId = defaultRendering;
else if(types.length > 0)
defaultRenderingTypeId = types[0].getId();
@@ -581,9 +591,11 @@ public class MemoryBrowser extends ViewPart implements IDebugContextListener, IL
return defaultRenderingTypeId;
}
- private void setDefaultRenderingTypeId(String id)
+ public void setDefaultRenderingTypeId(String id)
{
defaultRenderingTypeId = id;
+ IPreferenceStore store = MemoryBrowserPlugin.getDefault().getPreferenceStore();
+ store.setValue(PREF_DEFAULT_RENDERING, defaultRenderingTypeId);
}
private void populateTabWithRendering(final CTabItem tab, final IMemoryBlockRetrieval retrieval, Object context)
diff --git a/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/MemoryBrowserPreferenceInitializer.java b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/MemoryBrowserPreferenceInitializer.java
new file mode 100644
index 00000000000..4a6c46dc119
--- /dev/null
+++ b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/MemoryBrowserPreferenceInitializer.java
@@ -0,0 +1,23 @@
+package org.eclipse.cdt.debug.ui.memory.memorybrowser;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+
+/**
+ * Class used to initialize default preference values.
+ */
+public class MemoryBrowserPreferenceInitializer extends AbstractPreferenceInitializer {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+ */
+ public void initializeDefaultPreferences() {
+ IPreferenceStore store = MemoryBrowserPlugin.getDefault().getPreferenceStore();
+
+ // The following preferences should be kept in the store
+ store.setDefault(MemoryBrowser.PREF_DEFAULT_RENDERING, "");
+ }
+
+}