diff --git a/src/antidote/org/apache/tools/ant/gui/acs/ACSFactory.java b/src/antidote/org/apache/tools/ant/gui/acs/ACSFactory.java
index c0cfb938f..65c391c91 100644
--- a/src/antidote/org/apache/tools/ant/gui/acs/ACSFactory.java
+++ b/src/antidote/org/apache/tools/ant/gui/acs/ACSFactory.java
@@ -206,6 +206,35 @@ public class ACSFactory {
return retval;
}
+ /**
+ * Create a new task.
+ *
+ * @param target Target the task is assigned to.
+ * @return New, unnamed task.
+ */
+ public ACSTaskElement createTask(ACSTargetElement target) {
+ ACSTaskElement retval = (ACSTaskElement) target.
+ getOwnerDocument().createElement("task");
+ indent(target, 2);
+ target.appendChild(retval);
+ return retval;
+ }
+
+ /**
+ * Create a new property.
+ *
+ * @param node the Node to assign the property to.
+ * @return New, unnamed property.
+ */
+ public ACSPropertyElement createProperty(ACSElement node) {
+ ACSPropertyElement retval = (ACSPropertyElement) node.
+ getOwnerDocument().createElement("property");
+ // XXX fixme.
+ indent(node, 1);
+ node.appendChild(retval);
+ return retval;
+ }
+
/**
* Insert a new line and indentation at the end of the given
* node in preparation for a new element being added.
diff --git a/src/antidote/org/apache/tools/ant/gui/acs/ACSTaskElement.java b/src/antidote/org/apache/tools/ant/gui/acs/ACSTaskElement.java
index 5387fac5f..42ef9bc80 100644
--- a/src/antidote/org/apache/tools/ant/gui/acs/ACSTaskElement.java
+++ b/src/antidote/org/apache/tools/ant/gui/acs/ACSTaskElement.java
@@ -86,6 +86,14 @@ public class ACSTaskElement extends ACSTreeNodeElement {
return getTagName();
}
+ /**
+ * Set the task type.
+ *
+ * @param type Type name.
+ */
+ public void setTaskType(String type) {
+ setTag(type);
+ }
/**
* Get the attributes (named value mappings). This method is not named
diff --git a/src/antidote/org/apache/tools/ant/gui/command/NewPropertyCmd.java b/src/antidote/org/apache/tools/ant/gui/command/NewPropertyCmd.java
new file mode 100644
index 000000000..ee20902d2
--- /dev/null
+++ b/src/antidote/org/apache/tools/ant/gui/command/NewPropertyCmd.java
@@ -0,0 +1,93 @@
+/*
+ * 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
+ * .
+ */
+package org.apache.tools.ant.gui.command;
+import org.apache.tools.ant.gui.core.AppContext;
+import org.apache.tools.ant.gui.event.NewPropertyEvent;
+import org.apache.tools.ant.gui.acs.*;
+
+/**
+ * Command for creating a new propertyh.
+ *
+ * @version $Revision$
+ * @author Simeon Fitch
+ */
+public class NewPropertyCmd extends AbstractCommand {
+ /** New count for this session. Used to create default names,
+ * numbered as a convenience. */
+ private static int _count = 1;
+
+ /**
+ * Standard ctor.
+ *
+ * @param context Application context.
+ */
+ public NewPropertyCmd(AppContext context) {
+ super(context);
+ }
+
+ /**
+ * Create a new property and make it active.
+ *
+ */
+ public void run() {
+ ACSElement[] vals = getContext().getSelectionManager().
+ getSelectedElements();
+ if(vals != null && vals.length > 0) {
+ ACSPropertyElement retval =
+ ACSFactory.getInstance().createProperty(vals[vals.length - 1]);
+ getContext().getEventBus().postEvent(
+ new NewPropertyEvent(getContext(), retval));
+ }
+ }
+}
diff --git a/src/antidote/org/apache/tools/ant/gui/command/NewTaskCmd.java b/src/antidote/org/apache/tools/ant/gui/command/NewTaskCmd.java
new file mode 100644
index 000000000..e392fdcf9
--- /dev/null
+++ b/src/antidote/org/apache/tools/ant/gui/command/NewTaskCmd.java
@@ -0,0 +1,94 @@
+/*
+ * 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
+ * .
+ */
+package org.apache.tools.ant.gui.command;
+import org.apache.tools.ant.gui.core.AppContext;
+import org.apache.tools.ant.gui.event.NewTaskEvent;
+import org.apache.tools.ant.gui.acs.*;
+
+/**
+ * Command for creating a new task.
+ *
+ * @version $Revision$
+ * @author Simeon Fitch
+ */
+public class NewTaskCmd extends AbstractCommand {
+ /** New count for this session. Used to create default names,
+ * numbered as a convenience. */
+ private static int _count = 1;
+
+ /**
+ * Standard ctor.
+ *
+ * @param context Application context.
+ */
+ public NewTaskCmd(AppContext context) {
+ super(context);
+ }
+
+ /**
+ * Create a new task and make it active.
+ *
+ */
+ public void run() {
+ ACSTargetElement[] targets = getContext().getSelectionManager().
+ getSelectedTargets();
+ if(targets != null && targets.length > 0) {
+ ACSTaskElement retval =
+ ACSFactory.getInstance().createTask(targets[0]);
+ retval.setTaskType("javac");
+ getContext().getEventBus().postEvent(
+ new NewTaskEvent(getContext(), retval));
+ }
+ }
+}
diff --git a/src/antidote/org/apache/tools/ant/gui/event/NewPropertyEvent.java b/src/antidote/org/apache/tools/ant/gui/event/NewPropertyEvent.java
new file mode 100644
index 000000000..08a169dd4
--- /dev/null
+++ b/src/antidote/org/apache/tools/ant/gui/event/NewPropertyEvent.java
@@ -0,0 +1,91 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 1999, 2000 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
+ * .
+ */
+package org.apache.tools.ant.gui.event;
+import org.apache.tools.ant.gui.acs.ACSElement;
+import org.apache.tools.ant.gui.acs.ACSPropertyElement;
+import org.apache.tools.ant.gui.core.AppContext;
+
+/**
+ * Event fired when a new property is created.
+ *
+ * @version $Revision$
+ * @author Simeon Fitch
+ */
+public class NewPropertyEvent extends PropertySelectionEvent
+ implements NewElementEvent {
+
+ /**
+ * Standard ctor.
+ *
+ * @param context application context.
+ * @param prop the new property.
+ */
+ public NewPropertyEvent(AppContext context,
+ ACSPropertyElement prop) {
+ super(context, new ACSElement[] { prop });
+ if(prop == null) {
+ throw new IllegalArgumentException(
+ "A new property can't be null.");
+ }
+ }
+
+ /**
+ * Get the newly added task.
+ *
+ * @return New task.
+ */
+ public ACSElement getNewElement() {
+ return getSelectedProperties()[0];
+ }
+}
diff --git a/src/antidote/org/apache/tools/ant/gui/event/NewTaskEvent.java b/src/antidote/org/apache/tools/ant/gui/event/NewTaskEvent.java
new file mode 100644
index 000000000..72a20ee03
--- /dev/null
+++ b/src/antidote/org/apache/tools/ant/gui/event/NewTaskEvent.java
@@ -0,0 +1,90 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 1999, 2000 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
+ * .
+ */
+package org.apache.tools.ant.gui.event;
+import org.apache.tools.ant.gui.acs.ACSElement;
+import org.apache.tools.ant.gui.acs.ACSTaskElement;
+import org.apache.tools.ant.gui.core.AppContext;
+
+/**
+ * Event fired when a new target is created.
+ *
+ * @version $Revision$
+ * @author Simeon Fitch
+ */
+public class NewTaskEvent extends TaskSelectionEvent
+ implements NewElementEvent {
+
+ /**
+ * Standard ctor.
+ *
+ * @param context application context.
+ * @param target the new task.
+ */
+ public NewTaskEvent(AppContext context,
+ ACSTaskElement task) {
+ super(context, new ACSElement[] { task });
+ if(task == null) {
+ throw new IllegalArgumentException("A new task can't be null.");
+ }
+ }
+
+ /**
+ * Get the newly added task.
+ *
+ * @return New task.
+ */
+ public ACSElement getNewElement() {
+ return getSelectedTasks()[0];
+ }
+}
diff --git a/src/antidote/org/apache/tools/ant/gui/resources/action.properties b/src/antidote/org/apache/tools/ant/gui/resources/action.properties
index 2258fa4eb..8302340dd 100644
--- a/src/antidote/org/apache/tools/ant/gui/resources/action.properties
+++ b/src/antidote/org/apache/tools/ant/gui/resources/action.properties
@@ -126,6 +126,7 @@ newTask.name=New Task
newTask.shortDescription=Create a new task under the selected target
newTask.icon=new-task.gif
newTask.enabled=false
+newTask.command=org.apache.tools.ant.gui.command.NewTaskCmd
newTask.enableOn=\
org.apache.tools.ant.gui.event.TargetSelectionEvent
newTask.disableOn=\
@@ -137,6 +138,7 @@ newTask.disableOn=\
newProperty.name=New Property
newProperty.shortDescription=Create a new property under the selected element
newProperty.icon=new-property.gif
+newProperty.command=org.apache.tools.ant.gui.command.NewPropertyCmd
newProperty.enabled=false
newProperty.enableOn=\
org.apache.tools.ant.gui.event.ProjectSelectedEvent, \