001 package org.springframework.richclient.application.setup;
002
003 import java.awt.Dimension;
004
005 import javax.swing.JOptionPane;
006
007 import org.springframework.core.io.Resource;
008 import org.springframework.richclient.command.ActionCommandExecutor;
009 import org.springframework.richclient.wizard.AbstractWizard;
010 import org.springframework.richclient.wizard.WizardDialog;
011
012 /**
013 * @author Claudio Romano
014 * @author Keith Donald
015 */
016 public class SetupWizard extends AbstractWizard implements ActionCommandExecutor {
017 private WizardDialog wizardDialog;
018
019 private SetupLicenseWizardPage licensePage = new SetupLicenseWizardPage();
020
021 public SetupWizard() {
022 super("setup");
023 }
024
025 public void setLicenseTextLocation(Resource location) {
026 licensePage.setLicenseTextLocation(location);
027 }
028
029 public void execute() {
030 if (wizardDialog == null) {
031 wizardDialog = new SetupWizardDialog(this);
032 wizardDialog.setPreferredSize(new Dimension(500, 300));
033 }
034 wizardDialog.showDialog();
035 }
036
037 public void addPages() {
038 addPage(new SetupIntroWizardPage());
039 addPage(licensePage);
040 }
041
042 public boolean onFinish() {
043 return true;
044 }
045
046 public boolean onCancel() {
047 if (cancelConfirmed()) {
048 // TODO use org.springframework.richclient.application.Application.close(b, i) instead (if initialized?)
049 System.exit(1);
050 }
051 return false;
052 }
053
054 protected boolean cancelConfirmed() {
055 return JOptionPane.showConfirmDialog(wizardDialog.getDialog(), getCancelMessage(), getCancelTitle(),
056 JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) != JOptionPane.NO_OPTION;
057 }
058
059 protected String getCancelTitle() {
060 return getMessage("setup.cancel.title");
061 }
062
063 protected String getCancelMessage() {
064 return getMessage("setup.cancel.message");
065 }
066
067 }