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()); | |||||
} | |||||
} |