diff options
author | Pawel Piech | 2009-12-14 18:23:37 +0000 |
---|---|---|
committer | Pawel Piech | 2009-12-14 18:23:37 +0000 |
commit | 062193b9adcd85293dee996d5200a625a060d0fe (patch) | |
tree | 936a2c21235a56d873317c8928c7c4adc995ac84 /org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/importexport | |
parent | 97c9b36b439160e36bd197e4c9ed29134da6c193 (diff) | |
download | eclipse.platform.debug-062193b9adcd85293dee996d5200a625a060d0fe.tar.gz eclipse.platform.debug-062193b9adcd85293dee996d5200a625a060d0fe.tar.xz eclipse.platform.debug-062193b9adcd85293dee996d5200a625a060d0fe.zip |
[Bug 238956] Improve usability of the breakpoints view
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/importexport')
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/importexport/breakpoints/EmbeddedBreakpointsViewer.java | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/importexport/breakpoints/EmbeddedBreakpointsViewer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/importexport/breakpoints/EmbeddedBreakpointsViewer.java index 92e8b3138..f9c7ed5e0 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/importexport/breakpoints/EmbeddedBreakpointsViewer.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/importexport/breakpoints/EmbeddedBreakpointsViewer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2008 IBM Corporation and others. + * Copyright (c) 2005, 2009 IBM Corporation 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 @@ -17,17 +17,19 @@ import java.util.Map; import java.util.Vector; import org.eclipse.core.runtime.Assert; +import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.model.IBreakpoint; import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.internal.ui.DelegatingModelPresentation; import org.eclipse.debug.internal.ui.SWTFactory; +import org.eclipse.debug.internal.ui.breakpoints.provisional.IBreakpointContainer; +import org.eclipse.debug.internal.ui.breakpoints.provisional.IBreakpointOrganizer; import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointContainer; import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsComparator; import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsContentProvider; import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsLabelProvider; import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsView; import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsViewer; -import org.eclipse.debug.internal.ui.views.breakpoints.IBreakpointOrganizer; import org.eclipse.debug.ui.IDebugModelPresentation; import org.eclipse.debug.ui.IDebugUIConstants; import org.eclipse.jface.viewers.CheckStateChangedEvent; @@ -151,11 +153,12 @@ public class EmbeddedBreakpointsViewer { ArrayList list = new ArrayList(); for(int i = 0; i < items.length; i++) { Object item = items[i]; - if(item instanceof IBreakpoint) { - list.add(item); + IBreakpoint breakpoint = (IBreakpoint)DebugPlugin.getAdapter(item, IBreakpoint.class); + if(breakpoint != null) { + list.add(breakpoint); } - else if (item instanceof BreakpointContainer) { - getBreakpointsFromContainers((BreakpointContainer)item, list); + else if (item instanceof IBreakpointContainer) { + getBreakpointsFromContainers((IBreakpointContainer)item, list); } } for(int i = 0; i < list.size(); i++) { @@ -168,16 +171,12 @@ public class EmbeddedBreakpointsViewer { * @param container the container to get breakpoints from * @param list the list of breakpoints to update state for */ - private void getBreakpointsFromContainers(BreakpointContainer container, ArrayList list) { - Object[] elements = container.getChildren(); - for(int i = 0; i < elements.length; i++) { - if(elements[i] instanceof IBreakpoint) { - list.add(elements[i]); - } - else { - getBreakpointsFromContainers((BreakpointContainer)elements[i], list); - } - } + private void getBreakpointsFromContainers(IBreakpointContainer container, ArrayList list) { + IBreakpoint[] bps = container.getBreakpoints(); + list.ensureCapacity(list.size() + bps.length); + for (int j = 0; j < bps.length; j++) { + list.add(bps[j]); + } } /** @@ -240,22 +239,23 @@ public class EmbeddedBreakpointsViewer { * @param enable the checked status of the obj */ private void updateCheckedState(Object obj, boolean enable) { - if (obj instanceof IBreakpoint) { - Widget[] list = searchItems(obj); - TreeItem item = null; - for(int i = 0; i < list.length; i++) { - item = (TreeItem)list[i]; - item.setChecked(enable); - refreshParents(item); - } - } - else if (obj instanceof BreakpointContainer) { - ArrayList bps = new ArrayList(); - getBreakpointsFromContainers((BreakpointContainer)obj, bps); - for(int j = 0; j < bps.size(); j++) { - updateCheckedState(bps.get(j), enable); - } - } + IBreakpoint breakpoint = (IBreakpoint)DebugPlugin.getAdapter(obj, IBreakpoint.class); + if (breakpoint != null) { + Widget[] list = searchItems(obj); + TreeItem item = null; + for(int i = 0; i < list.length; i++) { + item = (TreeItem)list[i]; + item.setChecked(enable); + refreshParents(item); + } + } + else if (obj instanceof BreakpointContainer) { + ArrayList bps = new ArrayList(); + getBreakpointsFromContainers((BreakpointContainer)obj, bps); + for(int j = 0; j < bps.size(); j++) { + updateCheckedState(bps.get(j), enable); + } + } } /** |