diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java index baab810a4b7..e092a13fdee 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java @@ -66,6 +66,7 @@ * David McKnight (IBM) - [241744] Refresh collapse low level nodes which is expended before. * David McKnight (IBM) - [249245] not showing inappropriate popup actions for: Refresh, Show In Table, Go Into, etc. * David McKnight (IBM) - [251625] Widget disposed exception when renaming/pasting a folder + * David McKnight (IBM) - [257721] Doubleclick doing special handling and expanding ********************************************************************************/ package org.eclipse.rse.internal.ui.view; @@ -391,6 +392,8 @@ public class SystemView extends SafeTreeViewer protected ViewerFilter[] initViewerFilters = null; protected List _setList; + + protected boolean _allowAdapterToHandleDoubleClick = true; /** * Constructor @@ -643,7 +646,14 @@ public class SystemView extends SafeTreeViewer TreePath[] paths = s.getPathsFor(element); if (paths == null || paths.length == 0 || paths[0] == null) return; TreePath elementPath = paths[0]; - if (isExpandable(elementPath)) { + + // bringing back handling at the adapter level here due to bug 257721 + ISystemViewElementAdapter adapter = getViewAdapter(element); + boolean alreadyHandled = false; + if (adapter != null && _allowAdapterToHandleDoubleClick) + alreadyHandled = adapter.handleDoubleClick(element); + + if (!alreadyHandled && isExpandable(element)) { boolean expandedState = getExpandedState(elementPath); setExpandedState(elementPath, !expandedState); // DWD: fire collapse / expand event @@ -6642,5 +6652,8 @@ public class SystemView extends SafeTreeViewer } } - + public void allowAdapterToHandleDoubleClick(boolean flag) + { + _allowAdapterToHandleDoubleClick = flag; + } } diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewForm.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewForm.java index 09d9ab559d7..b2136103924 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewForm.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewForm.java @@ -16,6 +16,7 @@ * Martin Oberhuber (Wind River) - [190271] Move ISystemViewInputProvider to Core * David McKnight (IBM) - [187711] select SystemView APIs exposed by the ISystemTree interface * David McKnight (IBM) - [225506] [api][breaking] RSE UI leaks non-API types + * David McKnight (IBM) - [257721] Doubleclick doing special handling and expanding *******************************************************************************/ package org.eclipse.rse.internal.ui.view; import java.util.List; @@ -437,6 +438,9 @@ public class SystemViewForm extends Composite implements ISystemTree treeData.heightHint= 200; tree.getTree().setLayoutData(treeData); tree.setShowActions(showActions); + + // for bug 257721, when using system view from a dialog, by default, we don't let adapter handle double-click + tree.allowAdapterToHandleDoubleClick(false); } protected void addOurMouseListener() diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewPart.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewPart.java index 79a3f390b64..ac5b17bd539 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewPart.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewPart.java @@ -36,6 +36,7 @@ * David McKnight (IBM) - [247544] [performance] Restoring Selection on Restart can cause the UI to freeze * Kevin Doyle (IBM) - [242431] Register a new unique context menu id, so contributions can be made to all our views * Li Ding (IBM) - [256135] Subsystem not restored in system view tree if subsystem configuration does not support filter + * David McKnight (IBM) - [257721] Doubleclick doing special handling and expanding *******************************************************************************/ package org.eclipse.rse.internal.ui.view; @@ -61,8 +62,6 @@ import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.viewers.DoubleClickEvent; -import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; @@ -383,11 +382,6 @@ public class SystemViewPart //hook the part focus to the viewer's control focus. //hookFocus(systemView.getControl()); - systemView.addDoubleClickListener(new IDoubleClickListener() { - public void doubleClick(DoubleClickEvent event) { - handleDoubleClick(event); - } - }); //prime the selection //selectionChanged(null, getSite().getDesktopWindow().getSelectionService().getSelection()); @@ -476,23 +470,6 @@ public class SystemViewPart } } - /** - * Handles double clicks in viewer. - * Opens editor if file double-clicked. - */ - protected void handleDoubleClick(DoubleClickEvent event) { - if (!systemView.enabledMode) { - //event.doit = false; - return; - } - IStructuredSelection s = (IStructuredSelection) event.getSelection(); - Object element = s.getFirstElement(); - if (element == null) return; - ISystemViewElementAdapter adapter = systemView.getViewAdapter(element); - if (adapter != null) - adapter.handleDoubleClick(element); - - } /** * Creates the frame source and frame list, and connects them.