1 package sourceforge.org.qmc2.options.editor.ui.actions;
2 
3 import org.eclipse.core.commands.ExecutionException;
4 import org.eclipse.core.commands.operations.IUndoableOperation;
5 import org.eclipse.core.runtime.NullProgressMonitor;
6 import org.eclipse.swt.SWT;
7 
8 import sourceforge.org.qmc2.options.editor.ui.QMC2Editor;
9 
10 public class RedoAction extends BaseAction {
11 
RedoAction(QMC2Editor editor)12 	public RedoAction(QMC2Editor editor) {
13 		super(editor);
14 		setAccelerator(SWT.MOD1 + 'Y');
15 	}
16 
17 	@Override
isEnabled()18 	public boolean isEnabled() {
19 		return editor.getOperationHistory() != null
20 				&& editor.getOperationHistory()
21 						.canRedo(editor.getUndoContext());
22 	}
23 
24 	@Override
run()25 	public void run() {
26 		try {
27 			editor.getOperationHistory().redo(editor.getUndoContext(),
28 					new NullProgressMonitor(), null);
29 		} catch (ExecutionException e) {
30 			// TODO Auto-generated catch block
31 			e.printStackTrace();
32 		}
33 		super.run();
34 	}
35 
36 	@Override
getText()37 	public String getText() {
38 		IUndoableOperation nextRedoOp = editor.getOperationHistory()
39 				.getRedoOperation(editor.getUndoContext());
40 
41 		return "&Redo"
42 				+ (nextRedoOp == null ? "" : (" " + nextRedoOp.getLabel()));
43 	}
44 }
45