git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268476 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -55,6 +55,7 @@ package org.apache.tools.ant.gui; | |||||
| import org.apache.tools.ant.gui.core.*; | import org.apache.tools.ant.gui.core.*; | ||||
| import org.apache.tools.ant.gui.util.XMLHelper; | import org.apache.tools.ant.gui.util.XMLHelper; | ||||
| import org.apache.tools.ant.gui.wizard.Wizard; | import org.apache.tools.ant.gui.wizard.Wizard; | ||||
| import org.apache.tools.ant.gui.wizard.build.BuildData; | |||||
| import org.apache.tools.ant.gui.wizard.WizardListener; | import org.apache.tools.ant.gui.wizard.WizardListener; | ||||
| import org.apache.tools.ant.gui.command.LoadFileCmd; | import org.apache.tools.ant.gui.command.LoadFileCmd; | ||||
| import org.apache.tools.ant.gui.event.EventBus; | import org.apache.tools.ant.gui.event.EventBus; | ||||
| @@ -115,10 +116,7 @@ public class Main { | |||||
| } | } | ||||
| else { | else { | ||||
| // We are in wizard mode. Create it. | // We are in wizard mode. Create it. | ||||
| ResourceManager resources = new ResourceManager( | |||||
| "org.apache.tools.ant.gui.resources.buildFileWizard"); | |||||
| Wizard wiz = new Wizard( | |||||
| resources, ACSFactory.getInstance().createProject()); | |||||
| Wizard wiz = new Wizard(new BuildData()); | |||||
| // XXX this is temporary for testing. Eventually | // XXX this is temporary for testing. Eventually | ||||
| // it will launch the regular antidote screen with the | // it will launch the regular antidote screen with the | ||||
| // results of the wizard. | // results of the wizard. | ||||
| @@ -13,10 +13,10 @@ help=Help | |||||
| ########################################################### | ########################################################### | ||||
| # Define the steps the comprise the wizard. | # Define the steps the comprise the wizard. | ||||
| ########################################################### | ########################################################### | ||||
| steps=start, setup, finish | |||||
| steps=start, type, setup, compile, jar, javadoc, finish | |||||
| ########################################################### | ########################################################### | ||||
| # Step 1 | |||||
| # Step: start | |||||
| ########################################################### | ########################################################### | ||||
| start.editor=org.apache.tools.ant.gui.wizard.InstructionStep | start.editor=org.apache.tools.ant.gui.wizard.InstructionStep | ||||
| start.title=Create new build file | start.title=Create new build file | ||||
| @@ -29,7 +29,21 @@ and the types of build options you want included.\n\n\ | |||||
| Click "Next >>" to proceed. | Click "Next >>" to proceed. | ||||
| ########################################################### | ########################################################### | ||||
| # Step 2 | |||||
| # Step: type | |||||
| ########################################################### | |||||
| type.editor=org.apache.tools.ant.gui.wizard.build.ProjectTypeStep | |||||
| type.title=Select project type | |||||
| type.description=Select "New" if you want the buile environment \ | |||||
| directory structure defined and created for you \ | |||||
| in addition to the build file. Select "Import" if you want \ | |||||
| a build file created for an existing project. | |||||
| type.isNewLabel=New project | |||||
| type.isImportLabel=Import existing project | |||||
| ########################################################### | |||||
| # Step: setup | |||||
| ########################################################### | ########################################################### | ||||
| setup.editor=org.apache.tools.ant.gui.wizard.build.ProjectSetupStep | setup.editor=org.apache.tools.ant.gui.wizard.build.ProjectSetupStep | ||||
| @@ -38,11 +52,35 @@ setup.description=Give the project a name, and select the features you \ | |||||
| wish to be included in the project file, such as JavaDoc and JAR creation. | wish to be included in the project file, such as JavaDoc and JAR creation. | ||||
| setup.nameLabel=Project Name: | setup.nameLabel=Project Name: | ||||
| setup.optionsLabel=Options | setup.optionsLabel=Options | ||||
| setup.compile.label=Compiled Java code (.class files) | |||||
| setup.jar.label=Executable JAR file | |||||
| setup.javadoc.label=JavaDoc | |||||
| ########################################################### | |||||
| # Step: compile | |||||
| ########################################################### | |||||
| compile.title=Setup Java source compilation | |||||
| compile.description=Need help? | |||||
| compile.editor=org.apache.tools.ant.gui.wizard.build.CompileStep | |||||
| ########################################################### | |||||
| # Step: jar | |||||
| ########################################################### | |||||
| jar.title=Setup executable JAR creation | |||||
| jar.description=Need help? | |||||
| jar.editor=org.apache.tools.ant.gui.wizard.build.JARStep | |||||
| ########################################################### | |||||
| # Step: javadoc | |||||
| ########################################################### | |||||
| javadoc.title=Setup JavaDoc creation | |||||
| javadoc.description=Need help? | |||||
| javadoc.editor=org.apache.tools.ant.gui.wizard.build.JavaDocStep | |||||
| ########################################################### | ########################################################### | ||||
| # Last step | |||||
| # Step: finish | |||||
| ########################################################### | ########################################################### | ||||
| finish.editor=org.apache.tools.ant.gui.wizard.InstructionStep | |||||
| finish.editor=org.apache.tools.ant.gui.wizard.build.FinishStep | |||||
| finish.title=Complete build file | finish.title=Complete build file | ||||
| finish.description=Click "Finish" to save your build file definition. | finish.description=Click "Finish" to save your build file definition. | ||||
| finish.instructions=You are done!\n\nClick "Finish" to complete your new\ | finish.instructions=You are done!\n\nClick "Finish" to complete your new\ | ||||
| @@ -76,11 +76,7 @@ public abstract class AbstractWizardStep extends JComponent | |||||
| /** Description of the step. */ | /** Description of the step. */ | ||||
| private String _description = null; | private String _description = null; | ||||
| /** Data model. */ | /** Data model. */ | ||||
| private Object _model = null; | |||||
| /** ID of next step. */ | |||||
| private String _nextID = null; | |||||
| /** ID of previous step. */ | |||||
| private String _prevID = null; | |||||
| private WizardData _model = null; | |||||
| /** | /** | ||||
| * Called when the instance should initialize its contents, e.g. | * Called when the instance should initialize its contents, e.g. | ||||
| @@ -161,41 +157,6 @@ public abstract class AbstractWizardStep extends JComponent | |||||
| return _description; | return _description; | ||||
| } | } | ||||
| /** | |||||
| * Set the default id of the next step. | |||||
| * | |||||
| * @param nextID ID of next step. | |||||
| */ | |||||
| public void setNext(String nextID) { | |||||
| _nextID = nextID; | |||||
| } | |||||
| /** | |||||
| * Get the id of the next step. | |||||
| * | |||||
| * @return ID of next step. | |||||
| */ | |||||
| public String getNext() { | |||||
| return _nextID; | |||||
| } | |||||
| /** | |||||
| * Set the default id of the previous step. | |||||
| * | |||||
| * @param prevID ID of previous step. | |||||
| */ | |||||
| public void setPrevious(String prevID) { | |||||
| _prevID = prevID; | |||||
| } | |||||
| /** | |||||
| * Get the id of the previous step. | |||||
| * | |||||
| * @return Previous step. | |||||
| */ | |||||
| public String getPrevious() { | |||||
| return _prevID; | |||||
| } | |||||
| /** | /** | ||||
| * Set the data model object that the step will edit. It is assumed | * Set the data model object that the step will edit. It is assumed | ||||
| @@ -204,7 +165,7 @@ public abstract class AbstractWizardStep extends JComponent | |||||
| * | * | ||||
| * @param model Data model to edit. | * @param model Data model to edit. | ||||
| */ | */ | ||||
| public void setDataModel(Object model) { | |||||
| public void setDataModel(WizardData model) { | |||||
| _model = model; | _model = model; | ||||
| } | } | ||||
| @@ -213,7 +174,7 @@ public abstract class AbstractWizardStep extends JComponent | |||||
| * | * | ||||
| * @return Current data model. | * @return Current data model. | ||||
| */ | */ | ||||
| public Object getDataModel() { | |||||
| public WizardData getDataModel() { | |||||
| return _model; | return _model; | ||||
| } | } | ||||
| @@ -233,6 +194,26 @@ public abstract class AbstractWizardStep extends JComponent | |||||
| return this; | return this; | ||||
| } | } | ||||
| /** | |||||
| * Get the id of the next step. | |||||
| * | |||||
| * @return ID of next step. | |||||
| */ | |||||
| public String getNext() { | |||||
| return getDataModel().getStateMachine().getNext( | |||||
| this, getDataModel()); | |||||
| } | |||||
| /** | |||||
| * Get the id of the previous step. | |||||
| * | |||||
| * @return Previous step. | |||||
| */ | |||||
| public String getPrevious() { | |||||
| return getDataModel().getStateMachine().getPrevious( | |||||
| this, getDataModel()); | |||||
| } | |||||
| /** | /** | ||||
| * Get a string representation of this. | * Get a string representation of this. | ||||
| * | * | ||||
| @@ -242,10 +223,6 @@ public abstract class AbstractWizardStep extends JComponent | |||||
| StringBuffer buf = new StringBuffer(getClass().getName()); | StringBuffer buf = new StringBuffer(getClass().getName()); | ||||
| buf.append("[id="); | buf.append("[id="); | ||||
| buf.append(getID()); | buf.append(getID()); | ||||
| buf.append(",prev="); | |||||
| buf.append(getPrevious()); | |||||
| buf.append(",next="); | |||||
| buf.append(getNext()); | |||||
| buf.append("]"); | buf.append("]"); | ||||
| return buf.toString(); | return buf.toString(); | ||||
| } | } | ||||
| @@ -0,0 +1,108 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.gui.wizard; | |||||
| import org.apache.tools.ant.gui.core.ResourceManager; | |||||
| import java.util.*; | |||||
| /** | |||||
| * A simple state machine based on the defined ordering of steps | |||||
| * in the resources. | |||||
| * | |||||
| * @version $Revision$ | |||||
| * @author Simeon Fitch | |||||
| */ | |||||
| public class DefaultStateMachine implements StateMachine { | |||||
| /** | |||||
| * Get the list of step IDs defined in the resources as a list. | |||||
| * | |||||
| * @param data Current wizard state. | |||||
| * @return List of step IDs | |||||
| */ | |||||
| protected List getStepList(WizardData data) { | |||||
| return Arrays.asList(data.getResources().getStringArray("steps")); | |||||
| } | |||||
| /** | |||||
| * Get the next step. | |||||
| * | |||||
| * @param curr The current step. | |||||
| * @param data The current state of the wizard. | |||||
| * @return The ID of next step, or null if there currently isn't one. | |||||
| */ | |||||
| public String getNext(WizardStep curr, WizardData data) { | |||||
| List steps = getStepList(data); | |||||
| int nextIndex = steps.indexOf(curr.getID()) + 1; | |||||
| if(nextIndex > 0 && nextIndex < steps.size()) { | |||||
| return (String) steps.get(nextIndex); | |||||
| } | |||||
| return null; | |||||
| } | |||||
| /** | |||||
| * Get the previous step. | |||||
| * | |||||
| * @param curr The current step. | |||||
| * @param data The current state of the wizard. | |||||
| * @return The ID of previous step, or null if there currently isn't one. | |||||
| */ | |||||
| public String getPrevious(WizardStep curr, WizardData data) { | |||||
| List steps = getStepList(data); | |||||
| int nextIndex = steps.indexOf(curr.getID()) - 1; | |||||
| if(nextIndex > 0 && nextIndex < steps.size()) { | |||||
| return (String) steps.get(nextIndex); | |||||
| } | |||||
| return null; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,82 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.gui.wizard; | |||||
| /** | |||||
| * Interface for the wizard state machine, responsible for determining the | |||||
| * next step in the wizard. | |||||
| * | |||||
| * @version $Revision$ | |||||
| * @author Simeon Fitch | |||||
| */ | |||||
| public interface StateMachine { | |||||
| /** | |||||
| * Get the next step. | |||||
| * | |||||
| * @param curr The current step. | |||||
| * @param data The current state of the wizard. | |||||
| * @return The next step, or null if there currently isn't one. | |||||
| */ | |||||
| String getNext(WizardStep curr, WizardData data); | |||||
| /** | |||||
| * Get the previous step. | |||||
| * | |||||
| * @param curr The current step. | |||||
| * @param data The current state of the wizard. | |||||
| * @return The previous step, or null if there currently isn't one. | |||||
| */ | |||||
| String getPrevious(WizardStep curr, WizardData data); | |||||
| } | |||||
| @@ -70,9 +70,8 @@ import java.util.*; | |||||
| * @author Simeon Fitch | * @author Simeon Fitch | ||||
| */ | */ | ||||
| public class Wizard extends JComponent { | public class Wizard extends JComponent { | ||||
| /** Resources defining the wizard contents. Separate from the | |||||
| * application context resources. */ | |||||
| private ResourceManager _resources = null; | |||||
| /** The data model to pass on to each step. */ | |||||
| private WizardData _data = null; | |||||
| /** Container for the step editors. */ | /** Container for the step editors. */ | ||||
| private JPanel _stepContainer = null; | private JPanel _stepContainer = null; | ||||
| /** Layout manager for all the step panels. */ | /** Layout manager for all the step panels. */ | ||||
| @@ -87,8 +86,6 @@ public class Wizard extends JComponent { | |||||
| private JProgressBar _progress = null; | private JProgressBar _progress = null; | ||||
| /** Widget for navigating through steps. */ | /** Widget for navigating through steps. */ | ||||
| private WizardNavigator _nav = null; | private WizardNavigator _nav = null; | ||||
| /** The data model to pass on to each step. */ | |||||
| private Object _model = null; | |||||
| /** The current Wizard step. */ | /** The current Wizard step. */ | ||||
| private WizardStep _curr = null; | private WizardStep _curr = null; | ||||
| /** The set of wizard listeners. */ | /** The set of wizard listeners. */ | ||||
| @@ -97,17 +94,15 @@ public class Wizard extends JComponent { | |||||
| /** | /** | ||||
| * Standard ctor. | * Standard ctor. | ||||
| * | * | ||||
| * @param resources Wizard definition resources | |||||
| * @param dataModel Initial data model. | |||||
| * @param data Data for the wizard. | |||||
| */ | */ | ||||
| public Wizard(ResourceManager resources, Object dataModel) { | |||||
| public Wizard(WizardData data) { | |||||
| setLayout(new BorderLayout()); | setLayout(new BorderLayout()); | ||||
| _resources = resources; | |||||
| _model = dataModel; | |||||
| _data = data; | |||||
| _progress = new JProgressBar(); | _progress = new JProgressBar(); | ||||
| _progress.setBorder(BorderFactory.createTitledBorder( | _progress.setBorder(BorderFactory.createTitledBorder( | ||||
| _resources.getString("progress"))); | |||||
| _data.getResources().getString("progress"))); | |||||
| _progress.setStringPainted(true); | _progress.setStringPainted(true); | ||||
| add(_progress, BorderLayout.NORTH); | add(_progress, BorderLayout.NORTH); | ||||
| @@ -126,7 +121,7 @@ public class Wizard extends JComponent { | |||||
| JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); | JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); | ||||
| scroller.setBorder(BorderFactory.createTitledBorder( | scroller.setBorder(BorderFactory.createTitledBorder( | ||||
| _resources.getString("help"))); | |||||
| _data.getResources().getString("help"))); | |||||
| add(scroller, BorderLayout.WEST); | add(scroller, BorderLayout.WEST); | ||||
| _stepContainer = new JPanel(_layout = new CardLayout()); | _stepContainer = new JPanel(_layout = new CardLayout()); | ||||
| @@ -136,30 +131,23 @@ public class Wizard extends JComponent { | |||||
| add(_stepContainer, BorderLayout.CENTER); | add(_stepContainer, BorderLayout.CENTER); | ||||
| _nav = new ButtonNavigator(_resources); | |||||
| _nav = new ButtonNavigator(_data.getResources()); | |||||
| _nav.addNavigatorListener(new NavHandler()); | _nav.addNavigatorListener(new NavHandler()); | ||||
| ((ButtonNavigator)_nav).setBorder(BorderFactory.createEtchedBorder()); | ((ButtonNavigator)_nav).setBorder(BorderFactory.createEtchedBorder()); | ||||
| add((ButtonNavigator)_nav, BorderLayout.SOUTH); | add((ButtonNavigator)_nav, BorderLayout.SOUTH); | ||||
| String[] steps = _resources.getStringArray("steps"); | |||||
| String[] steps = _data.getResources().getStringArray("steps"); | |||||
| _progress.setMaximum(steps.length - 1); | _progress.setMaximum(steps.length - 1); | ||||
| try { | try { | ||||
| for(int i = 0; i < steps.length; i++) { | for(int i = 0; i < steps.length; i++) { | ||||
| Class type = _resources.getClass(steps[i] + ".editor"); | |||||
| Class type = _data.getResources().getClass(steps[i] + ".editor"); | |||||
| WizardStep step = (WizardStep) type.newInstance(); | WizardStep step = (WizardStep) type.newInstance(); | ||||
| step.setResources(_resources); | |||||
| step.setResources(_data.getResources()); | |||||
| step.setID(steps[i]); | step.setID(steps[i]); | ||||
| step.setTitle(_resources.getString(steps[i]+ ".title")); | |||||
| step.setTitle( | |||||
| _data.getResources().getString(steps[i]+ ".title")); | |||||
| step.setDescription( | step.setDescription( | ||||
| _resources.getString(steps[i]+ ".description")); | |||||
| String id = _resources.getString(steps[i] + ".next"); | |||||
| id = (id == null && i < steps.length - 1) ? steps[i + 1] : id; | |||||
| step.setNext(id); | |||||
| id = _resources.getString(steps[i] + ".prev"); | |||||
| id = (id == null && i > 0) ? steps[i - 1] : id; | |||||
| step.setPrevious(id); | |||||
| _data.getResources().getString(steps[i]+ ".description")); | |||||
| _steps.put(steps[i], step); | _steps.put(steps[i], step); | ||||
| _stepOrdering.add(step); | _stepOrdering.add(step); | ||||
| @@ -168,7 +156,7 @@ public class Wizard extends JComponent { | |||||
| // Initialize the first screen with the data model. | // Initialize the first screen with the data model. | ||||
| if(steps.length > 0) { | if(steps.length > 0) { | ||||
| WizardStep first = (WizardStep)_steps.get(steps[0]); | WizardStep first = (WizardStep)_steps.get(steps[0]); | ||||
| first.setDataModel(_model); | |||||
| first.setDataModel(_data); | |||||
| _curr = first; | _curr = first; | ||||
| showStep(first); | showStep(first); | ||||
| } | } | ||||
| @@ -207,13 +195,13 @@ public class Wizard extends JComponent { | |||||
| private void showStep(WizardStep step) { | private void showStep(WizardStep step) { | ||||
| if(step == null) return; | if(step == null) return; | ||||
| // Transfer data model (in case step wants to create a new one. | |||||
| _curr.updateDataModel(); | |||||
| step.setDataModel(_curr.getDataModel()); | step.setDataModel(_curr.getDataModel()); | ||||
| // Update the title and description. | // Update the title and description. | ||||
| _stepContainer.setBorder( | _stepContainer.setBorder( | ||||
| BorderFactory.createTitledBorder(step.getTitle())); | |||||
| BorderFactory.createCompoundBorder( | |||||
| BorderFactory.createTitledBorder(step.getTitle()), | |||||
| BorderFactory.createEmptyBorder(5, 15, 5, 15))); | |||||
| _description.setText(step.getDescription()); | _description.setText(step.getDescription()); | ||||
| _nav.setBackEnabled(step.getPrevious() != null); | _nav.setBackEnabled(step.getPrevious() != null); | ||||
| @@ -233,21 +221,28 @@ public class Wizard extends JComponent { | |||||
| /** Handler for actions invoked by wizard. */ | /** Handler for actions invoked by wizard. */ | ||||
| private class NavHandler implements NavigatorListener { | private class NavHandler implements NavigatorListener { | ||||
| public void nextStep() { | public void nextStep() { | ||||
| // Called to give data model chance to make changes to what is next. | |||||
| _curr.updateDataModel(); | |||||
| String nextID = _curr.getNext(); | String nextID = _curr.getNext(); | ||||
| if(nextID != null) { | if(nextID != null) { | ||||
| showStep((WizardStep)_steps.get(nextID)); | showStep((WizardStep)_steps.get(nextID)); | ||||
| } | } | ||||
| } | } | ||||
| public void backStep() { | public void backStep() { | ||||
| // Called to give data model chance to make changes to what is | |||||
| // before. | |||||
| _curr.updateDataModel(); | |||||
| String prevID = _curr.getPrevious(); | String prevID = _curr.getPrevious(); | ||||
| if(prevID != null) { | if(prevID != null) { | ||||
| showStep((WizardStep)_steps.get(prevID)); | showStep((WizardStep)_steps.get(prevID)); | ||||
| } | } | ||||
| } | } | ||||
| public void gotoStep(String stepID){ | public void gotoStep(String stepID){ | ||||
| _curr.updateDataModel(); | |||||
| showStep((WizardStep) _steps.get(stepID)); | showStep((WizardStep) _steps.get(stepID)); | ||||
| } | } | ||||
| public void cancel() { | public void cancel() { | ||||
| _curr.updateDataModel(); | |||||
| Iterator it = _listeners.iterator(); | Iterator it = _listeners.iterator(); | ||||
| while(it.hasNext()) { | while(it.hasNext()) { | ||||
| WizardListener l = (WizardListener) it.next(); | WizardListener l = (WizardListener) it.next(); | ||||
| @@ -255,6 +250,7 @@ public class Wizard extends JComponent { | |||||
| } | } | ||||
| } | } | ||||
| public void finish() { | public void finish() { | ||||
| _curr.updateDataModel(); | |||||
| Iterator it = _listeners.iterator(); | Iterator it = _listeners.iterator(); | ||||
| while(it.hasNext()) { | while(it.hasNext()) { | ||||
| WizardListener l = (WizardListener) it.next(); | WizardListener l = (WizardListener) it.next(); | ||||
| @@ -0,0 +1,79 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.gui.wizard; | |||||
| import org.apache.tools.ant.gui.core.ResourceManager; | |||||
| /** | |||||
| * Interface for the wizard data model. | |||||
| * | |||||
| * @version $Revision$ | |||||
| * @author Simeon Fitch | |||||
| */ | |||||
| public interface WizardData { | |||||
| /** | |||||
| * Get access to the resources for the wizard. | |||||
| * | |||||
| * @return Wizard resources. | |||||
| */ | |||||
| ResourceManager getResources(); | |||||
| /** | |||||
| * Get the class the determines what the next step should be. | |||||
| * | |||||
| * @return State machine. | |||||
| */ | |||||
| StateMachine getStateMachine(); | |||||
| } | |||||
| @@ -109,33 +109,6 @@ public interface WizardStep { | |||||
| */ | */ | ||||
| String getDescription(); | String getDescription(); | ||||
| /** | |||||
| * Set the default id of the next step. | |||||
| * | |||||
| * @param nextID ID of next step. | |||||
| */ | |||||
| void setNext(String nextID); | |||||
| /** | |||||
| * Get the id of the next step. | |||||
| * | |||||
| * @return ID of next step. | |||||
| */ | |||||
| String getNext(); | |||||
| /** | |||||
| * Set the default id of the previous step. | |||||
| * | |||||
| * @param prevID ID of previous step. | |||||
| */ | |||||
| void setPrevious(String prevID); | |||||
| /** | |||||
| * Get the id of the previous step. | |||||
| * | |||||
| * @return Previous step. | |||||
| */ | |||||
| String getPrevious(); | |||||
| /** | /** | ||||
| * Set the data model object that the step will edit. It is assumed | * Set the data model object that the step will edit. It is assumed | ||||
| * that all steps initialized within a single wizard agree on the | * that all steps initialized within a single wizard agree on the | ||||
| @@ -143,14 +116,14 @@ public interface WizardStep { | |||||
| * | * | ||||
| * @param model Data model to edit. | * @param model Data model to edit. | ||||
| */ | */ | ||||
| void setDataModel(Object model); | |||||
| void setDataModel(WizardData model); | |||||
| /** | /** | ||||
| * Get the data model that should be passeed on to the next step. | * Get the data model that should be passeed on to the next step. | ||||
| * | * | ||||
| * @return Current data model. | * @return Current data model. | ||||
| */ | */ | ||||
| Object getDataModel(); | |||||
| WizardData getDataModel(); | |||||
| /** | /** | ||||
| * Get the component that should be displayed to the user for | * Get the component that should be displayed to the user for | ||||
| @@ -175,4 +148,18 @@ public interface WizardStep { | |||||
| */ | */ | ||||
| void updateDataModel(); | void updateDataModel(); | ||||
| /** | |||||
| * Get the id of the next step. | |||||
| * | |||||
| * @return ID of next step. | |||||
| */ | |||||
| String getNext(); | |||||
| /** | |||||
| * Get the id of the previous step. | |||||
| * | |||||
| * @return Previous step. | |||||
| */ | |||||
| String getPrevious(); | |||||
| } | } | ||||
| @@ -0,0 +1,159 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.gui.wizard.build; | |||||
| import org.apache.tools.ant.gui.wizard.*; | |||||
| import org.apache.tools.ant.gui.core.ResourceManager; | |||||
| import org.apache.tools.ant.gui.acs.*; | |||||
| import java.util.*; | |||||
| /** | |||||
| * Data model for the build wizard. | |||||
| * | |||||
| * @version $Revision$ | |||||
| * @author Simeon Fitch | |||||
| */ | |||||
| public class BuildData implements WizardData { | |||||
| /** Wizard resources. */ | |||||
| private ResourceManager _resources = new ResourceManager( | |||||
| "org.apache.tools.ant.gui.resources.buildFileWizard"); | |||||
| private StateMachine _stateMachine = new BuildStateMachine(); | |||||
| private String _name = null; | |||||
| private boolean _isNewProject = true; | |||||
| private List _optionalSteps = null; | |||||
| /** | |||||
| * Default ctor. | |||||
| * | |||||
| */ | |||||
| public BuildData() { | |||||
| //_project = ACSFactory.getInstance().createProject(); | |||||
| _optionalSteps = Arrays.asList(ProjectSetupStep.OPTIONS); | |||||
| } | |||||
| /** | |||||
| * Get access to the resources for the wizard. | |||||
| * | |||||
| * @return Wizard resources. | |||||
| */ | |||||
| public ResourceManager getResources() { | |||||
| return _resources; | |||||
| } | |||||
| /** | |||||
| * Get the class the determines what the next step should be. | |||||
| * | |||||
| * @return State machine. | |||||
| */ | |||||
| public StateMachine getStateMachine() { | |||||
| return _stateMachine; | |||||
| } | |||||
| /** | |||||
| * Get the project name. | |||||
| * | |||||
| * @param name Project name. | |||||
| */ | |||||
| public void setProjectName(String name) { | |||||
| _name = name; | |||||
| } | |||||
| /** | |||||
| * Set the project name. | |||||
| * | |||||
| * @return Project name. | |||||
| */ | |||||
| public String getProjectName() { | |||||
| return _name; | |||||
| } | |||||
| /** | |||||
| * Set whether or not a new project is being created. | |||||
| * | |||||
| * @param isNew True if new project, false if importing a project. | |||||
| */ | |||||
| public void setNewProject(boolean isNew) { | |||||
| _isNewProject = isNew; | |||||
| } | |||||
| /** | |||||
| * Determine if we are creating a new project. | |||||
| * | |||||
| * @return True if new project, false if importing a project. | |||||
| */ | |||||
| public boolean isNewProject() { | |||||
| return _isNewProject; | |||||
| } | |||||
| /** | |||||
| * Set the set of optional steps (as IDs) that should be executed. | |||||
| * | |||||
| * @param steps Set of optional step IDs. | |||||
| */ | |||||
| public void setOptionalSteps(List steps) { | |||||
| _optionalSteps = steps; | |||||
| } | |||||
| /** | |||||
| * Get the set of optional steps (as IDs) that should be executed. | |||||
| * | |||||
| * @return Set of optional step IDs. | |||||
| */ | |||||
| public List getOptionalSteps() { | |||||
| return _optionalSteps; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,141 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.gui.wizard.build; | |||||
| import org.apache.tools.ant.gui.wizard.*; | |||||
| import org.apache.tools.ant.gui.core.ResourceManager; | |||||
| import java.util.*; | |||||
| /** | |||||
| * State machine defining the step ordering for the build wizard. | |||||
| * | |||||
| * @version $Revision$ | |||||
| * @author Simeon Fitch | |||||
| */ | |||||
| public class BuildStateMachine extends DefaultStateMachine { | |||||
| private List _optionals = Arrays.asList(ProjectSetupStep.OPTIONS); | |||||
| /** | |||||
| * Get the next step. | |||||
| * | |||||
| * @param curr The current step. | |||||
| * @param data The current state of the wizard. | |||||
| * @return The ID of next step, or null if there currently isn't one. | |||||
| */ | |||||
| public String getNext(ProjectSetupStep curr, WizardData data) { | |||||
| return getFollowingID(super.getNext(curr, data), data, +1); | |||||
| } | |||||
| /** | |||||
| * Get the next step. | |||||
| * | |||||
| * @param curr The current step. | |||||
| * @param data The current state of the wizard. | |||||
| * @return The ID of next step, or null if there currently isn't one. | |||||
| */ | |||||
| public String getNext(OptionalStep curr, WizardData data) { | |||||
| return getFollowingID(super.getNext(curr, data), data, +1); | |||||
| } | |||||
| /** | |||||
| * Get the previous step. | |||||
| * | |||||
| * @param curr The current step. | |||||
| * @param data The current state of the wizard. | |||||
| * @return The ID of previous step, or null if there currently isn't one. | |||||
| */ | |||||
| public String getPrevious(OptionalStep curr, WizardData data) { | |||||
| return getFollowingID(super.getPrevious(curr, data), data, -1); | |||||
| } | |||||
| /** | |||||
| * Get the previous step. | |||||
| * | |||||
| * @param curr The current step. | |||||
| * @param data The current state of the wizard. | |||||
| * @return The ID of previous step, or null if there currently isn't one. | |||||
| */ | |||||
| public String getPrevious(FinishStep curr, WizardData data) { | |||||
| return getFollowingID(super.getPrevious(curr, data), data, -1); | |||||
| } | |||||
| /** | |||||
| * Figure out which ID should follow the given one based on the current | |||||
| * state setting of the optional steps. | |||||
| * | |||||
| * @param curr ID of the current step. | |||||
| * @param data State data. | |||||
| * @param direction +1 for next, -1 for previous. | |||||
| * @return The ID to follow, or null if none. | |||||
| */ | |||||
| private String getFollowingID(String curr, WizardData data, int direction) { | |||||
| String follow = curr; | |||||
| List steps = getStepList(data); | |||||
| List setting = ((BuildData)data).getOptionalSteps(); | |||||
| while(follow != null && _optionals.contains(follow) && | |||||
| !setting.contains(follow)) { | |||||
| int index = steps.indexOf(follow) + direction; | |||||
| if(index >= 0 && index < steps.size()) { | |||||
| follow = (String) steps.get(index); | |||||
| } | |||||
| else { | |||||
| follow = null; | |||||
| } | |||||
| } | |||||
| return follow; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,116 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.gui.wizard.build; | |||||
| import org.apache.tools.ant.gui.wizard.AbstractWizardStep; | |||||
| import javax.swing.*; | |||||
| import java.awt.event.ActionListener; | |||||
| import java.awt.event.ActionEvent; | |||||
| /** | |||||
| * | |||||
| * | |||||
| * @version $Revision$ | |||||
| * @author Simeon Fitch | |||||
| */ | |||||
| public class CompileStep extends AbstractWizardStep implements OptionalStep { | |||||
| /** | |||||
| * Initialize the display. | |||||
| * | |||||
| */ | |||||
| protected void init() { | |||||
| } | |||||
| /** | |||||
| * Called when the step should refresh its display based on the | |||||
| * current model setting. | |||||
| * | |||||
| */ | |||||
| public void updateDisplay() { | |||||
| BuildData data = (BuildData) getDataModel(); | |||||
| } | |||||
| /** | |||||
| * Called when the step should update the data model based on the | |||||
| * settings of its widgets. | |||||
| * | |||||
| */ | |||||
| public void updateDataModel() { | |||||
| BuildData data = (BuildData) getDataModel(); | |||||
| } | |||||
| /** | |||||
| * Get the id of the next step. | |||||
| * | |||||
| * @return ID of next step. | |||||
| */ | |||||
| public String getNext() { | |||||
| return ((BuildStateMachine)getDataModel().getStateMachine()). | |||||
| getNext(this, getDataModel()); | |||||
| } | |||||
| /** | |||||
| * Get the id of the previous step. | |||||
| * | |||||
| * @return Previous step. | |||||
| */ | |||||
| public String getPrevious() { | |||||
| return ((BuildStateMachine)getDataModel().getStateMachine()). | |||||
| getPrevious(this, getDataModel()); | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,110 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.gui.wizard.build; | |||||
| import org.apache.tools.ant.gui.wizard.InstructionStep; | |||||
| import javax.swing.*; | |||||
| import java.awt.event.ActionListener; | |||||
| import java.awt.event.ActionEvent; | |||||
| /** | |||||
| * | |||||
| * | |||||
| * @version $Revision$ | |||||
| * @author Simeon Fitch | |||||
| */ | |||||
| public class FinishStep extends InstructionStep { | |||||
| /** | |||||
| * Called when the step should refresh its display based on the | |||||
| * current model setting. | |||||
| * | |||||
| */ | |||||
| public void updateDisplay() { | |||||
| BuildData data = (BuildData) getDataModel(); | |||||
| } | |||||
| /** | |||||
| * Called when the step should update the data model based on the | |||||
| * settings of its widgets. | |||||
| * | |||||
| */ | |||||
| public void updateDataModel() { | |||||
| BuildData data = (BuildData) getDataModel(); | |||||
| } | |||||
| /** | |||||
| * Get the id of the next step. | |||||
| * | |||||
| * @return ID of next step. | |||||
| */ | |||||
| public String getNext() { | |||||
| return ((BuildStateMachine)getDataModel().getStateMachine()). | |||||
| getNext(this, getDataModel()); | |||||
| } | |||||
| /** | |||||
| * Get the id of the previous step. | |||||
| * | |||||
| * @return Previous step. | |||||
| */ | |||||
| public String getPrevious() { | |||||
| return ((BuildStateMachine)getDataModel().getStateMachine()). | |||||
| getPrevious(this, getDataModel()); | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,116 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.gui.wizard.build; | |||||
| import org.apache.tools.ant.gui.wizard.AbstractWizardStep; | |||||
| import javax.swing.*; | |||||
| import java.awt.event.ActionListener; | |||||
| import java.awt.event.ActionEvent; | |||||
| /** | |||||
| * | |||||
| * | |||||
| * @version $Revision$ | |||||
| * @author Simeon Fitch | |||||
| */ | |||||
| public class JARStep extends AbstractWizardStep implements OptionalStep { | |||||
| /** | |||||
| * Initialize the display. | |||||
| * | |||||
| */ | |||||
| protected void init() { | |||||
| } | |||||
| /** | |||||
| * Called when the step should refresh its display based on the | |||||
| * current model setting. | |||||
| * | |||||
| */ | |||||
| public void updateDisplay() { | |||||
| BuildData data = (BuildData) getDataModel(); | |||||
| } | |||||
| /** | |||||
| * Called when the step should update the data model based on the | |||||
| * settings of its widgets. | |||||
| * | |||||
| */ | |||||
| public void updateDataModel() { | |||||
| BuildData data = (BuildData) getDataModel(); | |||||
| } | |||||
| /** | |||||
| * Get the id of the next step. | |||||
| * | |||||
| * @return ID of next step. | |||||
| */ | |||||
| public String getNext() { | |||||
| return ((BuildStateMachine)getDataModel().getStateMachine()). | |||||
| getNext(this, getDataModel()); | |||||
| } | |||||
| /** | |||||
| * Get the id of the previous step. | |||||
| * | |||||
| * @return Previous step. | |||||
| */ | |||||
| public String getPrevious() { | |||||
| return ((BuildStateMachine)getDataModel().getStateMachine()). | |||||
| getPrevious(this, getDataModel()); | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,116 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.gui.wizard.build; | |||||
| import org.apache.tools.ant.gui.wizard.AbstractWizardStep; | |||||
| import javax.swing.*; | |||||
| import java.awt.event.ActionListener; | |||||
| import java.awt.event.ActionEvent; | |||||
| /** | |||||
| * | |||||
| * | |||||
| * @version $Revision$ | |||||
| * @author Simeon Fitch | |||||
| */ | |||||
| public class JavaDocStep extends AbstractWizardStep implements OptionalStep { | |||||
| /** | |||||
| * Initialize the display. | |||||
| * | |||||
| */ | |||||
| protected void init() { | |||||
| } | |||||
| /** | |||||
| * Called when the step should refresh its display based on the | |||||
| * current model setting. | |||||
| * | |||||
| */ | |||||
| public void updateDisplay() { | |||||
| BuildData data = (BuildData) getDataModel(); | |||||
| } | |||||
| /** | |||||
| * Called when the step should update the data model based on the | |||||
| * settings of its widgets. | |||||
| * | |||||
| */ | |||||
| public void updateDataModel() { | |||||
| BuildData data = (BuildData) getDataModel(); | |||||
| } | |||||
| /** | |||||
| * Get the id of the next step. | |||||
| * | |||||
| * @return ID of next step. | |||||
| */ | |||||
| public String getNext() { | |||||
| return ((BuildStateMachine)getDataModel().getStateMachine()). | |||||
| getNext(this, getDataModel()); | |||||
| } | |||||
| /** | |||||
| * Get the id of the previous step. | |||||
| * | |||||
| * @return Previous step. | |||||
| */ | |||||
| public String getPrevious() { | |||||
| return ((BuildStateMachine)getDataModel().getStateMachine()). | |||||
| getPrevious(this, getDataModel()); | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,65 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.gui.wizard.build; | |||||
| import org.apache.tools.ant.gui.wizard.WizardStep; | |||||
| /** | |||||
| * A tagging interface for optional steps to make virtual dispatching easier. | |||||
| * | |||||
| * @version $Revision$ | |||||
| * @author Simeon Fitch | |||||
| */ | |||||
| interface OptionalStep extends WizardStep { | |||||
| } | |||||
| @@ -58,7 +58,7 @@ import javax.swing.*; | |||||
| import java.awt.BorderLayout; | import java.awt.BorderLayout; | ||||
| import java.awt.FlowLayout; | import java.awt.FlowLayout; | ||||
| import java.awt.GridBagLayout; | import java.awt.GridBagLayout; | ||||
| import org.apache.tools.ant.gui.acs.*; | |||||
| import java.util.*; | |||||
| /** | /** | ||||
| * Build file wizard step for naming the project and | * Build file wizard step for naming the project and | ||||
| @@ -69,9 +69,31 @@ import org.apache.tools.ant.gui.acs.*; | |||||
| */ | */ | ||||
| public class ProjectSetupStep extends AbstractWizardStep { | public class ProjectSetupStep extends AbstractWizardStep { | ||||
| /** ID for compile option. */ | |||||
| public static final String COMPILE_OPTION = "compile"; | |||||
| /** ID for JAR option. */ | |||||
| public static final String JAR_OPTION = "jar"; | |||||
| /** ID for JavaDoc option. */ | |||||
| public static final String JAVADOC_OPTION = "javadoc"; | |||||
| /** Available options as an array. */ | |||||
| public static final String[] OPTIONS = { | |||||
| COMPILE_OPTION, | |||||
| JAR_OPTION, | |||||
| JAVADOC_OPTION | |||||
| }; | |||||
| /** Array of the option selections. */ | |||||
| private JCheckBox[] _selections = null; | |||||
| /** Name of the project. */ | /** Name of the project. */ | ||||
| private JTextField _name = null; | private JTextField _name = null; | ||||
| /** | |||||
| * Initialize the screen widgets. | |||||
| * | |||||
| */ | |||||
| protected void init() { | protected void init() { | ||||
| setLayout(new BorderLayout()); | setLayout(new BorderLayout()); | ||||
| @@ -82,11 +104,21 @@ public class ProjectSetupStep extends AbstractWizardStep { | |||||
| p.add(new JLabel(getResources().getString(getID() + ".nameLabel"))); | p.add(new JLabel(getResources().getString(getID() + ".nameLabel"))); | ||||
| p.add(_name); | p.add(_name); | ||||
| p = new JPanel(new GridBagLayout()); | |||||
| p.setBorder(BorderFactory.createTitledBorder( | |||||
| getResources().getString(getID() + ".optionsLabel"))); | |||||
| p = new JPanel(null); | |||||
| p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS)); | |||||
| p.setBorder(BorderFactory.createCompoundBorder( | |||||
| BorderFactory.createTitledBorder( | |||||
| getResources().getString(getID() + ".optionsLabel")), | |||||
| BorderFactory.createEmptyBorder(5, 10, 5, 10))); | |||||
| add(p, BorderLayout.CENTER); | add(p, BorderLayout.CENTER); | ||||
| _selections = new JCheckBox[OPTIONS.length]; | |||||
| for(int i = 0; i < OPTIONS.length; i++) { | |||||
| _selections[i] = new JCheckBox( | |||||
| getResources().getString(getID() + "." + OPTIONS[i] + ".label")); | |||||
| _selections[i].setSelected(true); | |||||
| p.add(_selections[i]); | |||||
| } | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -95,8 +127,17 @@ public class ProjectSetupStep extends AbstractWizardStep { | |||||
| * | * | ||||
| */ | */ | ||||
| public void updateDisplay() { | public void updateDisplay() { | ||||
| ACSProjectElement project = (ACSProjectElement) getDataModel(); | |||||
| _name.setText(project.getName()); | |||||
| // Name. | |||||
| BuildData data = (BuildData) getDataModel(); | |||||
| _name.setText(data.getProjectName()); | |||||
| // Steps. | |||||
| List steps = data.getOptionalSteps(); | |||||
| if(steps != null) { | |||||
| for(int i = 0; i < _selections.length; i++) { | |||||
| _selections[i].setSelected(steps.contains(OPTIONS[i])); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -105,8 +146,39 @@ public class ProjectSetupStep extends AbstractWizardStep { | |||||
| * | * | ||||
| */ | */ | ||||
| public void updateDataModel() { | public void updateDataModel() { | ||||
| ACSProjectElement project = (ACSProjectElement) getDataModel(); | |||||
| project.setName(_name.getText()); | |||||
| // Name. | |||||
| BuildData data = (BuildData) getDataModel(); | |||||
| data.setProjectName(_name.getText()); | |||||
| // Steps. | |||||
| List steps = new ArrayList(); | |||||
| for(int i = 0; i < _selections.length; i++) { | |||||
| if(_selections[i].isSelected()) { | |||||
| steps.add(OPTIONS[i]); | |||||
| } | |||||
| } | |||||
| data.setOptionalSteps(steps); | |||||
| } | } | ||||
| /** | |||||
| * Get the id of the next step. | |||||
| * | |||||
| * @return ID of next step. | |||||
| */ | |||||
| public String getNext() { | |||||
| return ((BuildStateMachine)getDataModel().getStateMachine()). | |||||
| getNext(this, getDataModel()); | |||||
| } | |||||
| /** | |||||
| * Get the id of the previous step. | |||||
| * | |||||
| * @return Previous step. | |||||
| */ | |||||
| public String getPrevious() { | |||||
| return ((BuildStateMachine)getDataModel().getStateMachine()). | |||||
| getPrevious(this, getDataModel()); | |||||
| } | |||||
| } | } | ||||
| @@ -0,0 +1,115 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.gui.wizard.build; | |||||
| import org.apache.tools.ant.gui.wizard.AbstractWizardStep; | |||||
| import javax.swing.*; | |||||
| import java.awt.event.ActionListener; | |||||
| import java.awt.event.ActionEvent; | |||||
| import org.apache.tools.ant.gui.acs.*; | |||||
| import java.util.*; | |||||
| /** | |||||
| * Step for selecting whether a new project is being created, or | |||||
| * if an existing one is being imported. | |||||
| * | |||||
| * @version $Revision$ | |||||
| * @author Simeon Fitch | |||||
| */ | |||||
| public class ProjectTypeStep extends AbstractWizardStep { | |||||
| private JRadioButton _isNew = null; | |||||
| private JRadioButton _isImport = null; | |||||
| /** | |||||
| * Initialize the display. | |||||
| * | |||||
| */ | |||||
| protected void init() { | |||||
| setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); | |||||
| ButtonGroup group = new ButtonGroup(); | |||||
| _isNew = new JRadioButton( | |||||
| getResources().getString(getID() + ".isNewLabel")); | |||||
| group.add(_isNew); | |||||
| add(_isNew); | |||||
| _isImport = new JRadioButton( | |||||
| getResources().getString(getID() + ".isImportLabel")); | |||||
| group.add(_isImport); | |||||
| add(_isImport); | |||||
| // XXX Not implemented yet. | |||||
| _isImport.setEnabled(false); | |||||
| _isImport.setToolTipText("Not implemented yet."); | |||||
| } | |||||
| /** | |||||
| * Called when the step should refresh its display based on the | |||||
| * current model setting. | |||||
| * | |||||
| */ | |||||
| public void updateDisplay() { | |||||
| BuildData data = (BuildData) getDataModel(); | |||||
| _isNew.setSelected(data.isNewProject()); | |||||
| } | |||||
| /** | |||||
| * Called when the step should update the data model based on the | |||||
| * settings of its widgets. | |||||
| * | |||||
| */ | |||||
| public void updateDataModel() { | |||||
| BuildData data = (BuildData) getDataModel(); | |||||
| data.setNewProject(_isNew.isSelected()); | |||||
| } | |||||
| } | |||||