1 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 22 public class StackFrameContentProvider extends ElementContentProvider { 23 24 27 protected int getChildCount(Object element, IPresentationContext context, IViewerUpdate monitor) throws CoreException { 28 return getAllChildren(element, context, monitor).length; 29 } 30 31 34 protected Object [] getChildren(Object parent, int index, int length, IPresentationContext context, IViewerUpdate monitor) throws CoreException { 35 return getElements(getAllChildren(parent, context, monitor), index, length); 36 } 37 38 46 protected Object [] getAllChildren(Object parent, IPresentationContext context, IViewerUpdate monitor) throws CoreException { 47 if (parent instanceof IStackFrame) { 48 String 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 64 protected boolean supportsContextId(String id) { 65 return id.equals(IDebugUIConstants.ID_VARIABLE_VIEW) || id.equals(IDebugUIConstants.ID_REGISTER_VIEW); 66 } 67 68 71 protected boolean hasChildren(Object element, IPresentationContext context, IViewerUpdate monitor) throws CoreException { 72 String 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 |