01: /*******************************************************************************
02: * Copyright (c) 2005, 2006 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.ui.operations;
11:
12: import org.eclipse.core.commands.ExecutionException;
13: import org.eclipse.core.commands.operations.IUndoContext;
14: import org.eclipse.core.commands.operations.IUndoableOperation;
15: import org.eclipse.core.runtime.IProgressMonitor;
16: import org.eclipse.core.runtime.IStatus;
17: import org.eclipse.ui.ISharedImages;
18: import org.eclipse.ui.IWorkbenchPartSite;
19: import org.eclipse.ui.PlatformUI;
20: import org.eclipse.ui.internal.WorkbenchMessages;
21:
22: /**
23: * <p>
24: * RedoActionHandler provides common behavior for redoing an operation, as well
25: * as labelling and enabling the menu item. This class may be instantiated by
26: * clients.
27: * </p>
28: *
29: * @since 3.1
30: */
31: public final class RedoActionHandler extends
32: OperationHistoryActionHandler {
33:
34: /**
35: * Construct an action handler that handles the labelling and enabling of
36: * the redo action for the specified undo context.
37: *
38: * @param site
39: * the workbench part site that created the action.
40: * @param context
41: * the undo context to be used for redoing.
42: */
43: public RedoActionHandler(IWorkbenchPartSite site,
44: IUndoContext context) {
45: super (site, context);
46: setImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
47: .getImageDescriptor(ISharedImages.IMG_TOOL_REDO));
48: setDisabledImageDescriptor(PlatformUI.getWorkbench()
49: .getSharedImages().getImageDescriptor(
50: ISharedImages.IMG_TOOL_REDO_DISABLED));
51: }
52:
53: void flush() {
54: getHistory().dispose(getUndoContext(), false, true, false);
55: }
56:
57: String getCommandString() {
58: return WorkbenchMessages.Operations_redoCommand;
59: }
60:
61: String getTooltipString() {
62: return WorkbenchMessages.Operations_redoTooltipCommand;
63: }
64:
65: String getSimpleCommandString() {
66: return WorkbenchMessages.Workbench_redo;
67: }
68:
69: String getSimpleTooltipString() {
70: return WorkbenchMessages.Workbench_redoToolTip;
71: }
72:
73: IUndoableOperation getOperation() {
74: return getHistory().getRedoOperation(getUndoContext());
75: }
76:
77: IStatus runCommand(IProgressMonitor pm) throws ExecutionException {
78: return getHistory().redo(getUndoContext(), pm, this );
79: }
80:
81: boolean shouldBeEnabled() {
82: return getHistory().canRedo(getUndoContext());
83: }
84: }
|