View | Details | Raw Unified | Return to bug 300300 | Differences between
and this patch

Collapse All | Expand All

(-)META-INF/MANIFEST.MF (+1 lines)
Lines 18-23 Link Here
18
 org.eclipse.jdt.internal.debug.ui.console;x-internal:=true,
18
 org.eclipse.jdt.internal.debug.ui.console;x-internal:=true,
19
 org.eclipse.jdt.internal.debug.ui.contentassist;x-internal:=true,
19
 org.eclipse.jdt.internal.debug.ui.contentassist;x-internal:=true,
20
 org.eclipse.jdt.internal.debug.ui.display;x-internal:=true,
20
 org.eclipse.jdt.internal.debug.ui.display;x-internal:=true,
21
 org.eclipse.jdt.internal.debug.ui.expressions;x-internal:=true,
21
 org.eclipse.jdt.internal.debug.ui.heapwalking;x-internal:=true,
22
 org.eclipse.jdt.internal.debug.ui.heapwalking;x-internal:=true,
22
 org.eclipse.jdt.internal.debug.ui.jres;x-internal:=true,
23
 org.eclipse.jdt.internal.debug.ui.jres;x-internal:=true,
23
 org.eclipse.jdt.internal.debug.ui.launcher;x-internal:=true,
24
 org.eclipse.jdt.internal.debug.ui.launcher;x-internal:=true,
(-)plugin.xml (+24 lines)
Lines 3230-3235 Link Here
3230
            <adapter
3230
            <adapter
3231
                  type="org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider">
3231
                  type="org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider">
3232
            </adapter>
3232
            </adapter>
3233
            <adapter
3234
                  type="org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputProvider">
3235
            </adapter>
3236
         </factory>                            
3237
         <factory
3238
               adaptableType="org.eclipse.jdt.debug.core.IJavaThread"
3239
               class="org.eclipse.jdt.internal.debug.ui.variables.JavaDebugElementAdapterFactory">
3240
            <adapter
3241
                  type="org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputProvider">
3242
            </adapter>
3243
         </factory>                            
3244
         <factory
3245
               adaptableType="org.eclipse.jdt.debug.core.IJavaThreadGroup"
3246
               class="org.eclipse.jdt.internal.debug.ui.variables.JavaDebugElementAdapterFactory">
3247
            <adapter
3248
                  type="org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputProvider">
3249
            </adapter>
3250
         </factory>                            
3251
         <factory
3252
               adaptableType="org.eclipse.jdt.debug.core.IJavaDebugTarget"
3253
               class="org.eclipse.jdt.internal.debug.ui.variables.JavaDebugElementAdapterFactory">
3254
            <adapter
3255
                  type="org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputProvider">
3256
            </adapter>
3233
         </factory>                            
3257
         </factory>                            
3234
      </extension>     	   
3258
      </extension>     	   
3235
   
3259
   
