/* Copyright (C) 2001, 2007 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. */ package gov.nasa.worldwind.util.wizard; import gov.nasa.worldwind.util.Logging; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; /** * @author dcollins * @version $Id: WizardController.java 4565 2008-02-28 17:53:41Z dcollins $ */ class WizardController implements ActionListener { private Wizard wizard; public WizardController(Wizard wizard) { if (wizard == null) { String message = "Wizard is null"; Logging.logger().severe(message); throw new IllegalArgumentException(message); } this.wizard = wizard; } public void actionPerformed(ActionEvent e) { if (e != null && e.getActionCommand() != null) { String actionCommand = e.getActionCommand(); if (actionCommand.equals(Wizard.CANCEL_BUTTON_ACTION_COMMAND)) cancelButtonPressed(); else if (actionCommand.equals(Wizard.BACK_BUTTON_ACTION_COMMAND)) backButtonPressed(); else if (actionCommand.equals(Wizard.NEXT_BUTTON_ACTION_COMMAND)) nextButtonPressed(); else if (actionCommand.equals(Wizard.DIALOG_CLOSE_ACTION_COMMAND)) dialogClosed(); } } private void backButtonPressed() { WizardModel model = this.wizard.getModel(); if (model != null && model.getCurrentPanel() != null) { WizardPanelDescriptor descriptor = model.getCurrentPanel(); Object backPanelDescriptor = descriptor.getBackPanelDescriptor(); this.wizard.setCurrentPanelDescriptor(backPanelDescriptor); } } private void nextButtonPressed() { WizardModel model = this.wizard.getModel(); if (model != null && model.getCurrentPanel() != null) { WizardPanelDescriptor descriptor = model.getCurrentPanel(); Object nextPanelDescriptor = descriptor.getNextPanelDescriptor(); if (nextPanelDescriptor != null && nextPanelDescriptor instanceof Wizard.FinishIdentifier) { this.wizard.close(Wizard.FINISH_RETURN_CODE); } else { this.wizard.setCurrentPanelDescriptor(nextPanelDescriptor); } } } private void cancelButtonPressed() { this.wizard.close(Wizard.CANCEL_RETURN_CODE); } private void dialogClosed() { this.wizard.close(Wizard.CLOSED_RETURN_CODE); } void resetButtonsToPanelRules() { WizardModel model = this.wizard.getModel(); if (model != null) { model.setCancelButtonText("Cancel"); model.setCancelButtonIcon(null); model.setBackButtonText("<Back"); model.setBackButtonIcon(null); WizardPanelDescriptor descriptor = model.getCurrentPanel(); if (descriptor != null && descriptor.getBackPanelDescriptor() != null) model.setBackButtonEnabled(Boolean.TRUE); else model.setBackButtonEnabled(Boolean.FALSE); if (descriptor != null && descriptor.getNextPanelDescriptor() != null) model.setNextButtonEnabled(Boolean.TRUE); else model.setNextButtonEnabled(Boolean.FALSE); if (descriptor != null && descriptor.getNextPanelDescriptor() != null && descriptor.getNextPanelDescriptor() instanceof Wizard.FinishIdentifier) { model.setNextButtonText("Finish"); model.setNextButtonIcon(null); } else { model.setNextButtonText("Next>"); model.setNextButtonIcon(null); } } } }