diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/ClearAction.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/ClearAction.java index c2eb4fd1585..a6f84aa2da9 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/ClearAction.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/ClearAction.java @@ -13,6 +13,7 @@ * Contributors: * Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core * Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry + * Kevin Doyle (IBM) - [189150] setSelection(null) added to clear() ********************************************************************************/ @@ -54,6 +55,7 @@ public class ClearAction extends BrowseAction { _scratchPad.clearChildren(); RSECorePlugin.getTheSystemRegistry().fireEvent(new SystemResourceChangeEvent(_scratchPad, ISystemResourceChangeEvents.EVENT_REFRESH, _scratchPad)); + _view.setSelection(null); //_view.updateActionStates(); } } \ No newline at end of file diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/ClearSelectedAction.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/ClearSelectedAction.java index d0737708b41..fa3a9820297 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/ClearSelectedAction.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/ClearSelectedAction.java @@ -13,6 +13,7 @@ * Contributors: * Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core * Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry + * Kevin Doyle (IBM) - [189150] setSelection(null) added to clear() ********************************************************************************/ package org.eclipse.rse.internal.ui.view.scratchpad; @@ -78,6 +79,7 @@ public class ClearSelectedAction extends BrowseAction _scratchPad.removeChild(iterator.next()); } RSECorePlugin.getTheSystemRegistry().fireEvent(new SystemResourceChangeEvent(_scratchPad, ISystemResourceChangeEvents.EVENT_REFRESH, _scratchPad)); + _view.setSelection(null); //_view.updateActionStates(); } } diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/SystemScratchpadView.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/SystemScratchpadView.java index 5779ff603b7..95cf0c3c3f5 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/SystemScratchpadView.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/scratchpad/SystemScratchpadView.java @@ -14,6 +14,7 @@ * Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core * Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry * Kevin Doyle (IBM) - [192278] Removed handleKeyPressed + * Kevin Doyle (IBM) - [189150] _selectionFlagsUpdated reset after clear action performed ********************************************************************************/ package org.eclipse.rse.internal.ui.view.scratchpad; @@ -573,12 +574,17 @@ public class SystemScratchpadView public void selectionChanged(SelectionChangedEvent event) { + // Set _selectionFlagsUpdate to false, so the next time the context menu + // is requested we rescan the selections to determine which actions + // to show and enable/disable. + // Setting this to false will force a rescan because in fillContextMenu() + // if this is false it will call scanSelections(); + _selectionFlagsUpdated = false; IStructuredSelection sel = (IStructuredSelection)event.getSelection(); Object firstSelection = sel.getFirstElement(); if (firstSelection == null) return; - _selectionFlagsUpdated = false; ISystemViewElementAdapter adapter = getViewAdapter(firstSelection); if (adapter != null) { @@ -1211,6 +1217,8 @@ public class SystemScratchpadView */ protected boolean showRefresh() { + if (!_selectionFlagsUpdated) + scanSelections(); return _selectionShowRefreshAction; }