From 7aad9b4ec305bd03a0a2e52e2aa01b632cf3d7c4 Mon Sep 17 00:00:00 2001 From: Xuan Chen Date: Thu, 13 May 2010 18:21:59 +0000 Subject: [PATCH] Fix for bug 312265. --- .../shells/ui/view/SystemCommandEditor.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemCommandEditor.java b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemCommandEditor.java index a93a8698dcc..ed6635f1391 100644 --- a/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemCommandEditor.java +++ b/rse/plugins/org.eclipse.rse.shells.ui/src/org/eclipse/rse/shells/ui/view/SystemCommandEditor.java @@ -18,6 +18,7 @@ * David McKnight (IBM) - [223103] [cleanup] fix broken externalized strings * Radoslav Gerganov (ProSyst) - [221392] [shells] Undo command doesn't work with Eclipse 3.4M5 * Radoslav Gerganov (ProSyst) - [231835] TVT34:TCT189: "work with compile commands" does not display + * Xuan Chen (IBM) - [312265] TVT36:TCT197: "Undo" option missing from context "Edit command" context menu ********************************************************************************/ package org.eclipse.rse.shells.ui.view; @@ -50,6 +51,7 @@ import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.rse.internal.ui.SystemResources; import org.eclipse.rse.internal.ui.view.SystemViewMenuListener; import org.eclipse.rse.services.clientserver.messages.SystemMessage; +import org.eclipse.rse.ui.SystemBasePlugin; import org.eclipse.rse.ui.validators.ISystemValidator; import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.layout.GridData; @@ -58,6 +60,7 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Menu; import org.eclipse.ui.IActionBars; import org.eclipse.ui.IViewSite; +import org.eclipse.ui.IWorkbenchPartSite; import org.eclipse.ui.operations.UndoActionHandler; import org.eclipse.ui.texteditor.ITextEditorActionConstants; import org.eclipse.ui.texteditor.IUpdate; @@ -240,10 +243,22 @@ public class SystemCommandEditor extends SourceViewer private void initializeActions() { IUndoManager undoManager = getUndoManager(); - if (undoManager instanceof IUndoManagerExtension && _site != null) { - IUndoManagerExtension undoManagerExt = (IUndoManagerExtension) undoManager; - _undoAction = new UndoActionHandler(_site, undoManagerExt.getUndoContext()); - fGlobalActions.put(ITextEditorActionConstants.UNDO, _undoAction); + if (undoManager instanceof IUndoManagerExtension) { + if (_site == null) + { + //No _site provided, try to use the site from active workbench part. + IWorkbenchPartSite activeWorkbenchPartSite = SystemBasePlugin.getActiveWorkbenchWindow().getActivePage().getActivePart().getSite(); + if (activeWorkbenchPartSite instanceof IViewSite) + { + _site = (IViewSite) activeWorkbenchPartSite; + } + } + if (_site != null) + { + IUndoManagerExtension undoManagerExt = (IUndoManagerExtension) undoManager; + _undoAction = new UndoActionHandler(_site, undoManagerExt.getUndoContext()); + fGlobalActions.put(ITextEditorActionConstants.UNDO, _undoAction); + } } _cutAction = new TextViewerAction(this, CUT);