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, ""); + } + +}