Browse Source

Added rough ability to add new tasks (javac only) and properties.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268449 13f79535-47bb-0310-9956-ffa450edef68
master
metasim 24 years ago
parent
commit
b2abffd01e
7 changed files with 407 additions and 0 deletions
  1. +29
    -0
      src/antidote/org/apache/tools/ant/gui/acs/ACSFactory.java
  2. +8
    -0
      src/antidote/org/apache/tools/ant/gui/acs/ACSTaskElement.java
  3. +93
    -0
      src/antidote/org/apache/tools/ant/gui/command/NewPropertyCmd.java
  4. +94
    -0
      src/antidote/org/apache/tools/ant/gui/command/NewTaskCmd.java
  5. +91
    -0
      src/antidote/org/apache/tools/ant/gui/event/NewPropertyEvent.java
  6. +90
    -0
      src/antidote/org/apache/tools/ant/gui/event/NewTaskEvent.java
  7. +2
    -0
      src/antidote/org/apache/tools/ant/gui/resources/action.properties

+ 29
- 0
src/antidote/org/apache/tools/ant/gui/acs/ACSFactory.java View File

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


+ 8
- 0
src/antidote/org/apache/tools/ant/gui/acs/ACSTaskElement.java View File

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


+ 93
- 0
src/antidote/org/apache/tools/ant/gui/command/NewPropertyCmd.java View File

@@ -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
* <http://www.apache.org/>.
*/
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));
}
}
}

+ 94
- 0
src/antidote/org/apache/tools/ant/gui/command/NewTaskCmd.java View File

@@ -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
* <http://www.apache.org/>.
*/
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));
}
}
}

+ 91
- 0
src/antidote/org/apache/tools/ant/gui/event/NewPropertyEvent.java View File

@@ -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
* <http://www.apache.org/>.
*/
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];
}
}

+ 90
- 0
src/antidote/org/apache/tools/ant/gui/event/NewTaskEvent.java View File

@@ -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
* <http://www.apache.org/>.
*/
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];
}
}

+ 2
- 0
src/antidote/org/apache/tools/ant/gui/resources/action.properties View File

@@ -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, \


Loading…
Cancel
Save