Browse Source

Added more panels to build wizard, and created state machine framework.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268476 13f79535-47bb-0310-9956-ffa450edef68
master
metasim 24 years ago
parent
commit
18931f719f
17 changed files with 1397 additions and 122 deletions
  1. +2
    -4
      src/antidote/org/apache/tools/ant/gui/Main.java
  2. +43
    -5
      src/antidote/org/apache/tools/ant/gui/resources/buildFileWizard.properties
  3. +23
    -46
      src/antidote/org/apache/tools/ant/gui/wizard/AbstractWizardStep.java
  4. +108
    -0
      src/antidote/org/apache/tools/ant/gui/wizard/DefaultStateMachine.java
  5. +82
    -0
      src/antidote/org/apache/tools/ant/gui/wizard/StateMachine.java
  6. +26
    -30
      src/antidote/org/apache/tools/ant/gui/wizard/Wizard.java
  7. +79
    -0
      src/antidote/org/apache/tools/ant/gui/wizard/WizardData.java
  8. +16
    -29
      src/antidote/org/apache/tools/ant/gui/wizard/WizardStep.java
  9. +159
    -0
      src/antidote/org/apache/tools/ant/gui/wizard/build/BuildData.java
  10. +141
    -0
      src/antidote/org/apache/tools/ant/gui/wizard/build/BuildStateMachine.java
  11. +116
    -0
      src/antidote/org/apache/tools/ant/gui/wizard/build/CompileStep.java
  12. +110
    -0
      src/antidote/org/apache/tools/ant/gui/wizard/build/FinishStep.java
  13. +116
    -0
      src/antidote/org/apache/tools/ant/gui/wizard/build/JARStep.java
  14. +116
    -0
      src/antidote/org/apache/tools/ant/gui/wizard/build/JavaDocStep.java
  15. +65
    -0
      src/antidote/org/apache/tools/ant/gui/wizard/build/OptionalStep.java
  16. +80
    -8
      src/antidote/org/apache/tools/ant/gui/wizard/build/ProjectSetupStep.java
  17. +115
    -0
      src/antidote/org/apache/tools/ant/gui/wizard/build/ProjectTypeStep.java

+ 2
- 4
src/antidote/org/apache/tools/ant/gui/Main.java View File

@@ -55,6 +55,7 @@ package org.apache.tools.ant.gui;
import org.apache.tools.ant.gui.core.*;
import org.apache.tools.ant.gui.util.XMLHelper;
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.command.LoadFileCmd;
import org.apache.tools.ant.gui.event.EventBus;
@@ -115,10 +116,7 @@ public class Main {
}
else {
// 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
// it will launch the regular antidote screen with the
// results of the wizard.


+ 43
- 5
src/antidote/org/apache/tools/ant/gui/resources/buildFileWizard.properties View File

@@ -13,10 +13,10 @@ help=Help
###########################################################
# 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.title=Create new build file
@@ -29,7 +29,21 @@ and the types of build options you want included.\n\n\
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
@@ -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.
setup.nameLabel=Project Name:
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.description=Click "Finish" to save your build file definition.
finish.instructions=You are done!\n\nClick "Finish" to complete your new\


+ 23
- 46
src/antidote/org/apache/tools/ant/gui/wizard/AbstractWizardStep.java View File

@@ -76,11 +76,7 @@ public abstract class AbstractWizardStep extends JComponent
/** Description of the step. */
private String _description = null;
/** 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.
@@ -161,41 +157,6 @@ public abstract class AbstractWizardStep extends JComponent
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
@@ -204,7 +165,7 @@ public abstract class AbstractWizardStep extends JComponent
*
* @param model Data model to edit.
*/
public void setDataModel(Object model) {
public void setDataModel(WizardData model) {
_model = model;
}

@@ -213,7 +174,7 @@ public abstract class AbstractWizardStep extends JComponent
*
* @return Current data model.
*/
public Object getDataModel() {
public WizardData getDataModel() {
return _model;
}

@@ -233,6 +194,26 @@ public abstract class AbstractWizardStep extends JComponent
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.
*
@@ -242,10 +223,6 @@ public abstract class AbstractWizardStep extends JComponent
StringBuffer buf = new StringBuffer(getClass().getName());
buf.append("[id=");
buf.append(getID());
buf.append(",prev=");
buf.append(getPrevious());
buf.append(",next=");
buf.append(getNext());
buf.append("]");
return buf.toString();
}


+ 108
- 0
src/antidote/org/apache/tools/ant/gui/wizard/DefaultStateMachine.java View File

@@ -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;
}
}

+ 82
- 0
src/antidote/org/apache/tools/ant/gui/wizard/StateMachine.java View File

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

+ 26
- 30
src/antidote/org/apache/tools/ant/gui/wizard/Wizard.java View File

