metasim     01/03/28 04:29:40

  Added:       src/antidote/org/apache/tools/ant/gui/acs
                        ACSDocumentType.java ACSDtdDefinedElement.java
                        ACSDtdDefinedElementBeanInfo.java
                        ACSInfoProvider.java project-ext.dtd project.dtd
               src/antidote/org/apache/tools/ant/gui/command
                        DeleteElementCmd.java NewElementCmd.java
                        NewElementDlg.java
               src/antidote/org/apache/tools/ant/gui/event
                        DeleteElementEvent.java
                        DtdDefinedElementSelectionEvent.java
                        NewBaseElementEvent.java RefreshDisplayEvent.java
  Log:
  Applied Nick Davis' patch to support generic elements based on an Ant DTD.
  
  Revision  Changes    Path
  1.1                  
jakarta-ant/src/antidote/org/apache/tools/ant/gui/acs/ACSDocumentType.java
  
  Index: ACSDocumentType.java
  ===================================================================
  /*
   * 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 [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.acs;
  import java.io.*;
  import java.net.*;
  import java.util.*;
  import org.w3c.dom.*;
  import javax.xml.parsers.*;
  import org.xml.sax.SAXException;
  import org.xml.sax.InputSource;
  import com.sun.xml.parser.Parser;
  import com.sun.xml.parser.DtdEventListener;
  import com.sun.xml.parser.ValidatingParser;
  import com.sun.xml.tree.*;
  import com.sun.xml.parser.Resolver;
  
  /**
   * Reads the ANT DTD and provides information about it.
   *
   * @version $Revision: 1.1 $
   * @author Nick Davis<a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
   */
  public class ACSDocumentType extends java.lang.Object {
      /** True if the DTD has been loaded */
      private boolean isInit = false;
      /** Hold the DTD elements */
      private HashMap elementMap = new HashMap();
      /** XML document used to load the DTD */
      final static String XMLDOC = 
          "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
          "<!DOCTYPE project SYSTEM \"file:/project.dtd\">" +
          "<project name=\"sample-project\">" + 
          "</project>";
  
      /**
       * Standard ctor.
       */
      public ACSDocumentType() {
      }
      
      /**
       * Loads the DTD if not already loaded.
       */
      public void init() {
          // Return if already inited. 
          if (isInit) {
              return;
          }
          
          try {
              // Setup the parser
              Parser p = new Parser();
              p.setEntityResolver(new ACSResolver());
  
              // Setup the builder
              XmlDocumentBuilder builder = new XmlDocumentBuilder();
              SimpleElementFactory fact = new SimpleElementFactory();
              fact.addMapping(new Properties(),
                  ACSDocumentType.class.getClassLoader());
              builder.setElementFactory(fact);
              builder.setParser(p);
  
              DtdHandler dtdh = new DtdHandler();
              p.setDTDHandler(dtdh);
  
              // Create the default xml file
              InputSource xmldoc = new InputSource(
                  new ByteArrayInputStream(XMLDOC.getBytes()));
              
              // Parse the document
              p.parse(xmldoc);
              
              isInit = true;
          } catch (Exception e) {
              System.out.println(e);
          }
      }
      
      /**
       * Returns the dtd element.
       *
       * @param name the element name
       */
      public DtdElement findElement(String name) {
          return (DtdElement) elementMap.get(name);
      }
      
      /**
       * Class which represents a DTD element.
       */
      static class DtdElement {
          private String _name;
          private String[] _contentModel;
          private HashMap _map = new HashMap();
          
          public String getName() {
              return _name;
          }
          public void setName(String name) {
              _name = name;
          }
          public String[] getContentModel() {
              return _contentModel;
          }
          public void setContentModel(String[] model) {
              _contentModel = model;
          }
          public HashMap getMap() {
              return _map;
          }
      }
      
      /**
       * Class which represents a DTD attribute.
       */
      static class DtdAttribute {
          private String _name;
          private String _type;
          private String[] _options;
          private String _defaultValue;
          private boolean _isFixed;
          private boolean _isRequired;
          
          public String getName() {
              return _name;
          }
          public void setName(String name) {
              _name = _name;
          }
          public String getType() {
              return _type;
          }
          public void setType(String type) {
              _name = type;
          }
          public String getDefaultValue() {
              return _defaultValue;
          }
          public void setDefaultValue(String value) {
              _defaultValue = value;
          }
          public String[] getOptions() {
              return _options;
          }
          public void setOptions(String[] s) {
              _options = s;
          }
          public boolean isFixed() {
              return _isFixed;
          }
          public void setFixed(boolean value) {
              _isFixed = value;
          }
          public boolean isRequired() {
              return _isRequired;
          }
          public void setRequired(boolean value) {
              _isRequired = value;
          }
      }
  
      /**
       * When parsing XML documents, DTD related events are signaled through
       * this interface. 
       */
      class DtdHandler implements DtdEventListener {
          public void externalDtdDecl (
              String publicId,
              String systemId)
              throws SAXException { }
          
          public void internalDtdDecl (
              String internalSubset)
              throws SAXException { }
          
          public void internalEntityDecl (
              String name,
              String value)
              throws SAXException { }
          
          public void externalEntityDecl (
              String name,
              String publicId,
              String systemId)
              throws SAXException { }
          
          public void endDtd ()
              throws SAXException { }
          
          public void notationDecl (
              String name,
              String publicId,
              String systemId)
              throws SAXException { }
          
          public void unparsedEntityDecl (
              String name,
              String publicId,
              String systemId,
              String notationName)
              throws SAXException { }
              
          public void startDtd (
              String rootName
          ) throws SAXException
          {
              elementMap.clear();
          }
          
          /**
           * Reports an attribute declaration found within the DTD.
           *
           * @param elementName The name of the element to which the attribute
           *    applies; this includes a namespace prefix if one was used within
           *    the DTD.
           * @param attributeName The name of the attribute being declared; this
           *    includes a namespace prefix if one was used within the DTD.
           * @param attributeType The type of the attribute, either CDATA, 
NMTOKEN,
           *    NMTOKENS, ENTITY, ENTITIES, NOTATION, ID, IDREF, or IDREFS as
           *    defined in the XML specification; or null for enumerations.
           * @param options When attributeType is null or NOTATION, this is an
           *    array of the values which are permitted; it is otherwise null.
           * @param defaultValue When not null, this provides the default value
           *    of this attribute.
           * @param isFixed When true, the defaultValue is the only legal value.
           *    (Precludes isRequired.)
           * @param isRequired When true, the attribute value must be provided
           *    for each element of the named type.  (Precludes isFixed.)
           */
          public void attributeDecl (
              String            elementName,
              String            attributeName,
              String            attributeType,
              String            options [],
              String            defaultValue,
              boolean           isFixed,
              boolean           isRequired
          ) throws SAXException
          {
              // Try to find the element.
              DtdElement e = (DtdElement) elementMap.get(elementName);
              if (e == null) {
                  throw new SAXException("element " + elementName +
                  " not declared before attributes");
              }
              
              // Update the element's attribute.
              DtdAttribute attrib = new DtdAttribute();
              attrib.setName(attributeName);
              attrib.setType(attributeType);
              attrib.setFixed(isFixed);
              attrib.setRequired(isRequired);
              attrib.setDefaultValue(defaultValue);
              attrib.setOptions(options);
              e.getMap().put(attrib.getName(), e);
          }
  
          /**
           * Reports an element declaration found within the DTD.  The content
           * model will be a string such as "ANY", "EMPTY", "(#PCDATA|foo)*",
           * or "(caption?,tr*)".
           *
           * @param elementName The name of the element; this includes a 
namespace
           *    prefix if one was used within the DTD.
           * @param contentModel The content model as defined in the DTD, with
           *    any whitespace removed.
           */
          public void elementDecl (
              String elementName,
              String contentModel
          ) throws SAXException
          {
              DtdElement e = new DtdElement();
              e.setName(elementName);
  
              // Break the contentModel string into pieces.
              ArrayList list = new ArrayList();
              StringTokenizer st = new StringTokenizer(contentModel, "|()*");
              while (st.hasMoreTokens()) {
                  String s = st.nextToken();
                  if ( s.length() > 0 && !"EMPTY".equals(s) ) {
                      list.add(s);
                  }
              }            
              String[] array = new String[list.size()];
              list.toArray(array);
              e.setContentModel(array);
              
              // Update the map
              elementMap.put(e.getName(), e);
          }
      }
      
      /**
       * We provide the location for the ant dtds.
       */
      class ACSResolver implements org.xml.sax.EntityResolver {
          
          /**
           * We process the project.dtd and project-ext.dtd.
           *
           * @param name Used to find alternate copies of the entity, when
           *    this value is non-null; this is the XML "public ID".
           * @param uri Used when no alternate copy of the entity is found;
           *    this is the XML "system ID", normally a URI.
           */
          public InputSource resolveEntity (
              String publicId,
              String systemId)
              throws SAXException, IOException {
                  
              final String PROJECT = "project.dtd";
              final String PROJECTEXT = "project-ext.dtd";
              InputStream result = null;
              
              // Is it the project.dtd?
              if (systemId.indexOf(PROJECT) != -1) {
                  try {
                      // Look for it as a resource
                      result = getClass().getResourceAsStream(PROJECT);
                  } catch (Exception e) {}
              }
              // Is it the project-ext.dtd?
              if (systemId.indexOf(PROJECTEXT) != -1) {
                  try {
                      // Look for it as a resource
                      result = getClass().getResourceAsStream(PROJECTEXT);
                  } catch (Exception e) {}
              }
              if (result != null) {
                  return new InputSource(result);
              }
  
              // Otherwise, use the default impl.
              com.sun.xml.parser.Resolver r = new com.sun.xml.parser.Resolver();
              return r.resolveEntity(publicId, systemId);
          }
      }
  }
  
  
  
  1.1                  
