diff options
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/provisional/AbstractModelProxy.java')
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/provisional/AbstractModelProxy.java | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/provisional/AbstractModelProxy.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/provisional/AbstractModelProxy.java index 7608f3732..6311232e6 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/provisional/AbstractModelProxy.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/provisional/AbstractModelProxy.java @@ -15,6 +15,11 @@ import org.eclipse.core.runtime.ListenerList; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.SafeRunner; import org.eclipse.debug.internal.ui.DebugUIPlugin; +import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelChangedListener; +import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta; +import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxy; +import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext; +import org.eclipse.jface.viewers.Viewer; /** * Common function for a model proxy. @@ -26,6 +31,8 @@ import org.eclipse.debug.internal.ui.DebugUIPlugin; public abstract class AbstractModelProxy implements IModelProxy { private IPresentationContext fContext; + private Viewer fViewer; + private boolean fDisposed = false; private ListenerList fListeners = new ListenerList(); @@ -79,7 +86,7 @@ public abstract class AbstractModelProxy implements IModelProxy { } public void run() throws Exception { - listener.modelChanged(delta); + listener.modelChanged(delta, AbstractModelProxy.this); } }; @@ -91,7 +98,9 @@ public abstract class AbstractModelProxy implements IModelProxy { * @see org.eclipse.debug.internal.ui.viewers.IModelProxy#dispose() */ public synchronized void dispose() { + fDisposed = true; fContext = null; + fViewer = null; } /* (non-Javadoc) @@ -112,14 +121,29 @@ public abstract class AbstractModelProxy implements IModelProxy { } /* (non-Javadoc) + * * Subclasses should override as required. * - * @see org.eclipse.debug.internal.ui.viewers.IModelProxy#installed() + * @see org.eclipse.debug.internal.ui.viewers.provisional.IModelProxy#installed(org.eclipse.jface.viewers.Viewer) */ - public void installed() { + public void installed(Viewer viewer) { + fViewer = viewer; } + /** + * Returns the viewer this proxy is installed in. + * + * @return viewer or <code>null</code> if not installed + */ + protected Viewer getViewer() { + return fViewer; + } - + /* (non-Javadoc) + * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxy#isDisposed() + */ + public synchronized boolean isDisposed() { + return fDisposed; + } } |