1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-15 13:05:22 +02:00

[195543] Kevin's fix for Double Clicking on a folder expands wrong folder if shown twice in view

This commit is contained in:
David McKnight 2007-07-09 18:20:24 +00:00
parent ad2e9287a6
commit 5161387b9f

View file

@ -14,6 +14,7 @@
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core * Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry * Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
* Kevin Doyle (IBM) - [182403] Double Click on an object that can be expanded * Kevin Doyle (IBM) - [182403] Double Click on an object that can be expanded
* Kevin Doyle (IBM) - [195543] Double Clicking expands wrong folder when duplicate elements shown
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.internal.ui.view.scratchpad; package org.eclipse.rse.internal.ui.view.scratchpad;
@ -28,7 +29,9 @@ import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITreeSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TreePath;
import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.Viewer;
import org.eclipse.rse.core.RSECorePlugin; import org.eclipse.rse.core.RSECorePlugin;
import org.eclipse.rse.core.events.ISystemResourceChangeEvent; import org.eclipse.rse.core.events.ISystemResourceChangeEvent;
@ -176,7 +179,7 @@ public class SystemScratchpadViewPart extends ViewPart
private void handleDoubleClick(DoubleClickEvent event) private void handleDoubleClick(DoubleClickEvent event)
{ {
IStructuredSelection s = (IStructuredSelection) event.getSelection(); ITreeSelection s = (ITreeSelection) event.getSelection();
Object element = s.getFirstElement(); Object element = s.getFirstElement();
if (element == null) if (element == null)
@ -188,13 +191,18 @@ public class SystemScratchpadViewPart extends ViewPart
{ {
if (adapter.hasChildren((IAdaptable)element)) if (adapter.hasChildren((IAdaptable)element))
{ {
if (_viewer.getExpandedState(element)) // Get the path for the element and use it for setting expanded state,
// so the proper TreeItem is expanded/collapsed
TreePath[] paths = s.getPathsFor(element);
if (paths == null || paths.length == 0 || paths[0] == null) return;
TreePath elementPath = paths[0];
if (_viewer.getExpandedState(elementPath))
{ {
_viewer.collapseToLevel(element, 1); _viewer.collapseToLevel(elementPath, 1);
} }
else else
{ {
_viewer.expandToLevel(element, 1); _viewer.expandToLevel(elementPath, 1);
} }
} }
else else