jakarta-ant/src/antidote/org/apache/tools/ant/gui/acs/ACSDtdDefinedElement.java
  
  Index: ACSDtdDefinedElement.java
  ===================================================================
  /*
   * 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 [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.acs;
  import org.apache.tools.ant.gui.command.NewElementCmd;
  import org.w3c.dom.*;
  import java.beans.*;
  import java.util.*;
  
  /**
   * Element defined by the DTD.
   *
   * @version $Revision: 1.1 $
   * @author Nick Davis<a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
   */
  public class ACSDtdDefinedElement extends ACSTreeNodeElement
  implements ACSInfoProvider {
          
      /** Property name for the task type. */
      public static final String TASK_TYPE = "taskType";
      /** Property name for attributes. It's called "namedValues" so
       *  it doesn't collide with the Node.getAttributes() method. */
      public static final String NAMED_VALUES = "namedValues";
      /** The ANT DTD */
      static ACSDocumentType docType = new ACSDocumentType();
      /** Our menu string */
      public String[] menuString = null;
      
        /** 
         * Default ctor.
         * 
         */
      public ACSDtdDefinedElement() {
          // Load the DTD
          docType.init();
      }
  
        /** 
         * Get the task type.
         * 
         * @return Task type.
         */
      public String getTaskType() {
          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
           * getAttributes() because there is already a method of that name in
           * the Node interface.
         * 
         * @return Name-value mappings.
         */
      public Properties getNamedValues() {
          Properties retval = new Properties();
  
          NamedNodeMap attribs = getAttributes();
          for(int i = 0, len = attribs.getLength(); i < len; i++) {
              Node n = attribs.item(i);
              retval.setProperty(n.getNodeName(), n.getNodeValue());
          }
          return retval;
      }
  
  
        /** 
         * Set the attributes. This method sets the Node attirbutes using 
           * the given Map containing name-value pairs.
         * 
         * @param attributes New attribute set.
         */
      public void setNamedValues(Properties props) {
          // XXX this code really sucks. It is really annoying that the 
          // DOM interfaces don't have a general "setAttributes()" or
          // "removeAllAttributes()" method, but instead make you 
          // remove each attribute individually, or require you to figure
          // out what the differences are between the two. 
  
          // Although this is very inefficient, I'm taking the conceptually
          // simplistic approach to this and brute force removing the existing 
          // set and replacing it with a brand new set. If this becomes a 
          // performance concern (which I doubt it will) it can be optimized 
          // later.
  
          Properties old = getNamedValues();
  
          Enumeration enum = old.propertyNames();
          while(enum.hasMoreElements()) {
              String name = (String) enum.nextElement();
              removeAttribute(name);
          }
          
          enum = props.propertyNames();
          while(enum.hasMoreElements()) {
              String key = (String) enum.nextElement();
              setAttribute(key, props.getProperty(key));
          }
  
          firePropertyChange(NAMED_VALUES, old, props);
      }
      
      /**
       * Returns the menu items which may be used for this element.
       */
      public String[] getMenuString() {
          
          // If it already exists, use it.
          if (menuString != null) {
              return menuString;
          }
  
          // Find the DtdElement
          String name = getTagName();
          ACSDocumentType.DtdElement e =
              docType.findElement(name);
  
          if (e != null) {
              // Use the content model (all the possible
              // sub-elements) to create the menu.
              String[] temp = e.getContentModel();
              int size = (temp.length > 5) ? 5 : temp.length;
              menuString = new String[size+2];
              System.arraycopy(temp, 0, menuString, 0, size);
              
              // Add the delete and generic create commands
              menuString[menuString.length-1] = "deleteElement";
              menuString[menuString.length-2] = "newElement";
          }
          return menuString;
      }
      
      /**
       * Returns the string to use if an action ID is not found.
       * In our case, the newElement command is used.
       */
      public String getDefaultActionID() {
          return "newElement";
      }
      
      /**
       * Retuns a string array which contains this elements
       * possible children.  It is created from the DTD's
       * content model.
       */
      public String[] getPossibleChildren() {
          String name = getTagName();
          ACSDocumentType.DtdElement e =
              docType.findElement(name);
              
          if (e != null) {
              return e.getContentModel();
          }
          return null;
      }
  }
  
  
  
  
  1.1                  
jakarta-ant/src/antidote/org/apache/tools/ant/gui/acs/ACSDtdDefinedElementBeanInfo.java
  
  Index: ACSDtdDefinedElementBeanInfo.java
  ===================================================================
  /*
   * 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 [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.acs;
  import org.apache.tools.ant.gui.customizer.DynamicCustomizer;
  import java.beans.*;
  
  /**
   * BeanInfo for the ACSDtdDefinedElement class.
   * 
   * @version $Revision: 1.1 $
   * @author Nick Davis<a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
   */
  public class ACSDtdDefinedElementBeanInfo extends BaseBeanInfo {
        /** 
         * Default ctor.
         * 
         */
      public ACSDtdDefinedElementBeanInfo() {
      }
  
        /** 
         * Get the type that this BeanInfo represents.
         * 
         * @return Type.
         */
      public Class getType() {
          return ACSDtdDefinedElement.class;
      }
  
        /** 
         * Get the customizer type.
         * 
         * @return Customizer type.
         */
      public Class getCustomizerType() {
          return Customizer.class;
      }
  
        /** 
         * Get the property descriptors.
         * 
           * @return Property descriptors.
         */
      public PropertyDescriptor[] getPropertyDescriptors() {
          PropertyDescriptor[] retval = null;
  
          try {
              retval = new PropertyDescriptor[] {
                  new PropertyDescriptor(ACSDtdDefinedElement.TASK_TYPE, 
                                         ACSDtdDefinedElement.class,
                                         "getTaskType", null),
                  new PropertyDescriptor(ACSDtdDefinedElement.NAMED_VALUES, 
                      ACSDtdDefinedElement.class),
                  new PropertyDescriptor(ACSDtdDefinedElement.XML_STRING, 
                      ACSDtdDefinedElement.class,
                      "getXMLString", null)
              };
              int pos = 0;
              retval[pos++].setDisplayName(getResources().getString(
                  getClass(),ACSDtdDefinedElement.TASK_TYPE));
              retval[pos++].setDisplayName(getResources().getString(
                  getClass(),ACSDtdDefinedElement.NAMED_VALUES));
              retval[pos++].setDisplayName(getResources().getString(
                  getClass(),ACSDtdDefinedElement.XML_STRING));
              
              setSortingOrder(retval);
          } catch(IntrospectionException ex) { 
              ex.printStackTrace();
              throw new Error(ex.toString());
          }
              
          return retval;
      }
  
      /** Customizer for this bean info. */
      public static class Customizer extends DynamicCustomizer {
          public Customizer() {
              super(ACSDtdDefinedElement.class);
          }
      }
  }
  
  
  
  
  1.1                  
jakarta-ant/src/antidote/org/apache/tools/ant/gui/acs/ACSInfoProvider.java
  
  Index: ACSInfoProvider.java
  ===================================================================
  /*
   * 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 [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.acs;
  
  /**
   * Provides menu infomation for a node.
   *
   * @version $Revision: 1.1 $
   * @author Nick Davis<a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
   */
  public interface ACSInfoProvider {
      /**
       * Returns the menu items which may be used on this node.
       * If the strings are not valid action IDs, use
       * <code>getDefaultActionID</code> to find the action for the menu item.
       */
      public String[] getMenuString();
      /**
       * Returns the action ID to use for a menu item which does not
       * represent a valid action ID.
       */
      public String getDefaultActionID();
  }
  
  
  
  
  1.1                  
jakarta-ant/src/antidote/org/apache/tools/ant/gui/acs/project-ext.dtd
  
  Index: project-ext.dtd
  ===================================================================
  <?xml version="1.0" encoding="iso-8859-1"?>
  
  <!--
   Copyright (c) 2000 Michel CASABIANCA.  All Rights Reserved.
  
   Permission to use, copy, modify, and distribute this software and its
   documentation for any purpose and without fee or royalty is hereby
   granted, provided that both the above copyright notice and this
   permission notice appear in all copies of the software and
   documentation or portions thereof, including modifications, that you
   make.
  
   THIS SOFTWARE IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO
   REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE,
   BUT NOT LIMITATION, COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR
   THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY
   THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
   COPYRIGHT HOLDERS WILL BEAR NO LIABILITY FOR ANY USE OF THIS SOFTWARE
   OR DOCUMENTATION.
  -->
  
  <!-- project ext DTD for Ant -->
  <!-- 2000-04-03 -->
  
  <!ENTITY % ext "| xt">
  
  <!ELEMENT xt EMPTY>
  <!ATTLIST xt
            xml CDATA #REQUIRED
            xsl CDATA #REQUIRED
            out CDATA #REQUIRED>
  
  
  
  
  
  1.1                  
jakarta-ant/src/antidote/org/apache/tools/ant/gui/acs/project.dtd
  
  Index: project.dtd
  ===================================================================
  <?xml version="1.0" encoding="iso-8859-1"?>
  <!--
   Copyright (c) 2000 Michel CASABIANCA.  All Rights Reserved.
  
   Permission to use, copy, modify, and distribute this software and its
   documentation for any purpose and without fee or royalty is hereby
   granted, provided that both the above copyright notice and this
   permission notice appear in all copies of the software and
   documentation or portions thereof, including modifications, that you
   make.
  
   THIS SOFTWARE IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO
   REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE,
   BUT NOT LIMITATION, COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR
   THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY
   THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
   COPYRIGHT HOLDERS WILL BEAR NO LIABILITY FOR ANY USE OF THIS SOFTWARE
   OR DOCUMENTATION.
  -->
  <!-- project DTD for Ant -->
  <!-- 2000-04-03 -->
  
  <!ENTITY % ext-file SYSTEM "file:/project-ext.dtd">
  %ext-file;
  
  <!ELEMENT project (target | property | path)*>
  <!ATTLIST project
        name CDATA #REQUIRED
        default CDATA #REQUIRED
        basedir CDATA #REQUIRED
  >
  <!ELEMENT target (ant | available | chmod | copy | cvs | delete | deltree | 
echo | exec | expand | filter | get | gzip | fixcrlf | jar | java | javac | 
javadoc | keysubst | mkdir | property | rename | replace | rmic | tar | taskdef 
| tstamp | zip | path | classpath)*>
  <!ATTLIST target
        name CDATA #REQUIRED
        depends CDATA #IMPLIED
        if CDATA #IMPLIED
  >
  <!ELEMENT path (pathelement | path)*>
  <!ATTLIST path
        id CDATA #IMPLIED
        refid CDATA #IMPLIED
  >
  <!ELEMENT classpath (pathelement | path | fileset)*>
  <!ATTLIST classpath
        id CDATA #IMPLIED
        refid CDATA #IMPLIED
  >
  <!ELEMENT fileset (include | exclude)*>
  <!ATTLIST fileset
        dir CDATA #IMPLIED
  >
  <!ELEMENT exclude EMPTY>
  <!ATTLIST exclude
        name CDATA #REQUIRED
        unless CDATA #IMPLIED
  >
  <!ELEMENT include EMPTY>
  <!ATTLIST include
        name CDATA #REQUIRED
  >
  <!ELEMENT pathelement EMPTY>
  <!ATTLIST pathelement
        location CDATA #IMPLIED
        path CDATA #IMPLIED
  >
  <!ELEMENT property EMPTY>
  <!ATTLIST property
        name CDATA #IMPLIED
        value CDATA #IMPLIED
        resource CDATA #IMPLIED
        file CDATA #IMPLIED
  >
  <!ELEMENT ant EMPTY>
  <!ATTLIST ant
        antfile CDATA #IMPLIED
        dir CDATA #REQUIRED
        target CDATA #IMPLIED
  >
  <!ELEMENT available EMPTY>
  <!ATTLIST available
        property CDATA #REQUIRED
        classname CDATA #REQUIRED
        resource CDATA #REQUIRED
        file CDATA #REQUIRED
  >
  <!ELEMENT chmod EMPTY>
  <!ATTLIST chmod
        src CDATA #REQUIRED
        perm CDATA #REQUIRED
  >
  <!ELEMENT copy (fileset)*>
  <!ATTLIST copy
        file CDATA #IMPLIED
        todir CDATA #IMPLIED
        todir CDATA #IMPLIED
  >
  <!ELEMENT cvs EMPTY>
  <!ATTLIST cvs
        cvsRoot CDATA #REQUIRED
        dest CDATA #REQUIRED
        package CDATA #REQUIRED
        tag CDATA #IMPLIED
  >
  <!ELEMENT delete EMPTY>
  <!ATTLIST delete
        file CDATA #REQUIRED
  >
  <!ELEMENT deltree EMPTY>
  <!ATTLIST deltree
        dir CDATA #REQUIRED
  >
  <!ELEMENT echo EMPTY>
  <!ATTLIST echo
        message CDATA #REQUIRED
  >
  <!ELEMENT exec EMPTY>
  <!ATTLIST exec
        command CDATA #REQUIRED
        dir CDATA #REQUIRED
        os CDATA #IMPLIED
        output CDATA #REQUIRED
  >
  <!ELEMENT expand EMPTY>
  <!ATTLIST expand
        src CDATA #REQUIRED
        dest CDATA #REQUIRED
  >
  <!ELEMENT filter EMPTY>
  <!ATTLIST filter
        token CDATA #REQUIRED
        value CDATA #REQUIRED
  >
  <!ELEMENT get EMPTY>
  <!ATTLIST get
        src CDATA #REQUIRED
        dest CDATA #REQUIRED
        verbose CDATA #IMPLIED
  >
  <!ELEMENT gzip EMPTY>
  <!ATTLIST gzip
        src CDATA #REQUIRED
        zipfile CDATA #REQUIRED
  >
  <!ELEMENT fixcrlf EMPTY>
  <!ATTLIST fixcrlf
        srcdir CDATA #REQUIRED
        destDir CDATA #IMPLIED
        includes CDATA #IMPLIED
        excludes CDATA #IMPLIED
        cr CDATA #IMPLIED
        tab CDATA #IMPLIED
        eof CDATA #IMPLIED
  >
  <!ELEMENT jar EMPTY>
  <!ATTLIST jar
        jarfile CDATA #REQUIRED
        basedir CDATA #REQUIRED
        items CDATA #IMPLIED
        ignore CDATA #IMPLIED
        includes CDATA #IMPLIED
        excludes CDATA #IMPLIED
        defaultexcludes CDATA #IMPLIED
        manifest CDATA #IMPLIED
  >
  <!ELEMENT java EMPTY>
  <!ATTLIST java
        classname CDATA #REQUIRED
        args CDATA #IMPLIED
        fork CDATA #IMPLIED
        jvmargs CDATA #IMPLIED
  >
  <!ELEMENT javac (classpath | exclude | property)*>
  <!ATTLIST javac
        srcdir CDATA #REQUIRED
        destdir CDATA #REQUIRED
        includes CDATA #IMPLIED
        excludes CDATA #IMPLIED
        defaultexcludes CDATA #IMPLIED
        classpath CDATA #IMPLIED
        bootclasspath CDATA #IMPLIED
        extdirs CDATA #IMPLIED
        debug CDATA #IMPLIED
        optimize CDATA #IMPLIED
        deprecation CDATA #IMPLIED
        filtering CDATA #IMPLIED
  >
  <!ELEMENT javadoc EMPTY>
  <!ATTLIST javadoc
        sourcepath CDATA #REQUIRED
        destdir CDATA #REQUIRED
        sourcefiles CDATA #IMPLIED
        packagenames CDATA #IMPLIED
        classpath CDATA #IMPLIED
        bootclasspath CDATA #IMPLIED
        extdirs CDATA #IMPLIED
        overview CDATA #IMPLIED
        public CDATA #IMPLIED
        protected CDATA #IMPLIED
        package CDATA #IMPLIED
        private CDATA #IMPLIED
        old CDATA #IMPLIED
        verbose CDATA #IMPLIED
        locale CDATA #IMPLIED
        encoding CDATA #IMPLIED
        version CDATA #IMPLIED
        use CDATA #IMPLIED
        author CDATA #IMPLIED
        splitindex CDATA #IMPLIED
        windowtitle CDATA #IMPLIED
        doctitle CDATA #IMPLIED
        header CDATA #IMPLIED
        footer CDATA #IMPLIED
        bottom CDATA #IMPLIED
        link CDATA #IMPLIED
        linkoffline CDATA #IMPLIED
        group CDATA #IMPLIED
        nodedeprecated CDATA #IMPLIED
        nodedeprecatedlist CDATA #IMPLIED
        notree CDATA #IMPLIED
        noindex CDATA #IMPLIED
        nohelp CDATA #IMPLIED
        nonavbar CDATA #IMPLIED
        serialwarn CDATA #IMPLIED
        helpfile CDATA #IMPLIED
        stylesheetfile CDATA #IMPLIED
        charset CDATA #IMPLIED
        docencoding CDATA #IMPLIED
  >
  <!ELEMENT keysubst EMPTY>
  <!ATTLIST keysubst
        src CDATA #REQUIRED
        dest CDATA #REQUIRED
        sep CDATA #IMPLIED
        keys CDATA #REQUIRED
  >
  <!ELEMENT mkdir EMPTY>
  <!ATTLIST mkdir
        dir CDATA #REQUIRED
  >
  <!ELEMENT rename EMPTY>
  <!ATTLIST rename
        src CDATA #REQUIRED
        dest CDATA #REQUIRED
        replace CDATA #IMPLIED
  >
  <!ELEMENT replace EMPTY>
  <!ATTLIST replace
        file CDATA #REQUIRED
        token CDATA #REQUIRED
        value CDATA #IMPLIED
  >
  <!ELEMENT rmic EMPTY>
  <!ATTLIST rmic
        base CDATA #REQUIRED
        classname CDATA #REQUIRED
        filtering CDATA #IMPLIED
  >
  <!ELEMENT tar EMPTY>
  <!ATTLIST tar
        tarfile CDATA #REQUIRED
        basedir CDATA #REQUIRED
        includes CDATA #IMPLIED
        excludes CDATA #IMPLIED
        defaultexcludes CDATA #IMPLIED
  >
  <!ELEMENT taskdef EMPTY>
  <!ATTLIST taskdef
        name CDATA #REQUIRED
        classname CDATA #REQUIRED
  >
  <!ELEMENT tstamp EMPTY>
  <!ELEMENT zip EMPTY>
  <!ATTLIST zip
        zipfile CDATA #REQUIRED
        basedir CDATA #REQUIRED
        items CDATA #IMPLIED
        ignore CDATA #IMPLIED
        includes CDATA #IMPLIED
        excludes CDATA #IMPLIED
        defaultexcludes CDATA #IMPLIED
  >
  
  
  
  1.1                  
jakarta-ant/src/antidote/org/apache/tools/ant/gui/command/DeleteElementCmd.java
  
  Index: DeleteElementCmd.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.command;
  import java.util.EventObject;
  import javax.swing.JOptionPane;
  import org.w3c.dom.Node;
  import org.apache.tools.ant.gui.core.AppContext;
  import org.apache.tools.ant.gui.event.DeleteElementEvent;
  import org.apache.tools.ant.gui.acs.*;
  
  /**
   * Command for removing the selected element.
   * 
   * @version $Revision: 1.1 $
   * @author Nick Davis<a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
   */
  public class DeleteElementCmd extends AbstractCommand {
      
        /** 
         * Standard ctor.
         * 
         * @param context Application context.
         */ 
      public DeleteElementCmd(AppContext context) {
          super(context);
      }
  
      /** 
       * Delete the selected element.
       */
      public void run() {
          
          // Ask "Are you sure?"
          int option = JOptionPane.showConfirmDialog(null, "Are You Sure?",
              "Confirm Delete", JOptionPane.YES_NO_OPTION);
          
          if (option == JOptionPane.YES_OPTION) {
              // Find the element to remove
              ACSElement[] vals = getContext().getSelectionManager().
                  getSelectedElements();
              if(vals != null && vals.length > 0) {
                  Node item = vals[vals.length - 1];
                  
                  // Find the parent and remove the element.
                  Node parent = item.getParentNode();
                  parent.removeChild(item);
  
                  // Notify the tree the element was removed.
                  DeleteElementEvent event = new DeleteElementEvent(
                      getContext(), (ACSElement) parent);
                  getContext().getEventBus().postEvent(event);
              }
          }
      }
  }
  
  
  
  1.1                  
jakarta-ant/src/antidote/org/apache/tools/ant/gui/command/NewElementCmd.java
  
  Index: NewElementCmd.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.command;
  import java.util.EventObject;
  import javax.swing.AbstractButton;
  import javax.swing.Action;
  import org.apache.tools.ant.gui.core.AppContext;
  import org.apache.tools.ant.gui.event.NewBaseElementEvent;
  import org.apache.tools.ant.gui.event.RefreshDisplayEvent;
  import org.apache.tools.ant.gui.acs.*;
  import org.apache.tools.ant.gui.util.WindowUtils;
  import org.apache.tools.ant.gui.core.AntAction;
  
  /**
   * Command for creating a new propertyh.
   * 
   * @version $Revision: 1.1 $ 
   * @author Simeon Fitch 
   */
  public class NewElementCmd extends AbstractCommand {
      /** New count for this session. Used to create default names, 
       *  numbered as a convenience. */
      private static int _count = 1;
      private EventObject _event = null;
      
        /** 
         * Standard ctor.
         * 
         * @param context Application context.
         */ 
      public NewElementCmd(AppContext context, EventObject event) {
          super(context);
          _event = event;
      }
  
      /** 
       * Creates a new xml element based on the button which
       * was pressed.  The button text may contain the name
       * of the new element or a dialog box is presented which
       * asks the user for the element type.
       */
      public void run() {
  
          // Find which element is selected.
          ACSElement[] vals = getContext().getSelectionManager().
              getSelectedElements();
          if(vals == null || vals.length == 0) {
              return;
          }
              
          // Find the text of the button which was pressed
          // to determine the type of element to create.
          Object source = _event.getSource();
          if (!(source instanceof AbstractButton)) {
              return;
          }
          AbstractButton button = (AbstractButton) source;
          String name = button.getText();
  
          // Get the AntAction
          Action action = button.getAction();
          if (!(action instanceof AntAction)) {
              return;
          }
          AntAction antAction = (AntAction) action;
  
          ACSElement e = vals[vals.length - 1];
          
          // Should we prompt the user use the element type?
          if (antAction.getName().equals(name)) {
              
              // Display the dialog box.
              ACSDtdDefinedElement dtde = (ACSDtdDefinedElement) e;
              NewElementDlg dlg = new NewElementDlg(
                  getContext().getParentFrame(), true);
              dlg.setList(dtde.getPossibleChildren());
              dlg.pack();
              WindowUtils.centerWindow(dlg);
              dlg.setTitle("Select the new element type");
              dlg.setVisible(true);
          
              // Get the element type 
              if (dlg.getCancel()) {
                  name = "";
              } else {
                  name = dlg.getElementName();
              }
          }
  
          if (name.length() > 0) {
              // Create the new element
              ACSElement retval = 
                  ACSFactory.getInstance().createElement(e, name);
              getContext().getEventBus().postEvent(
                  new NewBaseElementEvent(getContext(),  retval));
          } else {
              // Request a refresh so the popup menu is removed 
              // from the display.
              getContext().getEventBus().postEvent(
                  new RefreshDisplayEvent(getContext()));
          }
      }
  }
  
  
  
  
  1.1                  
jakarta-ant/src/antidote/org/apache/tools/ant/gui/command/NewElementDlg.java
  
  Index: NewElementDlg.java
  ===================================================================
  /*
   * 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 [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.command;
  import javax.swing.*;
  
  /**
   * A Dialog which asks for a new xml element's type.
   * 
   * @version $Revision: 1.1 $
   * @author Nick Davis<a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
   */
  public class NewElementDlg extends javax.swing.JDialog {
      // Dialog's components
      private javax.swing.JPanel _southPanel;
      private javax.swing.JPanel _buttonPanel;
      private javax.swing.JButton _buttonOK;
      private javax.swing.JButton _buttonCancel;
      private javax.swing.JPanel _selectPanel;
      private javax.swing.JPanel _panelData;
      private javax.swing.JLabel _label;
      private javax.swing.JTextField _elementText;
      private javax.swing.JScrollPane _listScrollPane;
      private javax.swing.JList _elementList;
      /** set to true if cancel is pressed */
      private boolean _cancel = true;
      /** holds the element type */
      private String _elementName;
  
      /**
       * Creates new form NewElementDlg
       */
      public NewElementDlg(java.awt.Frame parent,boolean modal) {
          super(parent, modal);
          initComponents();
          enableButtons();
      }
      
      /**
       * Fills the listbox with the input list.
       */
      public void setList(String[] list) {
          if (list == null || list.length == 0) {
              _listScrollPane.setVisible(false);
          } else {
              _elementList.setListData(list);
          }
      }
      
      /**
       * Returns true if cancel was pressed
       */
      public boolean getCancel() {
          return _cancel;
      }
      
      /**
       * Returns the entered element type
       */
      public String getElementName() {
          return _elementName;
      }
  
      /**
       * Enable or disable buttons
       */
      private void enableButtons() {
          if (_elementText.getText().length() > 0) {
              _buttonOK.setEnabled(true);
          } else {
              _buttonOK.setEnabled(false);
          }
      }
      
      /**
       * This method is called from within the constructor to
       * initialize the form.
       */
      private void initComponents() {
          _southPanel = new javax.swing.JPanel();
          _buttonPanel = new javax.swing.JPanel();
          _buttonOK = new javax.swing.JButton();
          _buttonCancel = new javax.swing.JButton();
          _selectPanel = new javax.swing.JPanel();
          _panelData = new javax.swing.JPanel();
          _label = new javax.swing.JLabel();
          _elementText = new javax.swing.JTextField();
          _listScrollPane = new javax.swing.JScrollPane();
          _elementList = new javax.swing.JList();
          getContentPane().setLayout(new java.awt.BorderLayout(10, 10));
          addWindowListener(new java.awt.event.WindowAdapter() {
              public void windowClosing(java.awt.event.WindowEvent evt) {
                  closeDialog(evt);
              }
          }
          );
          
          _southPanel.setLayout(new java.awt.FlowLayout(2, 2, 0));
          _southPanel.setPreferredSize(new java.awt.Dimension(156, 50));
          _southPanel.setMinimumSize(new java.awt.Dimension(154, 50));
          
          _buttonPanel.setLayout(new java.awt.FlowLayout(1, 2, 0));
          _buttonPanel.setPreferredSize(new java.awt.Dimension(146, 50));
          _buttonPanel.setMinimumSize(new java.awt.Dimension(150, 50));
          _buttonPanel.setAlignmentY(0.0F);
          _buttonPanel.setAlignmentX(0.0F);
          
          _buttonOK.setText("OK");
          _buttonOK.setPreferredSize(new java.awt.Dimension(50, 30));
          _buttonOK.setMaximumSize(new java.awt.Dimension(50, 30));
          _buttonOK.setMargin(new java.awt.Insets(10, 10, 10, 10));
          _buttonOK.setMinimumSize(new java.awt.Dimension(50, 30));
          _buttonOK.addActionListener(new java.awt.event.ActionListener() {
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  clickOK(evt);
              }
          }
          );
          _buttonPanel.add(_buttonOK);
          _buttonCancel.setText("Cancel");
          _buttonCancel.setPreferredSize(new java.awt.Dimension(70, 30));
          _buttonCancel.setMaximumSize(new java.awt.Dimension(60, 30));
          _buttonCancel.setMargin(new java.awt.Insets(10, 10, 10, 10));
          _buttonCancel.setMinimumSize(new java.awt.Dimension(60, 30));
          _buttonCancel.addActionListener(new java.awt.event.ActionListener() {
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  clickCancel(evt);
              }
          }
          );
          _buttonPanel.add(_buttonCancel);
          _southPanel.add(_buttonPanel);
          getContentPane().add(_southPanel, java.awt.BorderLayout.SOUTH);
          _selectPanel.setLayout(new java.awt.BorderLayout(10, 10));
          _selectPanel.setBorder(new javax.swing.border.EtchedBorder());
          _label.setText("Element Type:");
          _label.setAlignmentX(0.5F);
          _panelData.add(_label);
          
          
          _elementText.setPreferredSize(new java.awt.Dimension(110, 25));
          _elementText.setMargin(new java.awt.Insets(2, 2, 2, 2));
          _elementText.setMinimumSize(new java.awt.Dimension(14, 25));
          _elementText.addKeyListener(new java.awt.event.KeyAdapter() {
              public void keyReleased(java.awt.event.KeyEvent evt) {
                  _elementTextKeyReleased(evt);
              }
          }
          );
          _panelData.add(_elementText);
          
          _selectPanel.add(_panelData, java.awt.BorderLayout.SOUTH);
          
          _elementList.setMaximumSize(new java.awt.Dimension(100, 20));
          _elementList.setMinimumSize(new java.awt.Dimension(10, 10));
          _elementList.addListSelectionListener(new 
javax.swing.event.ListSelectionListener() {
              public void valueChanged(javax.swing.event.ListSelectionEvent 
evt) {
                  itemSelected(evt);
              }
          }
          );
          _listScrollPane.setViewportView(_elementList);
          
          _selectPanel.add(_listScrollPane, java.awt.BorderLayout.CENTER);
          getContentPane().add(_selectPanel, java.awt.BorderLayout.CENTER);
          pack();
      }
  
      /** Called when a key is released */
      private void _elementTextKeyReleased(java.awt.event.KeyEvent evt) {
          enableButtons();
      }
  
      /** Called when an item is selected from the list */
      private void itemSelected(javax.swing.event.ListSelectionEvent evt) {
          _elementText.setText((String) _elementList.getSelectedValue());
          enableButtons();
      }
  
      /** Called when the Cancel button is pressed */
      private void clickCancel(java.awt.event.ActionEvent evt) {
          // Add your handling code here:
          setVisible(false);
          dispose();
          _cancel = true;
      }
  
      /** Called when the OK button is pressed */
      private void clickOK(java.awt.event.ActionEvent evt) {
          setVisible(false);
          dispose();
          _cancel = false;
          _elementName = _elementText.getText();
      }
  
      /** Closes the dialog */
      private void closeDialog(java.awt.event.WindowEvent evt) {
          setVisible(false);
          dispose();
      }
  
      /**
       * Test the dialog
       *
       * @param args the command line arguments
       */
      public static void main(String args[]) {
          new NewElementDlg(new javax.swing.JFrame(), true).show();
      }
  }
  
  
  
  1.1                  
