

//import the packages for using the classes in them into the program
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.undo.*;

class RedoAction extends AbstractAction{
    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.undo.redo();
        }
        catch (CannotRedoException ex){
            System.out.println("Unable to redo: " + ex);
            ex.printStackTrace();
        }
        update();
        notepad.undoAction.update();
    }
    protected void update(){

        if(notepad.undo.canRedo()){
            setEnabled(true);
            putValue("Redo", notepad.undo.getRedoPresentationName());
        }
        else{
            setEnabled(false);
            putValue(Action.NAME, "Redo");
        }
    }
}
