package notepad;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ImageIcon;
import javax.swing.undo.CannotRedoException;
class RedoAction extends AbstractAction{
public static final long serialVersionUID = 1L;
Notepad notepad;
public RedoAction(Notepad notepad){
super("Redo");
putValue( Action.SMALL_ICON,
new ImageIcon(this.getClass().getResource("images/redo.gif")));
setEnabled(false);
this.notepad = notepad;
}
public void actionPerformed(ActionEvent e){
try{
notepad.getUndo().redo();
}
catch (CannotRedoException ex){
System.out.println("Unable to redo: " + ex);
ex.printStackTrace();
}
update();
notepad.getUndoAction().update();
}
protected void update(){
if(notepad.getUndo().canRedo()){
setEnabled(true);
putValue("Redo", notepad.getUndo().getRedoPresentationName());
}
else{
setEnabled(false);
putValue(Action.NAME, "Redo");
}
}
}