Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 156983 Details for
Bug 300300
[Expression] Support for java-specific columns in Expressions view.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Support for instance ID and instance count values for expressions.
20100121_jdtExpressionsColumns.patch (text/plain), 27.66 KB, created by
Pawel Piech
on 2010-01-22 14:49:17 EST
(
hide
)
Description:
Support for instance ID and instance count values for expressions.
Filename:
MIME Type:
Creator:
Pawel Piech
Created:
2010-01-22 14:49:17 EST
Size:
27.66 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.debug.ui >Index: META-INF/MANIFEST.MF >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/META-INF/MANIFEST.MF,v >retrieving revision 1.54 >diff -u -r1.54 MANIFEST.MF >--- META-INF/MANIFEST.MF 14 Dec 2009 18:23:30 -0000 1.54 >+++ META-INF/MANIFEST.MF 22 Jan 2010 19:37:21 -0000 >@@ -29,6 +29,7 @@ > org.eclipse.debug.internal.ui.memory;x-internal:=true, > org.eclipse.debug.internal.ui.memory.provisional;x-internal:=true, > org.eclipse.debug.internal.ui.model.elements;x-internal:=true, >+ org.eclipse.debug.internal.ui.model.expressions.provisional;x-internal:=true, > org.eclipse.debug.internal.ui.preferences;x-internal:=true, > org.eclipse.debug.internal.ui.sourcelookup;x-internal:=true, > org.eclipse.debug.internal.ui.sourcelookup.browsers;x-internal:=true, >Index: ui/org/eclipse/debug/internal/ui/model/elements/ExpressionLabelProvider.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/model/elements/ExpressionLabelProvider.java,v >retrieving revision 1.4 >diff -u -r1.4 ExpressionLabelProvider.java >--- ui/org/eclipse/debug/internal/ui/model/elements/ExpressionLabelProvider.java 21 Jan 2010 05:04:35 -0000 1.4 >+++ ui/org/eclipse/debug/internal/ui/model/elements/ExpressionLabelProvider.java 22 Jan 2010 19:37:21 -0000 >@@ -18,6 +18,9 @@ > import org.eclipse.debug.core.model.IWatchExpression; > import org.eclipse.debug.internal.ui.DebugUIMessages; > import org.eclipse.debug.internal.ui.elements.adapters.VariableColumnPresentation; >+import org.eclipse.debug.internal.ui.model.expressions.provisional.IExpressionsAdapterDelegate; >+import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider; >+import org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate; > import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext; > import org.eclipse.jface.viewers.TreePath; > import org.eclipse.swt.graphics.RGB; >@@ -27,6 +30,36 @@ > */ > public class ExpressionLabelProvider extends VariableLabelProvider { > >+ /** >+ * Overrides the standard update implementation to optionally delegate the >+ * update handling to a model-specific adapter. >+ * >+ * @since 3.6 >+ */ >+ public void update(ILabelUpdate[] updates) { >+ Object viewerInput = updates[0].getViewerInput(); >+ if (viewerInput instanceof IExpressionsAdapterDelegate) { >+ IExpressionsAdapterDelegate adapterDelegate = (IExpressionsAdapterDelegate)viewerInput; >+ IElementLabelProvider delegateProvider = >+ (IElementLabelProvider)adapterDelegate.getExpressionAdapter(IElementLabelProvider.class); >+ if (delegateProvider != null) { >+ delegateProvider.update(updates); >+ return; >+ } >+ } >+ >+ doUpdate(updates); >+ } >+ >+ /** >+ * Performs the updates using the default implementation of the label provider. >+ * >+ * @since 3.6 >+ */ >+ protected void doUpdate(ILabelUpdate[] updates) { >+ super.update(updates); >+ } >+ > /* (non-Javadoc) > * @see org.eclipse.debug.internal.ui.model.elements.VariableLabelProvider#getForeground(org.eclipse.jface.viewers.TreePath, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, java.lang.String) > */ >@@ -65,7 +98,7 @@ > * > * @since 3.6 > */ >- private String getColumnText(IExpression expression, IValue value, IPresentationContext context, String columnId) throws CoreException { >+ protected String getColumnText(IExpression expression, IValue value, IPresentationContext context, String columnId) throws CoreException { > if (VariableColumnPresentation.COLUMN_VARIABLE_NAME.equals(columnId)) { > return getExpressionName(expression, context); > } else if (VariableColumnPresentation.COLUMN_VARIABLE_VALUE.equals(columnId)) { >Index: ui/org/eclipse/debug/internal/ui/model/elements/ExpressionManagerContentProvider.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/model/elements/ExpressionManagerContentProvider.java,v >retrieving revision 1.7 >diff -u -r1.7 ExpressionManagerContentProvider.java >--- ui/org/eclipse/debug/internal/ui/model/elements/ExpressionManagerContentProvider.java 21 Jan 2010 05:04:34 -0000 1.7 >+++ ui/org/eclipse/debug/internal/ui/model/elements/ExpressionManagerContentProvider.java 22 Jan 2010 19:37:21 -0000 >@@ -14,7 +14,6 @@ > import org.eclipse.core.runtime.CoreException; > import org.eclipse.core.runtime.IAdaptable; > import org.eclipse.debug.core.DebugPlugin; >-import org.eclipse.debug.core.IExpressionManager; > import org.eclipse.debug.core.ILaunch; > import org.eclipse.debug.core.model.IDebugElement; > import org.eclipse.debug.core.model.IWatchExpression; >@@ -38,7 +37,14 @@ > import org.eclipse.swt.widgets.Composite; > > /** >- * Default content provider for the expression manager. >+ * Default content provider for the expression manager. >+ * <p> >+ * Note: the implementation of this content provider does not require that the >+ * viewer input actually implement IExpressionManager, it will always use the >+ * global expression manager to supply the elements in the view. In this way >+ * a given debugger can override the view input and provide custom adapters >+ * for the view as needed. >+ * </p> > */ > public class ExpressionManagerContentProvider extends ElementContentProvider { > >@@ -129,7 +135,7 @@ > */ > protected int getChildCount(Object element, IPresentationContext context, IViewerUpdate monitor) throws CoreException { > // Add the "Add new expression" element only if columns are displayed. >- return ((IExpressionManager) element).getExpressions().length + >+ return DebugPlugin.getDefault().getExpressionManager().getExpressions().length + > (context.getColumns() != null ? 1 : 0); > } > >@@ -138,9 +144,9 @@ > */ > protected Object[] getChildren(Object parent, int index, int length, IPresentationContext context, IViewerUpdate monitor) throws CoreException { > if (context.getColumns() != null) { >- return getElements(((IExpressionManager) parent).getExpressions(), ADD_NEW_EXPRESSION_ELEMENT, index, length); >+ return getElements(DebugPlugin.getDefault().getExpressionManager().getExpressions(), ADD_NEW_EXPRESSION_ELEMENT, index, length); > } else { >- return getElements(((IExpressionManager) parent).getExpressions(), index, length); >+ return getElements(DebugPlugin.getDefault().getExpressionManager().getExpressions(), index, length); > } > } > >Index: ui/org/eclipse/debug/internal/ui/model/expressions/provisional/IExpressionsAdapterDelegate.java >=================================================================== >RCS file: ui/org/eclipse/debug/internal/ui/model/expressions/provisional/IExpressionsAdapterDelegate.java >diff -N ui/org/eclipse/debug/internal/ui/model/expressions/provisional/IExpressionsAdapterDelegate.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/debug/internal/ui/model/expressions/provisional/IExpressionsAdapterDelegate.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,37 @@ >+/******************************************************************************* >+ * Copyright (c) 2010 Wind River Systems 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: >+ * Wind River Systems - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.debug.internal.ui.model.expressions.provisional; >+ >+ >+/** >+ * Debug models can implement this interface to provide their own viewer adapters >+ * for expressions in Expressions view. Standard adapters for the IExpression >+ * object will delegate to these adapters if they are available. >+ * <p> >+ * This interface can be implemented by the input element to the expressions >+ * view. >+ * </p> >+ * @since 3.6 >+ */ >+public interface IExpressionsAdapterDelegate { >+ >+ /** >+ * Returns the adapter to delegate to. >+ * >+ * @param adapterClass The adapter to return. Currently supported adapters are: >+ * <ul> >+ * <li><code>IElementLabelProvider</code></li> >+ * <li><code>IElementMementoProvider</code></li> >+ * <li><code>IElementEditor</code></li> >+ * </ul> >+ */ >+ public Object getExpressionAdapter(Class adapterClass); >+} >#P org.eclipse.jdt.debug.ui >Index: META-INF/MANIFEST.MF >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.debug.ui/META-INF/MANIFEST.MF,v >retrieving revision 1.32 >diff -u -r1.32 MANIFEST.MF >--- META-INF/MANIFEST.MF 21 Dec 2009 19:09:19 -0000 1.32 >+++ META-INF/MANIFEST.MF 22 Jan 2010 19:37:26 -0000 >@@ -18,6 +18,7 @@ > org.eclipse.jdt.internal.debug.ui.console;x-internal:=true, > org.eclipse.jdt.internal.debug.ui.contentassist;x-internal:=true, > org.eclipse.jdt.internal.debug.ui.display;x-internal:=true, >+ org.eclipse.jdt.internal.debug.ui.expressions;x-internal:=true, > org.eclipse.jdt.internal.debug.ui.heapwalking;x-internal:=true, > org.eclipse.jdt.internal.debug.ui.jres;x-internal:=true, > org.eclipse.jdt.internal.debug.ui.launcher;x-internal:=true, >Index: plugin.xml >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.debug.ui/plugin.xml,v >retrieving revision 1.481 >diff -u -r1.481 plugin.xml >--- plugin.xml 6 Jan 2010 18:03:12 -0000 1.481 >+++ plugin.xml 22 Jan 2010 19:37:26 -0000 >@@ -3230,6 +3230,30 @@ > <adapter > type="org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider"> > </adapter> >+ <adapter >+ type="org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputProvider"> >+ </adapter> >+ </factory> >+ <factory >+ adaptableType="org.eclipse.jdt.debug.core.IJavaThread" >+ class="org.eclipse.jdt.internal.debug.ui.variables.JavaDebugElementAdapterFactory"> >+ <adapter >+ type="org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputProvider"> >+ </adapter> >+ </factory> >+ <factory >+ adaptableType="org.eclipse.jdt.debug.core.IJavaThreadGroup" >+ class="org.eclipse.jdt.internal.debug.ui.variables.JavaDebugElementAdapterFactory"> >+ <adapter >+ type="org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputProvider"> >+ </adapter> >+ </factory> >+ <factory >+ adaptableType="org.eclipse.jdt.debug.core.IJavaDebugTarget" >+ class="org.eclipse.jdt.internal.debug.ui.variables.JavaDebugElementAdapterFactory"> >+ <adapter >+ type="org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputProvider"> >+ </adapter> > </factory> > </extension> > >Index: ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaDefaultViewerInputProvider.java >=================================================================== >RCS file: ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaDefaultViewerInputProvider.java >diff -N ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaDefaultViewerInputProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaDefaultViewerInputProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,36 @@ >+/******************************************************************************* >+ * Copyright (c) 2010 Wind River Systems 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: >+ * Wind River Systems - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.jdt.internal.debug.ui.expressions; >+ >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.debug.core.DebugPlugin; >+import org.eclipse.debug.internal.ui.elements.adapters.DefaultViewerInputProvider; >+import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext; >+import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate; >+import org.eclipse.debug.ui.IDebugUIConstants; >+ >+/** >+ * @since 3.6 >+ */ >+public class JavaDefaultViewerInputProvider extends DefaultViewerInputProvider { >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.debug.internal.ui.model.elements.ViewerInputProvider#getViewerInput(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate) >+ */ >+ protected Object getViewerInput(Object source, IPresentationContext context, IViewerUpdate update) throws CoreException { >+ if ( IDebugUIConstants.ID_EXPRESSION_VIEW.equals(context.getId()) ) { >+ return new JavaExpressionViewInput( DebugPlugin.getDefault().getExpressionManager() ); >+ } else { >+ return super.getViewerInput(source, context, update); >+ } >+ } >+ >+} >Index: ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaExpressionLabelProvider.java >=================================================================== >RCS file: ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaExpressionLabelProvider.java >diff -N ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaExpressionLabelProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaExpressionLabelProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,75 @@ >+/******************************************************************************* >+ * Copyright (c) 2010 Wind River Systems 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: >+ * Wind River Systems - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.jdt.internal.debug.ui.expressions; >+ >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.debug.core.model.IExpression; >+import org.eclipse.debug.core.model.IValue; >+import org.eclipse.debug.internal.ui.model.elements.ExpressionLabelProvider; >+import org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate; >+import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext; >+import org.eclipse.jdt.debug.core.IJavaInterfaceType; >+import org.eclipse.jdt.debug.core.IJavaObject; >+import org.eclipse.jdt.debug.core.IJavaReferenceType; >+import org.eclipse.jdt.debug.core.IJavaType; >+import org.eclipse.jdt.internal.debug.core.model.JDIObjectValue; >+import org.eclipse.jdt.internal.debug.ui.DebugUIMessages; >+import org.eclipse.jdt.internal.debug.ui.variables.JavaVariableColumnPresentation; >+ >+/** >+ * >+ * @since 3.6 >+ */ >+public class JavaExpressionLabelProvider extends ExpressionLabelProvider { >+ >+ /** >+ * Override <code>ExpressionLabelProvider</code> implementation to avoid >+ * a loop of trying to continually delegate the label provider implementation. >+ */ >+ public void update(ILabelUpdate[] updates) { >+ doUpdate(updates); >+ } >+ >+ protected String getColumnText(IExpression expression, IValue value, IPresentationContext context, String columnId) >+ throws CoreException >+ { >+ if (JavaVariableColumnPresentation.COLUMN_INSTANCE_ID.equals(columnId)) { >+ if (value instanceof JDIObjectValue) { >+ long uniqueId = ((JDIObjectValue)value).getUniqueId(); >+ if (uniqueId >= 0) { >+ StringBuffer buffer = new StringBuffer(); >+ buffer.append(uniqueId); >+ return buffer.toString(); >+ } >+ } >+ return ""; //$NON-NLS-1$ >+ } >+ if (JavaVariableColumnPresentation.COLUMN_INSTANCE_COUNT.equals(columnId)) { >+ if (value instanceof IJavaObject) { >+ IJavaType jType = ((IJavaObject)value).getJavaType(); >+ if (jType instanceof IJavaReferenceType) { >+ if (!(jType instanceof IJavaInterfaceType)) { >+ long count = ((IJavaReferenceType)jType).getInstanceCount(); >+ if (count == -1) { >+ return DebugUIMessages.JavaVariableLabelProvider_0; >+ } >+ StringBuffer buffer = new StringBuffer(); >+ buffer.append(count); >+ return buffer.toString(); >+ } >+ } >+ } >+ return ""; //$NON-NLS-1$ >+ } >+ return super.getColumnText(expression, value, context, columnId); >+ } >+ >+} >Index: ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaExpressionViewInput.java >=================================================================== >RCS file: ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaExpressionViewInput.java >diff -N ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaExpressionViewInput.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaExpressionViewInput.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,71 @@ >+/******************************************************************************* >+ * Copyright (c) 2010 Wind River Systems 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: >+ * Wind River Systems - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.jdt.internal.debug.ui.expressions; >+ >+import org.eclipse.core.runtime.PlatformObject; >+import org.eclipse.debug.core.DebugPlugin; >+import org.eclipse.debug.core.IExpressionManager; >+import org.eclipse.debug.internal.ui.model.expressions.provisional.IExpressionsAdapterDelegate; >+import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory; >+import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider; >+import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxy; >+import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxyFactory; >+import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext; >+import org.eclipse.debug.internal.ui.viewers.update.ExpressionManagerModelProxy; >+import org.eclipse.jdt.internal.debug.ui.variables.JavaVariableColumnPresentationFactory; >+ >+/** >+ * @since 3.6 >+ */ >+public class JavaExpressionViewInput extends PlatformObject implements IExpressionsAdapterDelegate, IModelProxyFactory { >+ >+ private static final IColumnPresentationFactory fgColumnPresentation = new JavaVariableColumnPresentationFactory(); >+ private static final IElementLabelProvider fgJavaExpressionLabelProvider = new JavaExpressionLabelProvider(); >+ >+ private final IExpressionManager fManager; >+ >+ JavaExpressionViewInput(IExpressionManager manager) { >+ fManager = manager; >+ } >+ >+ public Object getAdapter(Class adapterType) { >+ if (IColumnPresentationFactory.class.equals(adapterType)) { >+ return fgColumnPresentation; >+ } else { >+ Object expressionManagerAdapter = >+ DebugPlugin.getAdapter(DebugPlugin.getDefault().getExpressionManager(), adapterType); >+ if (expressionManagerAdapter != null) { >+ return expressionManagerAdapter; >+ } >+ } >+ return super.getAdapter(adapterType); >+ } >+ >+ public boolean equals(Object obj) { >+ return obj instanceof JavaExpressionViewInput && >+ ((JavaExpressionViewInput)obj).fManager.equals(fManager); >+ } >+ >+ public int hashCode() { >+ return getClass().hashCode() + fManager.hashCode(); >+ } >+ >+ public Object getExpressionAdapter(Class adapterClass) { >+ if (IElementLabelProvider.class.equals(adapterClass)) { >+ return fgJavaExpressionLabelProvider; >+ } >+ return null; >+ } >+ >+ public IModelProxy createModelProxy(Object element, IPresentationContext context) { >+ return new ExpressionManagerModelProxy(); >+ } >+} >Index: ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaStackFrameViewerInputProvider.java >=================================================================== >RCS file: ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaStackFrameViewerInputProvider.java >diff -N ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaStackFrameViewerInputProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaStackFrameViewerInputProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,36 @@ >+/******************************************************************************* >+ * Copyright (c) 2010 Wind River Systems 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: >+ * Wind River Systems - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.jdt.internal.debug.ui.expressions; >+ >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.debug.core.DebugPlugin; >+import org.eclipse.debug.internal.ui.elements.adapters.StackFrameViewerInputProvider; >+import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext; >+import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate; >+import org.eclipse.debug.ui.IDebugUIConstants; >+ >+/** >+ * @since 3.6 >+ */ >+public class JavaStackFrameViewerInputProvider extends StackFrameViewerInputProvider { >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.debug.internal.ui.model.elements.ViewerInputProvider#getViewerInput(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate) >+ */ >+ protected Object getViewerInput(Object source, IPresentationContext context, IViewerUpdate update) throws CoreException { >+ if ( IDebugUIConstants.ID_EXPRESSION_VIEW.equals(context.getId()) ) { >+ return new JavaExpressionViewInput( DebugPlugin.getDefault().getExpressionManager() ); >+ } else { >+ return super.getViewerInput(source, context, update); >+ } >+ } >+ >+} >Index: ui/org/eclipse/jdt/internal/debug/ui/variables/JavaDebugElementAdapterFactory.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaDebugElementAdapterFactory.java,v >retrieving revision 1.6 >diff -u -r1.6 JavaDebugElementAdapterFactory.java >--- ui/org/eclipse/jdt/internal/debug/ui/variables/JavaDebugElementAdapterFactory.java 14 Mar 2008 03:01:31 -0000 1.6 >+++ ui/org/eclipse/jdt/internal/debug/ui/variables/JavaDebugElementAdapterFactory.java 22 Jan 2010 19:37:27 -0000 >@@ -15,11 +15,17 @@ > import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider; > import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider; > import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoProvider; >+import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputProvider; > import org.eclipse.debug.ui.actions.IWatchExpressionFactoryAdapter; >+import org.eclipse.jdt.debug.core.IJavaDebugTarget; > import org.eclipse.jdt.debug.core.IJavaStackFrame; >+import org.eclipse.jdt.debug.core.IJavaThread; >+import org.eclipse.jdt.debug.core.IJavaThreadGroup; > import org.eclipse.jdt.debug.core.IJavaValue; > import org.eclipse.jdt.debug.core.IJavaVariable; > import org.eclipse.jdt.internal.debug.ui.display.JavaInspectExpression; >+import org.eclipse.jdt.internal.debug.ui.expressions.JavaDefaultViewerInputProvider; >+import org.eclipse.jdt.internal.debug.ui.expressions.JavaStackFrameViewerInputProvider; > import org.eclipse.jdt.internal.debug.ui.heapwalking.JavaWatchExpressionFilter; > > /** >@@ -43,7 +49,9 @@ > private static final IWatchExpressionFactoryAdapter fgWEVariable = new JavaWatchExpressionFilter(); > private static final IElementMementoProvider fgMPStackFrame = new JavaStackFrameMementoProvider(); > private static final IElementLabelProvider fgLPFrame = new JavaStackFrameLabelProvider(); >- >+ private static final IViewerInputProvider fgIPDefault = new JavaDefaultViewerInputProvider(); >+ private static final IViewerInputProvider fgIPFrame = new JavaStackFrameViewerInputProvider(); >+ > /* (non-Javadoc) > * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class) > */ >@@ -83,6 +91,17 @@ > return fgMPStackFrame; > } > } >+ if (IViewerInputProvider.class.equals(adapterType)) { >+ if (adaptableObject instanceof IJavaStackFrame) { >+ return fgIPFrame; >+ } >+ if (adaptableObject instanceof IJavaThread || >+ adaptableObject instanceof IJavaThreadGroup || >+ adaptableObject instanceof IJavaDebugTarget) >+ { >+ return fgIPDefault; >+ } >+ } > return null; > } > >@@ -90,7 +109,8 @@ > * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList() > */ > public Class[] getAdapterList() { >- return new Class[]{IElementLabelProvider.class,IElementContentProvider.class,IWatchExpressionFactoryAdapter.class}; >+ return new Class[]{IElementLabelProvider.class, >+ IElementContentProvider.class, IWatchExpressionFactoryAdapter.class, IViewerInputProvider.class}; > } > > } >Index: ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableColumnPresentationFactory.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableColumnPresentationFactory.java,v >retrieving revision 1.5 >diff -u -r1.5 JavaVariableColumnPresentationFactory.java >--- ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableColumnPresentationFactory.java 27 Mar 2007 02:36:00 -0000 1.5 >+++ ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableColumnPresentationFactory.java 22 Jan 2010 19:37:27 -0000 >@@ -16,6 +16,7 @@ > import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext; > import org.eclipse.debug.ui.IDebugUIConstants; > import org.eclipse.jdt.debug.core.IJavaStackFrame; >+import org.eclipse.jdt.internal.debug.ui.expressions.JavaExpressionViewInput; > > /** > * @since 3.2 >@@ -49,9 +50,12 @@ > if (element instanceof IAdaptable) { > IAdaptable adaptable = (IAdaptable)element; > frame = (IJavaStackFrame) adaptable.getAdapter(IJavaStackFrame.class); >+ return frame != null; > } >+ } else if (IDebugUIConstants.ID_EXPRESSION_VIEW.equals(context.getId())) { >+ return element instanceof JavaExpressionViewInput; > } >- return frame != null; >+ return false; > } > > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 300300
:
156758
| 156983