diff options
author | Darin Wright | 2005-03-22 03:36:18 +0000 |
---|---|---|
committer | Darin Wright | 2005-03-22 03:36:18 +0000 |
commit | a540c4950295815ccb811085015c6bd38451929f (patch) | |
tree | d224c4ed02d5bf5bb86895430dcc99c87ac9eaad | |
parent | 2c5203135bb0615abca4bc0cf47f96d282535b51 (diff) | |
download | eclipse.platform.debug-a540c4950295815ccb811085015c6bd38451929f.tar.gz eclipse.platform.debug-a540c4950295815ccb811085015c6bd38451929f.tar.xz eclipse.platform.debug-a540c4950295815ccb811085015c6bd38451929f.zip |
Bug 86390 - [API] Review of "new" memory view
3 files changed, 79 insertions, 95 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/memory/MemoryRenderingManager.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/memory/MemoryRenderingManager.java index f32522ada..9118472ee 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/memory/MemoryRenderingManager.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/memory/MemoryRenderingManager.java @@ -20,16 +20,15 @@ import java.util.Map; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExtensionPoint; -import org.eclipse.core.runtime.ISafeRunnable; import org.eclipse.core.runtime.Platform; import org.eclipse.debug.core.model.IMemoryBlock; import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.ui.IDebugUIConstants; +import org.eclipse.debug.ui.memory.AbstractMemoryRenderingBindingsProvider; import org.eclipse.debug.ui.memory.IMemoryRendering; import org.eclipse.debug.ui.memory.IMemoryRenderingBindingsListener; import org.eclipse.debug.ui.memory.IMemoryRenderingManager; import org.eclipse.debug.ui.memory.IMemoryRenderingType; -import org.eclipse.jface.util.ListenerList; /** * The memory rendering manager. @@ -37,7 +36,7 @@ import org.eclipse.jface.util.ListenerList; * @see org.eclipse.debug.ui.memory.IMemoryRenderingManager * @since 3.1 */ -public class MemoryRenderingManager implements IMemoryRenderingManager { +public class MemoryRenderingManager extends AbstractMemoryRenderingBindingsProvider implements IMemoryRenderingManager { // map of rendering type ids to valid rendering types private Map fRenderingTypes = new HashMap(); @@ -48,9 +47,6 @@ public class MemoryRenderingManager implements IMemoryRenderingManager { // singleton manager private static MemoryRenderingManager fgDefault; - // list of binding listeners - private ListenerList fListeners; - // elements in the memory renderings extension point public static final String ELEMENT_MEMORY_RENDERING_TYPE = "renderingType"; //$NON-NLS-1$ public static final String ELEMENT_RENDERING_BINDINGS = "renderingBindings"; //$NON-NLS-1$ @@ -176,7 +172,7 @@ public class MemoryRenderingManager implements IMemoryRenderingManager { fBindings.add(bindings); bindings.addListener(new IMemoryRenderingBindingsListener() { public void memoryRenderingBindingsChanged() { - fireBindingChangedEvent(); + fireBindingsChanged(); }}); } catch (CoreException e) { DebugUIPlugin.log(e); @@ -184,47 +180,4 @@ public class MemoryRenderingManager implements IMemoryRenderingManager { } } } - - /* (non-Javadoc) - * @see org.eclipse.debug.ui.memory.IMemoryRenderingBindingsProvider#addListener(org.eclipse.debug.ui.memory.IMemoryRenderingBindingsListener) - */ - public void addListener(IMemoryRenderingBindingsListener listener) { - if (fListeners == null) - fListeners = new ListenerList(); - - fListeners.add(listener); - } - /* (non-Javadoc) - * @see org.eclipse.debug.ui.memory.IMemoryRenderingBindingsProvider#removeListener(org.eclipse.debug.ui.memory.IMemoryRenderingBindingsListener) - */ - public void removeListener(IMemoryRenderingBindingsListener listener) { - if (fListeners != null) - { - fListeners.remove(listener); - } - } - - private void fireBindingChangedEvent() - { - if (fListeners == null) - return; - - Object[] listeners = fListeners.getListeners(); - - for (int i=0; i<listeners.length; i++) - { - if (listeners[i] instanceof IMemoryRenderingBindingsListener) - { - final IMemoryRenderingBindingsListener listener = (IMemoryRenderingBindingsListener)listeners[i]; - ISafeRunnable runnable = new ISafeRunnable () { - public void handleException(Throwable exception) { - DebugUIPlugin.log(exception); - } - public void run() throws Exception { - listener.memoryRenderingBindingsChanged(); - }}; - Platform.run(runnable); - } - } - } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/memory/RenderingBindings.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/memory/RenderingBindings.java index 20eb197cf..3a4f15b9f 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/memory/RenderingBindings.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/memory/RenderingBindings.java @@ -21,19 +21,17 @@ import org.eclipse.core.expressions.ExpressionTagNames; import org.eclipse.core.expressions.IEvaluationContext; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.ISafeRunnable; import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.debug.core.model.IMemoryBlock; import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.ui.DebugUITools; import org.eclipse.debug.ui.IDebugUIConstants; +import org.eclipse.debug.ui.memory.AbstractMemoryRenderingBindingsProvider; import org.eclipse.debug.ui.memory.IMemoryRenderingBindingsListener; import org.eclipse.debug.ui.memory.IMemoryRenderingBindingsProvider; import org.eclipse.debug.ui.memory.IMemoryRenderingManager; import org.eclipse.debug.ui.memory.IMemoryRenderingType; -import org.eclipse.jface.util.ListenerList; /** * Represents a renderingBindings element of a memoryRenderings @@ -41,7 +39,7 @@ import org.eclipse.jface.util.ListenerList; * * @since 3.1 */ -class RenderingBindings implements IMemoryRenderingBindingsProvider { +class RenderingBindings extends AbstractMemoryRenderingBindingsProvider implements IMemoryRenderingBindingsProvider { // element protected IConfigurationElement fConfigurationElement; @@ -57,9 +55,6 @@ class RenderingBindings implements IMemoryRenderingBindingsProvider { // optional exprssion private Expression fExpression; - // list of listeners - private ListenerList fListeners; - // element attribute public static final String ATTR_RENDERING_IDS = "renderingIds"; //$NON-NLS-1$ public static final String ATTR_DEFAULT_IDS = "defaultIds"; //$NON-NLS-1$ @@ -172,7 +167,7 @@ class RenderingBindings implements IMemoryRenderingBindingsProvider { { fProvider.addListener(new IMemoryRenderingBindingsListener() { public void memoryRenderingBindingsChanged() { - fireBindingChangedEvent(); + fireBindingsChanged(); }}); } } @@ -297,42 +292,5 @@ class RenderingBindings implements IMemoryRenderingBindingsProvider { private IMemoryRenderingManager getManager() { return DebugUITools.getMemoryRenderingManager(); } - - public void addListener(IMemoryRenderingBindingsListener listener) { - if (fListeners == null) - fListeners = new ListenerList(); - - fListeners.add(listener); - } - - public void removeListener(IMemoryRenderingBindingsListener listener) { - if (fListeners != null){ - fListeners.remove(listener); - } - } - - private void fireBindingChangedEvent() - { - if (fListeners == null) - return; - - Object[] listeners = fListeners.getListeners(); - - for (int i=0; i<listeners.length; i++) - { - if (listeners[i] instanceof IMemoryRenderingBindingsListener) - { - final IMemoryRenderingBindingsListener listener = (IMemoryRenderingBindingsListener)listeners[i]; - ISafeRunnable runnable = new ISafeRunnable () { - public void handleException(Throwable exception) { - DebugUIPlugin.log(exception); - } - public void run() throws Exception { - listener.memoryRenderingBindingsChanged(); - }}; - Platform.run(runnable); - } - } - } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/memory/AbstractMemoryRenderingBindingsProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/memory/AbstractMemoryRenderingBindingsProvider.java new file mode 100644 index 000000000..38a417298 --- /dev/null +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/memory/AbstractMemoryRenderingBindingsProvider.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * Copyright (c) 2004, 2005 IBM Corporation 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 + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.debug.ui.memory; + +import org.eclipse.core.runtime.ISafeRunnable; +import org.eclipse.core.runtime.Platform; +import org.eclipse.debug.internal.ui.DebugUIPlugin; +import org.eclipse.jface.util.ListenerList; + +/** + * Common function for a dynamic memory rendering bindings provider. + * <p> + * Clients may subclass this class. + * </p> + * @see org.eclipse.debug.ui.memory.IMemoryRenderingBindingsProvider + * @since 3.1 + */ +public abstract class AbstractMemoryRenderingBindingsProvider implements IMemoryRenderingBindingsProvider { + + // list of binding listeners + private ListenerList fListeners; + + /* (non-Javadoc) + * @see org.eclipse.debug.ui.memory.IMemoryRenderingBindingsProvider#addListener(org.eclipse.debug.ui.memory.IMemoryRenderingBindingsListener) + */ + public void addListener(IMemoryRenderingBindingsListener listener) { + if (fListeners == null) { + fListeners = new ListenerList(); + } + fListeners.add(listener); + } + /* (non-Javadoc) + * @see org.eclipse.debug.ui.memory.IMemoryRenderingBindingsProvider#removeListener(org.eclipse.debug.ui.memory.IMemoryRenderingBindingsListener) + */ + public void removeListener(IMemoryRenderingBindingsListener listener) { + if (fListeners != null) { + fListeners.remove(listener); + } + } + + /** + * Notifies all registered listeners that bindings have changed. + */ + protected void fireBindingsChanged() { + if (fListeners == null) { + return; + } + + Object[] listeners = fListeners.getListeners(); + + for (int i=0; i<listeners.length; i++) { + if (listeners[i] instanceof IMemoryRenderingBindingsListener) { + final IMemoryRenderingBindingsListener listener = (IMemoryRenderingBindingsListener)listeners[i]; + ISafeRunnable runnable = new ISafeRunnable () { + public void handleException(Throwable exception) { + DebugUIPlugin.log(exception); + } + public void run() throws Exception { + listener.memoryRenderingBindingsChanged(); + }}; + Platform.run(runnable); + } + } + } +} |