ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From meta...@apache.org
Subject cvs commit: jakarta-ant/src/antidote/org/apache/tools/ant/gui/event DeleteElementEvent.java DtdDefinedElementSelectionEvent.java NewBaseElementEvent.java RefreshDisplayEvent.java
Date Wed, 28 Mar 2001 12:29:40 GMT
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 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.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:nick_home_account@yahoo.com">nick_home_account@yahoo.com</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 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.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:nick_home_account@yahoo.com">nick_home_account@yahoo.com</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 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.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:nick_home_account@yahoo.com">nick_home_account@yahoo.com</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 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.acs;
  
  /**
   * Provides menu infomation for a node.
   *
   * @version $Revision: 1.1 $
   * @author Nick Davis<a href="mailto:nick_home_account@yahoo.com">nick_home_account@yahoo.com</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 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 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:nick_home_account@yahoo.com">nick_home_account@yahoo.com</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 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 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 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 javax.swing.*;
  
  /**
   * A Dialog which asks for a new xml element's type.
   * 
   * @version $Revision: 1.1 $
   * @author Nick Davis<a href="mailto:nick_home_account@yahoo.com">nick_home_account@yahoo.com</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 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.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 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.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:nick_home_account@yahoo.com">nick_home_account@yahoo.com</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 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.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:nick_home_account@yahoo.com">nick_home_account@yahoo.com</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 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.core.*;
  import org.apache.tools.ant.gui.command.*;
  
  /**
   * Request to show the console pane
   *
   * @version $Revision: 1.1 $
   * @author Nick Davis<a href="mailto:nick_home_account@yahoo.com">nick_home_account@yahoo.com</a>
   */
  public class RefreshDisplayEvent extends AntEvent {
  	/**
  	 * Standard ctor.
  	 *
  	 * @param context application context.
  	 */
      public RefreshDisplayEvent(AppContext context) {
          super(context);
      }
  }
  
  
  

Mime
View raw message