KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > debug > internal > ui > model > elements > StackFrameContentProvider


1 /*******************************************************************************
2  * Copyright (c) 2006, 2007 IBM Corporation 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  * IBM Corporation - initial API and implementation
10  *******************************************************************************/

11 package org.eclipse.debug.internal.ui.model.elements;
12
13 import org.eclipse.core.runtime.CoreException;
14 import org.eclipse.debug.core.model.IStackFrame;
15 import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
16 import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate;
17 import org.eclipse.debug.ui.IDebugUIConstants;
18
19 /**
20  * @since 3.3
21  */

22 public class StackFrameContentProvider extends ElementContentProvider {
23
24     /* (non-Javadoc)
25      * @see org.eclipse.debug.internal.ui.viewers.model.provisional.elements.ElementContentProvider#getChildCount(java.lang.Object, org.eclipse.debug.internal.ui.viewers.provisional.IPresentationContext)
26      */

27     protected int getChildCount(Object JavaDoc element, IPresentationContext context, IViewerUpdate monitor) throws CoreException {
28         return getAllChildren(element, context, monitor).length;
29     }
30
31     /* (non-Javadoc)
32      * @see org.eclipse.debug.internal.ui.viewers.model.provisional.elements.ElementContentProvider#getChildren(java.lang.Object, int, int, org.eclipse.debug.internal.ui.viewers.provisional.IPresentationContext)
33      */

34     protected Object JavaDoc[] getChildren(Object JavaDoc parent, int index, int length, IPresentationContext context, IViewerUpdate monitor) throws CoreException {
35         return getElements(getAllChildren(parent, context, monitor), index, length);
36     }
37     
38     /**
39      * This method retrieves all of the children for the specified parent given the current context
40      * @param parent the parent ot get the children for
41      * @param context the context for which to get the children for
42      * @param monitor the monitor for progress
43      * @return the collection of children, or an empty collection, never <code>null</code>
44      * @throws CoreException
45      */

46     protected Object JavaDoc[] getAllChildren(Object JavaDoc parent, IPresentationContext context, IViewerUpdate monitor) throws CoreException {
47         if (parent instanceof IStackFrame) {
48             String JavaDoc id = context.getId();
49             IStackFrame frame = (IStackFrame) parent;
50             if (id.equals(IDebugUIConstants.ID_VARIABLE_VIEW)) {
51                 return frame.getVariables();
52             } else if (id.equals(IDebugUIConstants.ID_REGISTER_VIEW)) {
53                 return frame.getRegisterGroups();
54             }
55         } else {
56             monitor.cancel();
57         }
58         return EMPTY;
59     }
60
61     /* (non-Javadoc)
62      * @see org.eclipse.debug.internal.ui.viewers.model.provisional.elements.ElementContentProvider#supportsContextId(java.lang.String)
63      */

64     protected boolean supportsContextId(String JavaDoc id) {
65         return id.equals(IDebugUIConstants.ID_VARIABLE_VIEW) || id.equals(IDebugUIConstants.ID_REGISTER_VIEW);
66     }
67
68     /* (non-Javadoc)
69      * @see org.eclipse.debug.internal.ui.model.elements.ElementContentProvider#hasChildren(java.lang.Object, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, org.eclipse.core.runtime.IProgressMonitor)
70      */

71     protected boolean hasChildren(Object JavaDoc element, IPresentationContext context, IViewerUpdate monitor) throws CoreException {
72          String JavaDoc id = context.getId();
73         IStackFrame frame = (IStackFrame) element;
74         if (id.equals(IDebugUIConstants.ID_VARIABLE_VIEW)) {
75             return frame.hasVariables();
76         } else if (id.equals(IDebugUIConstants.ID_REGISTER_VIEW)) {
77             return frame.hasRegisterGroups();
78         }
79         return false;
80     }
81     
82 }
83
Popular Tags