(-)ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaDefaultViewerInputProvider.java (+36 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2010 Wind River Systems and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 * 
8
 * Contributors:
9
 *     Wind River Systems - initial API and implementation
10
 *******************************************************************************/
11
package org.eclipse.jdt.internal.debug.ui.expressions;
12
13
import org.eclipse.core.runtime.CoreException;
14
import org.eclipse.debug.core.DebugPlugin;
15
import org.eclipse.debug.internal.ui.elements.adapters.DefaultViewerInputProvider;
16
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
17
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate;
18
import org.eclipse.debug.ui.IDebugUIConstants;
19
20
/**
21
 * @since 3.6
22
 */
23
public class JavaDefaultViewerInputProvider extends DefaultViewerInputProvider {
24
25
    /* (non-Javadoc)
26
     * @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)
27
     */
28
    protected Object getViewerInput(Object source, IPresentationContext context, IViewerUpdate update) throws CoreException {
29
        if ( IDebugUIConstants.ID_EXPRESSION_VIEW.equals(context.getId()) ) {
30
            return new JavaExpressionManagerProxy( DebugPlugin.getDefault().getExpressionManager() );
31
        } else {
32
            return super.getViewerInput(source, context, update);
33
        }
34
    }
35
36
}
(-)ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaExpressionManagerProxy.java (+66 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2010 Wind River Systems and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 * 
8
 * Contributors:
9
 *     Wind River Systems - initial API and implementation
10
 *******************************************************************************/
11
package org.eclipse.jdt.internal.debug.ui.expressions;
12
13
import org.eclipse.core.runtime.PlatformObject;
14
import org.eclipse.debug.core.IExpressionListener;
15
import org.eclipse.debug.core.IExpressionManager;
16
import org.eclipse.debug.core.IExpressionsListener;
17
import org.eclipse.debug.core.model.IExpression;
18
import org.eclipse.debug.core.model.IWatchExpression;
19
import org.eclipse.debug.core.model.IWatchExpressionDelegate;
20
import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory;
21
import org.eclipse.jdt.internal.debug.ui.variables.JavaVariableColumnPresentationFactory;
22
23
/**
24
 * @since 3.6
25
 */
26
class JavaExpressionManagerProxy extends PlatformObject implements IExpressionManager {
27
    
28
    private static final IColumnPresentationFactory fgColumnPresentation = new JavaVariableColumnPresentationFactory();
29
    
30
    private final IExpressionManager fManager;
31
    
32
    JavaExpressionManagerProxy(IExpressionManager manager) {
33
        fManager = manager;
34
    }
35
36
    public void addExpression(IExpression expression) { fManager.addExpression(expression); }
37
    public void addExpressions(IExpression[] expressions) { fManager.addExpressions(expressions); }
38
    public IWatchExpression newWatchExpression(String expressionText) { return fManager.newWatchExpression(expressionText); }
39
    public IExpression[] getExpressions() { return fManager.getExpressions(); }
40
    public boolean hasExpressions() { return fManager.hasExpressions(); }
41
    public IExpression[] getExpressions(String modelIdentifier) { return fManager.getExpressions(); }
42
    public void removeExpression(IExpression expression) { fManager.removeExpression(expression); }
43
    public void removeExpressions(IExpression[] expressions) { fManager.removeExpressions(expressions); }
44
    public void addExpressionListener(IExpressionListener listener) { fManager.addExpressionListener(listener); }
45
    public void removeExpressionListener(IExpressionListener listener) { fManager.removeExpressionListener(listener); }
46
    public void addExpressionListener(IExpressionsListener listener) { fManager.addExpressionListener(listener); }
47
    public void removeExpressionListener(IExpressionsListener listener) { fManager.removeExpressionListener(listener); }
48
    public IWatchExpressionDelegate newWatchExpressionDelegate(String id) { return fManager.newWatchExpressionDelegate(id); }
49
    public boolean hasWatchExpressionDelegate(String id) { return fManager.hasWatchExpressionDelegate(id); }
50
    
51
    public Object getAdapter(Class adapter) {
52
        if (IColumnPresentationFactory.class.equals(adapter)) {
53
            return fgColumnPresentation;
54
        }
55
        return super.getAdapter(adapter);
56
    }
57
    
58
    public boolean equals(Object obj) {
59
        return obj instanceof JavaExpressionManagerProxy && 
60
            ((JavaExpressionManagerProxy)obj).fManager.equals(fManager);
61
    }
62
    
63
    public int hashCode() {
64
        return getClass().hashCode() + fManager.hashCode();
65
    }
66
}
(-)ui/org/eclipse/jdt/internal/debug/ui/expressions/JavaStackFrameViewerInputProvider.java (+36 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2010 Wind River Systems and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 * 
8
 * Contributors:
9
 *     Wind River Systems - initial API and implementation
10
 *******************************************************************************/
11
package org.eclipse.jdt.internal.debug.ui.expressions;
12
13
import org.eclipse.core.runtime.CoreException;
14
import org.eclipse.debug.core.DebugPlugin;
15
import org.eclipse.debug.internal.ui.elements.adapters.StackFrameViewerInputProvider;
16
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
17
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate;
18
import org.eclipse.debug.ui.IDebugUIConstants;
19
20
/**
21
 * @since 3.6
22
 */
23
public class JavaStackFrameViewerInputProvider extends StackFrameViewerInputProvider {
24
25
    /* (non-Javadoc)
26
     * @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)
27
     */
28
    protected Object getViewerInput(Object source, IPresentationContext context, IViewerUpdate update) throws CoreException {
29
        if ( IDebugUIConstants.ID_EXPRESSION_VIEW.equals(context.getId()) ) {
30
            return new JavaExpressionManagerProxy( DebugPlugin.getDefault().getExpressionManager() );
31
        } else {
32
            return super.getViewerInput(source, context, update);
33
        }
34
    }
35
36
}
(-)ui/org/eclipse/jdt/internal/debug/ui/variables/JavaDebugElementAdapterFactory.java (-2 / +22 lines)
Lines 15-25 Link Here
15
import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider;
15
import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider;
16
import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider;
16
import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider;
17
import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoProvider;
17
import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoProvider;
18
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputProvider;
18
import org.eclipse.debug.ui.actions.IWatchExpressionFactoryAdapter;
19
import org.eclipse.debug.ui.actions.IWatchExpressionFactoryAdapter;
20
import org.eclipse.jdt.debug.core.IJavaDebugTarget;
19
import org.eclipse.jdt.debug.core.IJavaStackFrame;
21
import org.eclipse.jdt.debug.core.IJavaStackFrame;
22
import org.eclipse.jdt.debug.core.IJavaThread;
23
import org.eclipse.jdt.debug.core.IJavaThreadGroup;
20
import org.eclipse.jdt.debug.core.IJavaValue;
24
import org.eclipse.jdt.debug.core.IJavaValue;
21
import org.eclipse.jdt.debug.core.IJavaVariable;
25
import org.eclipse.jdt.debug.core.IJavaVariable;
22
import org.eclipse.jdt.internal.debug.ui.display.JavaInspectExpression;
26
import org.eclipse.jdt.internal.debug.ui.display.JavaInspectExpression;
27
import org.eclipse.jdt.internal.debug.ui.expressions.JavaDefaultViewerInputProvider;
28
import org.eclipse.jdt.internal.debug.ui.expressions.JavaStackFrameViewerInputProvider;
23
import org.eclipse.jdt.internal.debug.ui.heapwalking.JavaWatchExpressionFilter;
29
import org.eclipse.jdt.internal.debug.ui.heapwalking.JavaWatchExpressionFilter;
24
30
25
/**
31
/**
Lines 43-49 Link Here
43
	private static final IWatchExpressionFactoryAdapter fgWEVariable = new JavaWatchExpressionFilter();
49
	private static final IWatchExpressionFactoryAdapter fgWEVariable = new JavaWatchExpressionFilter();
44
	private static final IElementMementoProvider fgMPStackFrame = new JavaStackFrameMementoProvider();
50
	private static final IElementMementoProvider fgMPStackFrame = new JavaStackFrameMementoProvider();
45
	private static final IElementLabelProvider fgLPFrame = new JavaStackFrameLabelProvider();
51
	private static final IElementLabelProvider fgLPFrame = new JavaStackFrameLabelProvider();
46
52
	private static final IViewerInputProvider fgIPDefault = new JavaDefaultViewerInputProvider();
53
    private static final IViewerInputProvider fgIPFrame = new JavaStackFrameViewerInputProvider();
54
	
47
	/* (non-Javadoc)
55
	/* (non-Javadoc)
48
	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
56
	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
49
	 */
57
	 */
Lines 83-88 Link Here
83
				return fgMPStackFrame;
91
				return fgMPStackFrame;
84
			}
92
			}
85
		}
