01: /**
02: * Wizard Framework
03: * Copyright 2004 - 2005 Andrew Pietsch
04: *
05: * This library is free software; you can redistribute it and/or
06: * modify it under the terms of the GNU Lesser General Public
07: * License as published by the Free Software Foundation; either
08: * version 2.1 of the License, or (at your option) any later version.
09: *
10: * This library is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public
16: * License along with this library; if not, write to the Free Software
17: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18: *
19: * $Id: FinishAction.java,v 1.10 2005/05/22 07:13:29 pietschy Exp $
20: */package org.pietschy.wizard;
21:
22: import javax.swing.*;
23: import java.awt.event.ActionEvent;
24: import java.awt.event.KeyEvent;
25:
26: /**
27: * Created by IntelliJ IDEA.
28: * User: andrewp
29: * Date: 7/06/2004
30: * Time: 16:06:09
31: * To change this template use Options | File Templates.
32: */
33: class FinishAction extends WizardAction {
34: protected FinishAction(Wizard model) {
35: super ("finish", model);
36: }
37:
38: public void doAction(ActionEvent e) throws InvalidStateException {
39: WizardStep finishStep = getModel().getActiveStep();
40: finishStep.applyState();
41: int defaultCloseOperation = getWizard().getDefaultExitMode();
42:
43: // todo (ap): should really consider making this more OO.
44: if (defaultCloseOperation == Wizard.EXIT_ON_FINISH)
45: getWizard().getCloseAction().actionPerformed(e);
46: else if (defaultCloseOperation == Wizard.EXIT_ON_CLOSE)
47: getWizard().showCloseButton();
48: else
49: throw new InvalidStateException("Invalid finish operaion: "
50: + defaultCloseOperation);
51: }
52:
53: protected void updateState() {
54: WizardStep activeStep = getActiveStep();
55: setEnabled(activeStep != null
56: && getModel().isLastStep(activeStep)
57: && activeStep.isComplete() && !activeStep.isBusy());
58: }
59: }
|