metasim 01/01/15 11:47:24
Modified: src/antidote/org/apache/tools/ant/gui Antidote.java
Main.java
Added: src/antidote/org/apache/tools/ant/gui Args.java
Log:
Initial framework for a build-file wizzard.
Revision Changes Path
1.9 +2 -2
jakarta-ant/src/antidote/org/apache/tools/ant/gui/Antidote.java
Index: Antidote.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/src/antidote/org/apache/tools/ant/gui/Antidote.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Antidote.java 2001/01/08 19:43:06 1.8
+++ Antidote.java 2001/01/15 19:47:24 1.9
@@ -62,10 +62,10 @@
* The root class for the Ant GUI. Assembles all the graphical components
* based on the configuration files.
*
- * @version $Revision: 1.8 $
+ * @version $Revision: 1.9 $
* @author Simeon Fitch
*/
-public class Antidote extends JPanel {
+public class Antidote extends JComponent {
/** Source of application state data. */
private AppContext _context = null;
1.13 +57 -26
jakarta-ant/src/antidote/org/apache/tools/ant/gui/Main.java
Index: Main.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/src/antidote/org/apache/tools/ant/gui/Main.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- Main.java 2001/01/11 19:20:46 1.12
+++ Main.java 2001/01/15 19:47:24 1.13
@@ -54,8 +54,11 @@
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.wizzard.Wizzard;
+import org.apache.tools.ant.gui.wizzard.WizzardListener;
import org.apache.tools.ant.gui.command.LoadFileCmd;
import org.apache.tools.ant.gui.event.EventBus;
+import org.apache.tools.ant.gui.acs.ACSFactory;
import javax.swing.*;
import java.awt.BorderLayout;
import java.io.File;
@@ -63,7 +66,7 @@
/**
* Launch point for the Antidote GUI. Configurs it as an application.
*
- * @version $Revision: 1.12 $
+ * @version $Revision: 1.13 $
* @author Simeon Fitch
*/
public class Main {
@@ -75,29 +78,64 @@
public static void main(String[] args) {
XMLHelper.init();
+ Args settings = new Args(args);
+
+
try {
JFrame f = new JFrame("Antidote");
+ f.setDefaultCloseOperation(3 /*JFrame.EXIT_ON_CLOSE*/);
AppContext context = new AppContext(f);
- EventResponder resp = new EventResponder(context);
- Antidote gui = new Antidote(context);
- f.setDefaultCloseOperation(3 /*JFrame.EXIT_ON_CLOSE*/);
- JMenuBar menu = context.getActions().createMenuBar();
- f.setJMenuBar(menu);
- f.getContentPane().add(BorderLayout.CENTER, gui);
- f.getContentPane().add(BorderLayout.NORTH,
- context.getActions().createToolBar());
-
- // Add the project selection menu.
- ProjectSelectionMenu ps = new ProjectSelectionMenu(context);
- ps.insertInto(menu);
-
- // Add debugging items.
- if(context.isDebugOn()) {
- context.getEventBus().addMember(
- EventBus.VETOING, new EventDebugMonitor());
+ if(!settings.isWizzardMode()) {
+ EventResponder resp = new EventResponder(context);
+ Antidote gui = new Antidote(context);
+
+ JMenuBar menu = context.getActions().createMenuBar();
+ f.setJMenuBar(menu);
+ f.getContentPane().add(BorderLayout.CENTER, gui);
+ f.getContentPane().add(BorderLayout.NORTH,
+ context.getActions().createToolBar());
+
+ // Add the project selection menu.
+ ProjectSelectionMenu ps = new ProjectSelectionMenu(context);
+ ps.insertInto(menu);
+
+ // Add debugging items.
+ if(settings.isDebugMode()) {
+ context.getEventBus().addMember(
+ EventBus.VETOING, new EventDebugMonitor());
+ }
+
+ // Load a build file if one is provided.
+ if(settings.getBuildFile() != null) {
+ LoadFileCmd load = new LoadFileCmd(context);
+ load.setFile(new File(settings.getBuildFile()));
+ load.run();
+ }
}
+ else {
+ // We are in wizzard mode. Create it.
+ ResourceManager resources = new ResourceManager(
+ "org.apache.tools.ant.gui.resources.buildFileWizzard");
+ Wizzard wiz = new Wizzard(
+ resources, ACSFactory.getInstance().createProject());
+ // XXX this is temporary for testing. Eventually
+ // it will launch the regular antidote screen with the
+ // results of the wizzard.
+ wiz.addWizzardListener(new WizzardListener() {
+ public void finished(Object model) {
+ System.out.println(model);
+ System.exit(0);
+ }
+ public void canceled() {
+ System.exit(0);
+ }
+
+ });
+ f.getContentPane().add(BorderLayout.CENTER, wiz);
+ }
+
ImageIcon icon =
context.getResources().loadImageIcon("icon-small.gif");
if(icon != null) {
@@ -106,17 +144,10 @@
else {
System.out.println("Application icon not found.");
}
- f.pack();
+ f.pack();
f.setVisible(true);
- // XXX this will change once full command line argument parsing
- // is supported.
- if(args.length > 0) {
- LoadFileCmd load = new LoadFileCmd(context);
- load.setFile(new File(args[0]));
- load.run();
- }
}
catch(Exception ex) {
ex.printStackTrace();
1.1
jakarta-ant/src/antidote/org/apache/tools/ant/gui/Args.java
Index: Args.java
===================================================================
/*
* 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 [EMAIL PROTECTED]
*
* 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;
import org.apache.tools.ant.gui.core.ResourceManager;
/**
* Class encapsulating the parsing of command-line arguments for Antidote.
*
* @version $Revision: 1.1 $
* @author Simeon Fitch
*/
public class Args {
private ResourceManager _resources = null;
private boolean _wizzardMode = false;
private String _fileName = null;
private boolean _debugMode = false;
/**
* Ctor for parsing command line arguments.
*
* @param args Arguments to parse.
*/
public Args(String[] args) {
for(int i = 0; i < args.length; i++) {
String arg = args[i];
if(i == args.length - 1 && !arg.startsWith("-")) {
_fileName = arg;
}
else if(arg.startsWith("-h")) {
System.out.println(getUsage());
System.exit(0);
}
else if(arg.equals("-wizzard")) {
_wizzardMode = true;
}
else if(arg.equals("-debug")) {
_debugMode = true;
}
else {
String msg = getResources().getMessage(
"invalidArg", new Object[] { arg });
abort(msg);
}
}
}
/**
* Get the resources, loading them if necessary.
*
* @return Loaded resources.
*/
private ResourceManager getResources() {
if(_resources == null) {
_resources = new ResourceManager(
"org.apache.tools.ant.gui.resources.args");
}
return _resources;
}
/**
* Print message and exit.
*
* @param error Error message to print.
*/
private void abort(String error) {
System.err.println(error);
System.err.println(getUsage());
System.exit(1);
}
/**
* Get the command line usage of Antidote.
*
* @return Command line usage help.
*/
public String getUsage() {
return getResources().getString("usage");
}
/**
* Get the build filename.
*
* @return Build file name.
*/
public String getBuildFile() {
return _fileName;
}
/**
* Determine if wizzard mode was requested for generating a new
* build file.
*
* @return True if wizzard mode, false otherwise.
*/
public boolean isWizzardMode() {
return _wizzardMode;
}
/**
* Determine if debug mode was requested.
*
* @return True if debug mode, false otherwise.
*/
public boolean isDebugMode() {
return _debugMode;
}
}