93
		}
94
        if (IViewerInputProvider.class.equals(adapterType)) {
95
            if (adaptableObject instanceof IJavaStackFrame) {
96
                return fgIPFrame;
97
            }
98
            if (adaptableObject instanceof IJavaThread || 
99
                adaptableObject instanceof IJavaThreadGroup ||
100
                adaptableObject instanceof IJavaDebugTarget)
101
            {
102
                return fgIPDefault;
103
            }
104
        }
86
		return null;
105
		return null;
87
	}
106
	}
88
107
Lines 90-96 Link Here
90
	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
109
	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
91
	 */
110
	 */
92
	public Class[] getAdapterList() {
111
	public Class[] getAdapterList() {
93
		return new Class[]{IElementLabelProvider.class,IElementContentProvider.class,IWatchExpressionFactoryAdapter.class};
112
		return new Class[]{IElementLabelProvider.class,
113
		    IElementContentProvider.class, IWatchExpressionFactoryAdapter.class, IViewerInputProvider.class};
94
	}
114
	}
95
115
96
}
116
}
(-)ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableColumnPresentationFactory.java (-1 / +5 lines)
Lines 11-16 Link Here
11
package org.eclipse.jdt.internal.debug.ui.variables;
11
package org.eclipse.jdt.internal.debug.ui.variables;
12
12
13
import org.eclipse.core.runtime.IAdaptable;
13
import org.eclipse.core.runtime.IAdaptable;
14
import org.eclipse.debug.core.IExpressionManager;
14
import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation;
15
import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation;
15
import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory;
16
import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory;
16
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
17
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
Lines 49-57 Link Here
49
			if (element instanceof IAdaptable) {
50
			if (element instanceof IAdaptable) {
50
				IAdaptable adaptable = (IAdaptable)element;
51
				IAdaptable adaptable = (IAdaptable)element;
51
				frame = (IJavaStackFrame) adaptable.getAdapter(IJavaStackFrame.class);
52
				frame = (IJavaStackFrame) adaptable.getAdapter(IJavaStackFrame.class);
53
				return frame != null;
52
			}
54
			}
55
		} else if (IDebugUIConstants.ID_EXPRESSION_VIEW.equals(context.getId())) {
56
		    return element instanceof IExpressionManager;
53
		}
57
		}
54
		return frame != null;		
58
		return false;		
55
	}
59
	}
56
60
57
}
61
}

Return to bug 300300