@@ -70,9 +70,8 @@ import java.util.*;
* @author Simeon Fitch
*/
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. */
private JPanel _stepContainer = null;
/** Layout manager for all the step panels. */
@@ -87,8 +86,6 @@ public class Wizard extends JComponent {
private JProgressBar _progress = null;
/** Widget for navigating through steps. */
private WizardNavigator _nav = null;
/** The data model to pass on to each step. */
private Object _model = null;
/** The current Wizard step. */
private WizardStep _curr = null;
/** The set of wizard listeners. */
@@ -97,17 +94,15 @@ public class Wizard extends JComponent {
/**
* 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());
_resources = resources;
_model = dataModel;
_data = data;

_progress = new JProgressBar();
_progress.setBorder(BorderFactory.createTitledBorder(
_resources.getString("progress")));
_data.getResources().getString("progress")));
_progress.setStringPainted(true);
add(_progress, BorderLayout.NORTH);

@@ -126,7 +121,7 @@ public class Wizard extends JComponent {
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

scroller.setBorder(BorderFactory.createTitledBorder(
_resources.getString("help")));
_data.getResources().getString("help")));
add(scroller, BorderLayout.WEST);

_stepContainer = new JPanel(_layout = new CardLayout());
@@ -136,30 +131,23 @@ public class Wizard extends JComponent {

add(_stepContainer, BorderLayout.CENTER);

_nav = new ButtonNavigator(_resources);
_nav = new ButtonNavigator(_data.getResources());
_nav.addNavigatorListener(new NavHandler());
((ButtonNavigator)_nav).setBorder(BorderFactory.createEtchedBorder());
add((ButtonNavigator)_nav, BorderLayout.SOUTH);

String[] steps = _resources.getStringArray("steps");
String[] steps = _data.getResources().getStringArray("steps");
_progress.setMaximum(steps.length - 1);
try {
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();
step.setResources(_resources);
step.setResources(_data.getResources());
step.setID(steps[i]);
step.setTitle(_resources.getString(steps[i]+ ".title"));
step.setTitle(
_data.getResources().getString(steps[i]+ ".title"));
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);
_stepOrdering.add(step);
@@ -168,7 +156,7 @@ public class Wizard extends JComponent {
// Initialize the first screen with the data model.
if(steps.length > 0) {
WizardStep first = (WizardStep)_steps.get(steps[0]);
first.setDataModel(_model);
first.setDataModel(_data);
_curr = first;
showStep(first);
}
@@ -207,13 +195,13 @@ public class Wizard extends JComponent {
private void showStep(WizardStep step) {
if(step == null) return;

// Transfer data model (in case step wants to create a new one.
_curr.updateDataModel();
step.setDataModel(_curr.getDataModel());
// Update the title and description.
_stepContainer.setBorder(
BorderFactory.createTitledBorder(step.getTitle()));
BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder(step.getTitle()),
BorderFactory.createEmptyBorder(5, 15, 5, 15)));
_description.setText(step.getDescription());

_nav.setBackEnabled(step.getPrevious() != null);
@@ -233,21 +221,28 @@ public class Wizard extends JComponent {
/** Handler for actions invoked by wizard. */
private class NavHandler implements NavigatorListener {
public void nextStep() {
// Called to give data model chance to make changes to what is next.
_curr.updateDataModel();
String nextID = _curr.getNext();
if(nextID != null) {
showStep((WizardStep)_steps.get(nextID));
}
}
public void backStep() {
// Called to give data model chance to make changes to what is
// before.
_curr.updateDataModel();
String prevID = _curr.getPrevious();
if(prevID != null) {
showStep((WizardStep)_steps.get(prevID));
}
}
public void gotoStep(String stepID){
_curr.updateDataModel();
showStep((WizardStep) _steps.get(stepID));
}
public void cancel() {
_curr.updateDataModel();
Iterator it = _listeners.iterator();
while(it.hasNext()) {
WizardListener l = (WizardListener) it.next();
@@ -255,6 +250,7 @@ public class Wizard extends JComponent {
}
}
public void finish() {
_curr.updateDataModel();
Iterator it = _listeners.iterator();
while(it.hasNext()) {
WizardListener l = (WizardListener) it.next();


+ 79
- 0
src/antidote/org/apache/tools/ant/gui/wizard/WizardData.java View File

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

}

+ 16
- 29
src/antidote/org/apache/tools/ant/gui/wizard/WizardStep.java View File

@@ -109,33 +109,6 @@ public interface WizardStep {
*/
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
* that all steps initialized within a single wizard agree on the
@@ -143,14 +116,14 @@ public interface WizardStep {
*
* @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.
*
* @return Current data model.
*/
Object getDataModel();
WizardData getDataModel();

/**
* Get the component that should be displayed to the user for
@@ -175,4 +148,18 @@ public interface WizardStep {
*/
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();

}

+ 159
- 0
src/antidote/org/apache/tools/ant/gui/wizard/build/BuildData.java View File

@@ -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;

}

}

+ 141
- 0
src/antidote/org/apache/tools/ant/gui/wizard/build/BuildStateMachine.java View File

@@ -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;
}
}

+ 116
- 0
src/antidote/org/apache/tools/ant/gui/wizard/build/CompileStep.java View File

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

}

+ 110
- 0
src/antidote/org/apache/tools/ant/gui/wizard/build/FinishStep.java View File

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

}

+ 116
- 0
src/antidote/org/apache/tools/ant/gui/wizard/build/JARStep.java View File

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

}

+ 116
- 0
src/antidote/org/apache/tools/ant/gui/wizard/build/JavaDocStep.java View File

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

}

+ 65
- 0
src/antidote/org/apache/tools/ant/gui/wizard/build/OptionalStep.java View File

@@ -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 {

}

+ 80
- 8
src/antidote/org/apache/tools/ant/gui/wizard/build/ProjectSetupStep.java View File

@@ -58,7 +58,7 @@ import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridBagLayout;
import org.apache.tools.ant.gui.acs.*;
import java.util.*;

/**
* 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 {

/** 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. */
private JTextField _name = null;

/**
* Initialize the screen widgets.
*
*/
protected void init() {
setLayout(new BorderLayout());

@@ -82,11 +104,21 @@ public class ProjectSetupStep extends AbstractWizardStep {
p.add(new JLabel(getResources().getString(getID() + ".nameLabel")));
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);

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


+ 115
- 0
src/antidote/org/apache/tools/ant/gui/wizard/build/ProjectTypeStep.java View File

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

Loading…
Cancel
Save