1 31 32 package org.antlr.xjlib.appkit.undo; 33 34 import javax.swing.*; 35 import javax.swing.undo.CannotRedoException ; 36 import javax.swing.undo.UndoManager ; 37 import java.awt.event.ActionEvent ; 38 39 public class XJRedoAction extends AbstractAction { 40 41 protected UndoManager undoManager; 42 protected XJUndoAction undoAction; 43 44 public XJRedoAction(UndoManager manager) { 45 super("Redo"); 46 setEnabled(false); 47 this.undoManager = manager; 48 } 49 50 public void setUndoAction(XJUndoAction action) { 51 this.undoAction = action; 52 } 53 54 public void actionPerformed(ActionEvent e) { 55 if(!undoManager.canRedo()) 56 return; 57 58 try { 59 undoManager.redo(); 60 } catch (CannotRedoException ex) { 61 ex.printStackTrace(); 62 } 63 updateRedoState(); 64 undoAction.updateUndoState(); 65 } 66 67 protected void updateRedoState() { 68 if (undoManager.canRedo()) { 69 setEnabled(true); 70 putValue(Action.NAME, undoManager.getRedoPresentationName()); 71 } else { 72 setEnabled(false); 73 putValue(Action.NAME, "Redo"); 74 } 75 } 76 } 77 | Popular Tags |