jakarta-ant/src/antidote/org/apache/tools/ant/gui/event/DeleteElementEvent.java
  
  Index: DeleteElementEvent.java
  ===================================================================
  /*
   * 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 [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.event;
  import org.apache.tools.ant.gui.core.AppContext;
  import org.apache.tools.ant.gui.acs.ACSProjectElement;
  import org.apache.tools.ant.gui.acs.ACSElement;
  
  /**
   * FIX UP Nick
   */
  public class DeleteElementEvent extends AntEvent {
      
      ACSElement _element = null;
  
        /** 
         * Standard ctor.
         * 
         * @param context application context.
         */
      public DeleteElementEvent(AppContext context,ACSElement e) {
          super(context);
          if(e == null) {
              throw new IllegalArgumentException("A deleted element can't be 
null.");
          }
          _element = e;
      }
  
      /** 
       * Get the newly added project.
       * 
       * @return New project.
       */
      public ACSElement getDeletedElement() {
          return _element;
      }
  
  }
  
  
  
  1.1                  
jakarta-ant/src/antidote/org/apache/tools/ant/gui/event/DtdDefinedElementSelectionEvent.java
  
  Index: DtdDefinedElementSelectionEvent.java
  ===================================================================
  /*
   * 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 [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.event;
  import org.apache.tools.ant.gui.acs.ACSElement;
  import org.apache.tools.ant.gui.acs.ACSDtdDefinedElement;
  import org.apache.tools.ant.gui.core.AppContext;
  
  /**
   * Event indicating that a DtdDefined element was selected.
   *
   * @version $Revision: 1.1 $
   * @author Nick Davis<a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
   */
  public class DtdDefinedElementSelectionEvent extends ElementSelectionEvent {
        /** 
         * Standard ctor.
         * 
         * @param context application context.
           * @param selected the selected Elements.
         */
      public DtdDefinedElementSelectionEvent(AppContext context,ACSElement[] 
selected) {
          super(context, selected);
      }
  
      /** 
       * Get the selected properties.
       */
      public ACSDtdDefinedElement[] getSelectedProperties() {
          return (ACSDtdDefinedElement[]) 
getFiltered(ACSDtdDefinedElement.class);
      }
  
  }
  
  
  
  1.1                  
jakarta-ant/src/antidote/org/apache/tools/ant/gui/event/NewBaseElementEvent.java
  
  Index: NewBaseElementEvent.java
  ===================================================================
  /*
   * 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 [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.event;
  import org.apache.tools.ant.gui.core.AppContext;
  import org.apache.tools.ant.gui.acs.ACSProjectElement;
  import org.apache.tools.ant.gui.acs.ACSElement;
  
  /**
   * Event indicating that a new node was added.
   *
   * @version $Revision: 1.1 $
   * @author Nick Davis<a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
   */
  public class NewBaseElementEvent extends AntEvent implements NewElementEvent {
      
      ACSElement _element = null;
  
        /** 
         * Standard ctor.
         * 
         * @param context application context.
         */
      public NewBaseElementEvent(AppContext context,ACSElement e) {
          super(context);
          if(e == null) {
              throw new IllegalArgumentException("A new element can't be 
null.");
          }
          _element = e;
      }
  
      /** 
       * Get the element.
       * 
       * @return New project.
       */
      public ACSElement getNewElement() {
          return _element;
      }
  
  }
  
  
  
  1.1                  
jakarta-ant/src/antidote/org/apache/tools/ant/gui/event/RefreshDisplayEvent.java
  
  Index: RefreshDisplayEvent.java
  ===================================================================
  /*
   * 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 [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.event;
  
  import org.apache.tools.ant.gui.core.*;
  import org.apache.tools.ant.gui.command.*;
  
  /**
   * Request to show the console pane
   *
   * @version $Revision: 1.1 $
   * @author Nick Davis<a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
   */
  public class RefreshDisplayEvent extends AntEvent {
        /**
         * Standard ctor.
         *
         * @param context application context.
         */
      public RefreshDisplayEvent(AppContext context) {
          super(context);
      }
  }
  
  
  

Reply via email to