nicolaken    02/05/14 13:34:23

  Modified:    src/scratchpad/src/org/apache/cocoon/transformation/constrained
                        AbstractConstrainedTransformer.java
               src/scratchpad/src/org/apache/cocoon/transformation
                        Chart2SvgTransformer.java
               src/scratchpad/webapp/mount/charts/content/static
                        linechart.xml
               src/scratchpad/webapp/mount/charts/content samples.xml
               src/scratchpad/webapp/mount/charts sitemap.xmap
  Log:
  Tom Klaasen <[EMAIL PROTECTED]>
  is getting it to work.
  
  Revision  Changes    Path
  1.2       +285 -282  
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/transformation/constrained/AbstractConstrainedTransformer.java
  
  Index: AbstractConstrainedTransformer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/transformation/constrained/AbstractConstrainedTransformer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractConstrainedTransformer.java       8 Apr 2002 08:09:16 -0000       1.1
  +++ AbstractConstrainedTransformer.java       14 May 2002 20:34:22 -0000      1.2
  @@ -1,54 +1,42 @@
   /*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, 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  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" 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 name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - 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 (INCLU-
  - DING, 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 and was  originally created by
  - Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -
  + *  ============================================================================
  + *  The Apache Software License, Version 1.1
  + *  ============================================================================
  + *  Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  + *  Redistribution and use in source and binary forms, with or without modifica-
  + *  tion, 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  acknowledgment:  "This product includes  software
  + *  developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  + *  Alternately, this  acknowledgment may  appear in the software itself,  if
  + *  and wherever such third-party acknowledgments normally appear.
  + *  4. The names "Apache Cocoon" 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 name,  without prior written permission  of the
  + *  Apache Software Foundation.
  + *  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 (INCLU-
  + *  DING, 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 and was  originally created by
  + *  Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
  + *  Software Foundation, please see <http://www.apache.org/>.
  + */
   package org.apache.cocoon.transformation.constrained;
   
   import java.io.IOException;
  @@ -66,7 +54,7 @@
   import org.apache.cocoon.xml.XMLConsumer;
   import org.apache.cocoon.xml.XMLProducer;
   import org.apache.cocoon.transformation.*;
  -
  +import org.apache.cocoon.environment.SourceResolver;
   
   import org.xml.sax.ContentHandler;
   import org.xml.sax.EntityResolver;
  @@ -76,243 +64,258 @@
   import org.xml.sax.Locator;
   import org.xml.sax.ext.LexicalHandler;
   
  -
   /**
  - * This class is an abstract class from which you can extend your Transformer
  - * and write it in a way similar to AWT & Swing Event Handling.
  - * Part of this code is from the SQLTransformer of Donald Ball.
  - * @author <a href="mailto:[EMAIL PROTECTED]";>Nicola Ken Barozzi</a> 
  + *  This class is an abstract class from which you can extend your Transformer
  + *  and write it in a way similar to AWT & Swing Event Handling. Part of this
  + *  code is from the SQLTransformer of Donald Ball.
  + *
  + *@author     <a href="mailto:[EMAIL PROTECTED]";>Nicola Ken Barozzi</a>
  + *@created    14 mei 2002
    */
   public abstract class AbstractConstrainedTransformer
  -        extends AbstractTransformer {
  +              extends AbstractTransformer {
   
  -    private String           my_uri;
  -    private String           my_prefix = "unknown";
  -    private String           my_name;
  -    private ArrayList        myUriOpenElements             = new ArrayList();
  -    private ArrayList        globalOpenElements            = new ArrayList();
  -    private ArrayList        globalOpenElementsAttributes  = new ArrayList();
  -    private String           lastOpenElementRaw            = "";
  -    private ArrayList        registeredListeners           = new ArrayList();
  -    private ArrayList        registeredListenerConstraints = new ArrayList();
  -    private StringBuffer     current_value                 =
  -        new StringBuffer();
  -    protected XMLConsumer    xml_consumer;
  -    protected LexicalHandler lexical_handler;
  -
  -
  -    public abstract void init(Parameters parameters);
  -
  -    public abstract String getUri();
  -
  -    public abstract String getName();
  -
  -    public final void setup(
  -            EntityResolver resolver, Map objectModel, String source, Parameters 
parameters)
  -                throws ProcessingException, SAXException, IOException {
  -
  -        my_uri  = getUri();
  -        getLogger().debug(my_uri);
  -        my_name = getName();
  -        getLogger().debug(my_name);
  -        init(parameters);
  -
  -    }
  -
  -
  -    public void addEventListener(
  -            ElementEventListener l, XmlTreeConstraint constraint){
  -
  -        registeredListeners.add(l);
  -        registeredListenerConstraints.add(constraint);
  -    }
  -
  -
  -    public void setDocumentLocator(Locator locator) {
  -        if (super.contentHandler != null) {
  -            super.contentHandler.setDocumentLocator(locator);
  -        }
  -    }
  -
  -    public void startElement(
  -            String uri, String name, String raw, Attributes attributes)
  -                throws SAXException {
  -        System.out.println("Start"+uri+name+raw+attributes);
  -
  -        lastOpenElementRaw = raw;
  -
  -        boolean isMyUri = false;
  -
  -        if (uri.equals(my_uri)) {
  -            isMyUri = true;
  -            if (getLogger().isDebugEnabled())
  -              getLogger().debug(raw+" isMyUri!!!");
  -            myUriOpenElements.add(name);
  -
  -        current_value.delete(0, current_value.length());
  -        globalOpenElements.add(name);
  -        globalOpenElementsAttributes.add(attributes);
  -
  -        ListIterator constraintsIter =
  -            this.registeredListenerConstraints.listIterator();
  -
  -        while (constraintsIter.hasNext()) {
  -            if (((XmlTreeConstraint) constraintsIter.next())
  -                    .isAllowed(new Boolean(isMyUri), this.myUriOpenElements,
  -                               this.globalOpenElements)) {
  -                return;
  -            }
  -        }
  -        }
  -else{
  -        super.startElement(uri, name, raw, attributes);
  -}
  -    }
  +     private String my_uri;
  +     private String my_prefix = "unknown";
  +     private String my_name;
  +     private ArrayList myUriOpenElements = new ArrayList();
  +     private ArrayList globalOpenElements = new ArrayList();
  +     private ArrayList globalOpenElementsAttributes = new ArrayList();
  +     private String lastOpenElementRaw = "";
  +     private ArrayList registeredListeners = new ArrayList();
  +     private ArrayList registeredListenerConstraints = new ArrayList();
  +     private StringBuffer current_value =
  +                     new StringBuffer();
  +     public XMLConsumer xml_consumer;
  +     public LexicalHandler lexical_handler;
  +
  +
  +     public abstract void init(Parameters parameters);
  +
  +
  +     public abstract String getUri();
  +
  +
  +     public abstract String getName();
  +
  +
  +     public final void setup(
  +                     SourceResolver resolver, Map objectModel, String source, 
Parameters parameters)
  +                      throws ProcessingException, SAXException, IOException {
  +
  +             my_uri = getUri();
  +             getLogger().debug(my_uri);
  +             my_name = getName();
  +             getLogger().debug(my_name);
  +             init(parameters);
  +
  +     }
  +
  +
  +     public void addEventListener(
  +                     ElementEventListener l, XmlTreeConstraint constraint) {
  +
  +             registeredListeners.add(l);
  +             registeredListenerConstraints.add(constraint);
  +     }
  +
  +
  +     public void setDocumentLocator(Locator locator) {
  +             if (super.contentHandler != null) {
  +                     super.contentHandler.setDocumentLocator(locator);
  +             }
  +     }
  +
  +
  +     public void startElement(
  +                     String uri, String name, String raw, Attributes attributes)
  +                      throws SAXException {
  +             System.out.println("Start Element " + uri + " " + name + " " + raw + " 
" + attributes);
  +
  +             lastOpenElementRaw = raw;
  +
  +             boolean isMyUri = false;
  +
  +             if (uri.equals(my_uri)) {
  +                     isMyUri = true;
  +                     System.out.println(raw + " isMyUri!!!");
  +                     if (getLogger().isDebugEnabled()) {
  +                             getLogger().debug(raw + " isMyUri!!!");
  +                     }
  +                     myUriOpenElements.add(name);
  +
  +                     current_value.delete(0, current_value.length());
  +                     globalOpenElements.add(name);
  +                     globalOpenElementsAttributes.add(attributes);
  +
  +                     ListIterator constraintsIter =
  +                                     
this.registeredListenerConstraints.listIterator();
  +
  +                     while (constraintsIter.hasNext()) {
  +                             if (((XmlTreeConstraint) constraintsIter.next())
  +                                             .isAllowed(new Boolean(isMyUri), 
this.myUriOpenElements,
  +                                             this.globalOpenElements)) {
  +                                     return;
  +                             }
  +                     }
  +             } else {
  +                     System.out.println(raw + " is NOT MyUri!!!");
  +                     if (getLogger().isDebugEnabled()) {
  +                             getLogger().debug(raw + " is NOT MyUri!!!");
  +                     }
  +
  +                     super.startElement(uri, name, raw, attributes);
  +             }
  +     }
  +
  +
  +     public void endElement(String uri, String name, String raw)
  +                      throws SAXException {
  +
  +             try {
   
  -    public void endElement(String uri, String name, String raw)
  -            throws SAXException {
  +                     boolean isMyUri = false;
   
  -        try {
  +                     if (uri.equals(my_uri)) {
  +                             isMyUri = true;
   
  -            boolean isMyUri = false;
  +                             ListIterator constraintsIter =
  +                                             
this.registeredListenerConstraints.listIterator();
  +                             XmlTreeConstraint currentConstraint;
  +                             boolean isAllowed;
  +                             boolean isElementTag = lastOpenElementRaw.equals(raw);
   
  -            if (uri.equals(my_uri)) {
  -                isMyUri = true;
  -
  -            ListIterator      constraintsIter =
  -                this.registeredListenerConstraints.listIterator();
  -            XmlTreeConstraint currentConstraint;
  -            boolean           isAllowed;
  -            boolean           isElementTag = lastOpenElementRaw.equals(raw);
  -
  -            while (constraintsIter.hasNext()) {
  -                currentConstraint =
  -                    (XmlTreeConstraint) constraintsIter.next();
  -                isAllowed         =
  -                    currentConstraint.isAllowed(new Boolean(isMyUri),
  -                                                this.myUriOpenElements,
  -                                                this.globalOpenElements);
  -
  -                if (isAllowed) {
  -
  -                    EventListener el =
  -                        (EventListener) (registeredListeners
  -                            .get(constraintsIter.previousIndex()));
  -
  -
  -                    if(isElementTag)//it's an element
  -                    {
  -                        ((ElementEventListener)el).elementValueRecieved(
  -                            new ElementValueEvent(
  -                                this, name, current_value.toString(),
  -                                (Attributes) this.globalOpenElementsAttributes
  -                                    .get(globalOpenElementsAttributes.size()
  -                                         - 1)));
  -                    }
  -                    else {//it's a container
  -                        ((ElementEventListener)el).containerElementEnded(
  -                            new ContainerElementEndEvent(
  -                                this, name));
  -                    }
  -
  -
  -                    if (uri.equals(my_uri)) {
  -                        myUriOpenElements.remove(myUriOpenElements.size()
  -                                                 - 1);
  -                    }
  -
  -                    globalOpenElements.remove(globalOpenElements.size() - 1);
  -                    globalOpenElementsAttributes
  -                        .remove(globalOpenElementsAttributes.size() - 1);
  -                    current_value.delete(0, current_value.length());
  -
  -                    return;
  -                }
  -            }
  -
  -            if (globalOpenElements.size() > 0) {
  -                globalOpenElements.remove(globalOpenElements.size() - 1);
  -                globalOpenElementsAttributes
  -                    .remove(globalOpenElementsAttributes.size() - 1);
  -
  -            }
  -
  -            if (uri.equals(my_uri) && (myUriOpenElements.size() > 0)) {
  -                myUriOpenElements.remove(myUriOpenElements.size() - 1);
  -
  -            }
  -            }
  -else{
  -            super.endElement(uri, name, raw);
  -            }
  -
  -
  -            current_value.delete(0, current_value.length());
  -
  -        } catch (Exception t) {
  -            throw new SAXException("Exception in transformer "
  -                                   + this.getName() + " with uri "
  -                                   + this.getUri()
  -                                   + " while ending element.", t);
  -        }
  -    }
  -
  -    /***************************************/
  -    /* Utility methods also for subclasses */
  -    /***************************************/
  -
  -
  -    public class RipperListener extends ElementEventAdapter {
  -
  -        public void elementValueRecieved(ElementValueEvent e) {
  -          //do nothing so that element doesn't pass through
  -        }
  -    }
  -
  -
  -    public void characters(char ary[], int start, int length)
  -            throws SAXException {
  -
  -        if (this.globalOpenElements.isEmpty()) {
  -            super.characters(ary, start, length);
  -        } else {
  -            current_value.append(ary, start, length);
  -        }
  -    }
  -
  -    protected void start(String name, AttributesImpl attr)
  -            throws SAXException {
  -        super.contentHandler.startElement(getUri(), name, name, attr);
  -        attr.clear();
  -    }
  -
  -    protected void start(String name) throws SAXException {
  -        super.contentHandler.startElement(getUri(), name, name,
  -                                          new AttributesImpl());
  -    }
  -
  -    protected void end(String name) throws SAXException {
  -        super.contentHandler.endElement(getUri(), name, name);
  -    }
  -
  -    protected void data(String data) throws SAXException {
  -
  -        if (data != null) {
  -            super.contentHandler.characters(data.toCharArray(), 0,
  -                                            data.length());
  -        }
  -    }
  -
  -    protected static String getStringValue(Object object) {
  -
  -        if (object instanceof byte[]) {
  -            return new String((byte[]) object);
  -        } else if (object instanceof char[]) {
  -            return new String((char[]) object);
  -        } else if (object != null) {
  -            return object.toString();
  -        } else {
  -            return "";
  -        }
  -    }
  +                             while (constraintsIter.hasNext()) {
  +                                     currentConstraint =
  +                                                     (XmlTreeConstraint) 
constraintsIter.next();
  +                                     isAllowed =
  +                                                     
currentConstraint.isAllowed(new Boolean(isMyUri),
  +                                                     this.myUriOpenElements,
  +                                                     this.globalOpenElements);
  +
  +                                     if (isAllowed) {
  +
  +                                             EventListener el =
  +                                                             (EventListener) 
(registeredListeners.get(constraintsIter.previousIndex()));
  +
  +                                             if (isElementTag) {
  +                                                     //it's an element
  +
  +                                                     ((ElementEventListener) 
el).elementValueRecieved(
  +                                                                     new 
ElementValueEvent(
  +                                                                     this, name, 
current_value.toString(),
  +                                                                     (Attributes) 
this.globalOpenElementsAttributes
  +                                                                     
.get(globalOpenElementsAttributes.size()
  +                                                                      - 1)));
  +                                             } else {
  +                                                     //it's a container
  +                                                     ((ElementEventListener) 
el).containerElementEnded(
  +                                                                     new 
ContainerElementEndEvent(
  +                                                                     this, name));
  +                                             }
  +
  +                                             if (uri.equals(my_uri)) {
  +                                                     
myUriOpenElements.remove(myUriOpenElements.size()
  +                                                                      - 1);
  +                                             }
  +
  +                                             
globalOpenElements.remove(globalOpenElements.size() - 1);
  +                                             
globalOpenElementsAttributes.remove(globalOpenElementsAttributes.size() - 1);
  +                                             current_value.delete(0, 
current_value.length());
  +
  +                                             return;
  +                                     }
  +                             }
  +
  +                             if (globalOpenElements.size() > 0) {
  +                                     
globalOpenElements.remove(globalOpenElements.size() - 1);
  +                                     
globalOpenElementsAttributes.remove(globalOpenElementsAttributes.size() - 1);
  +
  +                             }
  +
  +                             if (uri.equals(my_uri) && (myUriOpenElements.size() > 
0)) {
  +                                     
myUriOpenElements.remove(myUriOpenElements.size() - 1);
  +
  +                             }
  +                     } else {
  +                             super.endElement(uri, name, raw);
  +                     }
  +
  +                     current_value.delete(0, current_value.length());
  +
  +             } catch (Exception t) {
  +                     throw new SAXException("Exception in transformer "
  +                                      + this.getName() + " with uri "
  +                                      + this.getUri()
  +                                      + " while ending element.", t);
  +             }
  +     }
  +
  +
  +     /**
  +      *  Utility methods also for subclasses
  +      *
  +      *@author     Nicola Ken Barozzi
  +      *@created    14 mei 2002
  +      */
  +
  +     public class RipperListener extends ElementEventAdapter {
  +
  +             public void elementValueRecieved(ElementValueEvent e) {
  +                     //do nothing so that element doesn't pass through
  +             }
  +     }
  +
  +
  +     public void characters(char ary[], int start, int length)
  +                      throws SAXException {
  +
  +             if (this.globalOpenElements.isEmpty()) {
  +                     super.characters(ary, start, length);
  +             } else {
  +                     current_value.append(ary, start, length);
  +             }
  +     }
  +
  +
  +     public void start(String name, AttributesImpl attr)
  +                      throws SAXException {
  +             super.contentHandler.startElement(getUri(), name, name, attr);
  +             attr.clear();
  +     }
  +
  +
  +     public void start(String name) throws SAXException {
  +             super.contentHandler.startElement(getUri(), name, name,
  +                             new AttributesImpl());
  +     }
  +
  +
  +     public void end(String name) throws SAXException {
  +             super.contentHandler.endElement(getUri(), name, name);
  +     }
  +
  +
  +     public void data(String data) throws SAXException {
  +
  +             if (data != null) {
  +                     super.contentHandler.characters(data.toCharArray(), 0,
  +                                     data.length());
  +             }
  +     }
  +
  +
  +     public static String getStringValue(Object object) {
  +
  +             if (object instanceof byte[]) {
  +                     return new String((byte[]) object);
  +             } else if (object instanceof char[]) {
  +                     return new String((char[]) object);
  +             } else if (object != null) {
  +                     return object.toString();
  +             } else {
  +                     return "";
  +             }
  +     }
   }
  +
  
  
  
  1.2       +196 -195  
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/transformation/Chart2SvgTransformer.java
  
  Index: Chart2SvgTransformer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/transformation/Chart2SvgTransformer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Chart2SvgTransformer.java 8 Apr 2002 08:09:17 -0000       1.1
  +++ Chart2SvgTransformer.java 14 May 2002 20:34:22 -0000      1.2
  @@ -1,54 +1,42 @@
   /*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, 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  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" 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 name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - 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 (INCLU-
  - DING, 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 and was  originally created by
  - Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -
  + *  ============================================================================
  + *  The Apache Software License, Version 1.1
  + *  ============================================================================
  + *  Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  + *  Redistribution and use in source and binary forms, with or without modifica-
  + *  tion, 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  acknowledgment:  "This product includes  software
  + *  developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  + *  Alternately, this  acknowledgment may  appear in the software itself,  if
  + *  and wherever such third-party acknowledgments normally appear.
  + *  4. The names "Apache Cocoon" 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 name,  without prior written permission  of the
  + *  Apache Software Foundation.
  + *  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 (INCLU-
  + *  DING, 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 and was  originally created by
  + *  Stefano Mazzocchi  <[EMAIL PROTECTED]>. For more  information on the Apache
  + *  Software Foundation, please see <http://www.apache.org/>.
  + */
   package org.apache.cocoon.transformation;
   
   import java.io.IOException;
  @@ -72,207 +60,220 @@
   
   import org.krysalis.wings.*;
   
  -
   /**
  - * This Transformer transforms XML that describes a chart into an SVG
  - * representation.
  - * See Cocoon examples for implicit DTD.
  + *  This Transformer transforms XML that describes a chart into an SVG
  + *  representation. See Cocoon examples for implicit DTD.
    *
  - * @author <a href="mailto:[EMAIL PROTECTED]";>Nicola Ken Barozzi</a>
  + *@author     <a href="mailto:[EMAIL PROTECTED]";>Nicola Ken Barozzi</a>
  + *@created    14 mei 2002
    */
   public class Chart2SvgTransformer extends AbstractConstrainedTransformer {
   
  -    private String        originalPrefix = "unknown";
  -    private boolean       minSet         = false;
  -    private boolean       maxSet         = false;
  -    private ChartModel2D  cm             = new ChartModel2D();
  -    private String        type           = "";
  -    private String        title          = "";
  -    private AbstractChart c;
  -    private ColorList     cl = new ColorList();
  -    private double        min;
  -    private double        max;
  -    private boolean       LF3D   = false;
  -    private int           width  = 320;
  -    private int           height = 200;
  +     private String originalPrefix = "unknown";
  +     private boolean minSet = false;
  +     private boolean maxSet = false;
  +     private ChartModel2D cm = new ChartModel2D();
  +     private String type = "";
  +     private String title = "";
  +     private AbstractChart c;
  +     private ColorList cl = new ColorList();
  +     private double min;
  +     private double max;
  +     private boolean LF3D = false;
  +     private int width = 320;
  +     private int height = 200;
  +
   
  -    public String getUri() {
  -        return "http://apache.org/cocoon/chart2svg";;
  -    }
  +     public String getUri() {
  +             return "http://apache.org/cocoon/Chart2Svg";;
  +     }
   
  -    public String getName() {
  -        return "chart2svg";
  -    }
   
  -    public void setup(SourceResolver resolver, Map map, String string, Parameters 
parameters)
  -    {
  +     public String getName() {
  +             return "Chart2Svg";
  +     }
   
  -    }
   
  -    public void init(Parameters parameters) {
  +     /*
  +      *  public void setup(SourceResolver resolver, Map map, String string, 
Parameters parameters)
  +      *  {
  +      *  }
  +      */
  +     public void init(Parameters parameters) {
   
  -            String[] chartdefStack = { "chartdef" };
  +             String[] chartdefStack = {"chartdef"};
   
  -            addEventListener(new ElementEventAdapter() {
  +             addEventListener(
  +                     new ElementEventAdapter() {
   
  -                public void containerElementEnded(ContainerElementEndEvent e)
  -                        throws SAXException {
  +                             public void 
containerElementEnded(ContainerElementEndEvent e)
  +                                              throws SAXException {
   
  -                    if (minSet) {
  -                        cm.setMin(min);
  -                    }
  +                                     if (minSet) {
  +                                             cm.setMin(min);
  +                                     }
   
  -                    if (maxSet) {
  -                        cm.setMax(max);
  -                    }
  +                                     if (maxSet) {
  +                                             cm.setMax(max);
  +                                     }
   
  -                    if (type.trim().equals("bar")) {
  -                        c = new BarChart(cm);
  +                                     if (type.trim().equals("bar")) {
  +                                             c = new BarChart(cm);
   
  -                        ((BarChart) c).set3DLF(LF3D);
  -                    }
  -                     else if (type.trim().equals("pie")) {
  -                        c = new PieChart(cm);
  -                    }
  -                     else {
  -                        c = new LineChart(cm);
  -                    }
  +                                             ((BarChart) c).set3DLF(LF3D);
  +                                     } else if (type.trim().equals("pie")) {
  +                                             c = new PieChart(cm);
  +                                     } else {
  +                                             c = new LineChart(cm);
  +                                     }
   
  -                    c.setTitle(title);
  -                    c.setColorList(cl);
  -                    c.setSize(width, height);
  +                                     c.setTitle(title);
  +                                     c.setColorList(cl);
  +                                     c.setSize(width, height);
   
  -                    SVGGraphics svg = new 
SVGGraphics(Chart2SvgTransformer.super.contentHandler, width,
  -                                                      height);
  -                    svg.startEvents();
  -                    c.paint(svg);
  -                    svg.stopEvents();
  +                                     //FIXME (tomK): had to set anti-aliasing to 
false, because it gave a ClassCastException.
  +                                     // Probably a bug in krysalis
  +                                     c.setAntialiasing(false);
   
  +                                     SVGGraphics svg = new 
SVGGraphics(Chart2SvgTransformer.super.contentHandler, width,
  +                                                     height);
  +                                     svg.startEvents();
  +                                     c.paint(svg);
  +                                     svg.stopEvents();
   
  -                }
  -            }, new XmlTreeConstraint(chartdefStack, true));
  +                             }
  +                     }, new XmlTreeConstraint(chartdefStack, true));
   
  -            String[] typeStack = { "type" };
  +             String[] typeStack = {"type"};
   
  -            addEventListener(new ElementEventAdapter() {
  +             addEventListener(
  +                     new ElementEventAdapter() {
   
  -                public void elementValueRecieved(ElementValueEvent e) {
  -                    type = e.getElementValue();
  -                }
  -            }, new XmlTreeConstraint(typeStack, true));
  +                             public void elementValueRecieved(ElementValueEvent e) {
  +                                     type = e.getElementValue();
  +                             }
  +                     }, new XmlTreeConstraint(typeStack, true));
   
  -            String[] titleStack = { "title" };
  +             String[] titleStack = {"title"};
   
  -            addEventListener(new ElementEventAdapter() {
  +             addEventListener(
  +                     new ElementEventAdapter() {
   
  -                public void elementValueRecieved(ElementValueEvent e) {
  -                    title = e.getElementValue();
  -                }
  -            }, new XmlTreeConstraint(titleStack, true));
  +                             public void elementValueRecieved(ElementValueEvent e) {
  +                                     title = e.getElementValue();
  +                             }
  +                     }, new XmlTreeConstraint(titleStack, true));
   
  -            String[] LF3dStack = { "LF3d" };
  +             String[] LF3dStack = {"LF3d"};
   
  -            addEventListener(new ElementEventAdapter() {
  +             addEventListener(
  +                     new ElementEventAdapter() {
   
  -                public void elementValueRecieved(ElementValueEvent e) {
  -                    LF3D = true;
  -                }
  -            }, new XmlTreeConstraint(LF3dStack, true));
  +                             public void elementValueRecieved(ElementValueEvent e) {
  +                                     LF3D = true;
  +                             }
  +                     }, new XmlTreeConstraint(LF3dStack, true));
   
  -            String[] colorStack = { "color" };
  +             String[] colorStack = {"color"};
   
  -            addEventListener(new ElementEventAdapter() {
  +             addEventListener(
  +                     new ElementEventAdapter() {
   
  -                public void elementValueRecieved(ElementValueEvent e) {
  -                    cl.add(Color.decode(e.getElementValue()));
  -                }
  -            }, new XmlTreeConstraint(colorStack, true));
  +                             public void elementValueRecieved(ElementValueEvent e) {
  +                                     cl.add(Color.decode(e.getElementValue()));
  +                             }
  +                     }, new XmlTreeConstraint(colorStack, true));
   
  -            String[] widthStack = { "width" };
  +             String[] widthStack = {"width"};
   
  -            addEventListener(new ElementEventAdapter() {
  +             addEventListener(
  +                     new ElementEventAdapter() {
   
  -                public void elementValueRecieved(ElementValueEvent e) {
  -                    width = Integer.parseInt(e.getElementValue());
  -                    try
  -                    {
  -                    Chart2SvgTransformer.this.start("prova");
  -                    Chart2SvgTransformer.this.end("prova");
  -                    Chart2SvgTransformer.this.data("prova data");
  -                    }
  -                    catch(Exception exx)
  -                    {
  -                      System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAAAA");
  -                    }
  -                }
  -            }, new XmlTreeConstraint(widthStack, true));
  +                             public void elementValueRecieved(ElementValueEvent e) {
  +                                     width = Integer.parseInt(e.getElementValue());
  +                                     try {
  +                                             /*
  +                                              *  FIXME: Is this used for anything?? 
Then it should come back ...
  +                                              *  
Chart2SvgTransformer.this.start("prova");
  +                                              *  
Chart2SvgTransformer.this.end("prova");
  +                                              *  
Chart2SvgTransformer.this.data("prova data");
  +                                              */
  +                                     } catch (Exception exx) {
  +                                             
System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAAAA");
  +                                     }
  +                             }
  +                     }, new XmlTreeConstraint(widthStack, true));
   
  -            String[] heightStack = { "height" };
  +             String[] heightStack = {"height"};
   
  -            addEventListener(new ElementEventAdapter() {
  +             addEventListener(
  +                     new ElementEventAdapter() {
   
  -                public void elementValueRecieved(ElementValueEvent e) {
  -                    height = Integer.parseInt(e.getElementValue());
  -                }
  -            }, new XmlTreeConstraint(heightStack, true));
  +                             public void elementValueRecieved(ElementValueEvent e) {
  +                                     height = Integer.parseInt(e.getElementValue());
  +                             }
  +                     }, new XmlTreeConstraint(heightStack, true));
   
  -            String[] minStack = { "min" };
  +             String[] minStack = {"min"};
   
  -            addEventListener(new ElementEventAdapter() {
  +             addEventListener(
  +                     new ElementEventAdapter() {
   
  -                public void elementValueRecieved(ElementValueEvent e) {
  -                    min    = Double.parseDouble(e.getElementValue().trim());
  -                    minSet = true;
  -                }
  -            }, new XmlTreeConstraint(minStack, true));
  +                             public void elementValueRecieved(ElementValueEvent e) {
  +                                     min = 
Double.parseDouble(e.getElementValue().trim());
  +                                     minSet = true;
  +                             }
  +                     }, new XmlTreeConstraint(minStack, true));
   
  -            String[] maxStack = { "max" };
  +             String[] maxStack = {"max"};
   
  -            addEventListener(new ElementEventAdapter() {
  +             addEventListener(
  +                     new ElementEventAdapter() {
   
  -                public void elementValueRecieved(ElementValueEvent e) {
  -                    max    = Double.parseDouble(e.getElementValue().trim());
  -                    maxSet = true;
  -                }
  -            }, new XmlTreeConstraint(maxStack, true));
  +                             public void elementValueRecieved(ElementValueEvent e) {
  +                                     max = 
Double.parseDouble(e.getElementValue().trim());
  +                                     maxSet = true;
  +                             }
  +                     }, new XmlTreeConstraint(maxStack, true));
   
  -            String[] dataStack = { "data" };
  +             String[] dataStack = {"data"};
   
  -            addEventListener(new DataListener(),
  -                                         new XmlTreeConstraint(dataStack,
  -                                             false));
  -            addEventListener(new RipperListener(),
  -                                         new XmlTreeConstraint(dataStack,
  -                                             true));
  +             addEventListener(new DataListener(),
  +                             new XmlTreeConstraint(dataStack,
  +                             false));
  +             addEventListener(new RipperListener(),
  +                             new XmlTreeConstraint(dataStack,
  +                             true));
   
  -            String[] appearanceStack = { "appearance" };
  +             String[] appearanceStack = {"appearance"};
   
  -            addEventListener(
  -                new RipperListener(),
  -                new XmlTreeConstraint(appearanceStack, true));
  +             addEventListener(
  +                             new RipperListener(),
  +                             new XmlTreeConstraint(appearanceStack, true));
   
  -            String[] propertiesStack = { "properties" };
  +             String[] propertiesStack = {"properties"};
   
  -            addEventListener(
  -                new RipperListener(),
  -                new XmlTreeConstraint(propertiesStack, true));
  +             addEventListener(
  +                             new RipperListener(),
  +                             new XmlTreeConstraint(propertiesStack, true));
   
  -            String[] colorsStack = { "colors" };
  +             String[] colorsStack = {"colors"};
   
  -            addEventListener(new RipperListener(),
  -                                         new XmlTreeConstraint(colorsStack,
  -                                             true));
  +             addEventListener(new RipperListener(),
  +                             new XmlTreeConstraint(colorsStack,
  +                             true));
   
  -    }
  +     }
   
   
  -    class DataListener extends ElementEventAdapter {
  +     class DataListener extends ElementEventAdapter {
   
  -        public void elementValueRecieved(ElementValueEvent e)
  -                throws SAXException {
  -            cm.addToRow(e.getElementName(),
  -                        Double.parseDouble(e.getElementValue()));
  -        }
  -    }
  +             public void elementValueRecieved(ElementValueEvent e)
  +                              throws SAXException {
  +                     cm.addToRow(e.getElementName(),
  +                                     Double.parseDouble(e.getElementValue()));
  +             }
  +     }
   
   }
  +
  
  
  
  1.2       +23 -23    
xml-cocoon2/src/scratchpad/webapp/mount/charts/content/static/linechart.xml
  
  Index: linechart.xml
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/webapp/mount/charts/content/static/linechart.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- linechart.xml     8 Apr 2002 08:09:16 -0000       1.1
  +++ linechart.xml     14 May 2002 20:34:22 -0000      1.2
  @@ -1,5 +1,5 @@
   <?xml version="1.0"?>
  -<chart:chartdef xmlns:chart="http://apache.org/cocoon/Chart2Svg";>
  +<chart:chartdef xmlns:chart="http://apache.org/cocoon/chart2svg";>
   <chart:appearance>
         <chart:type>line</chart:type>
         <chart:title>Cocoon 1 vs Cocoon 2 :)</chart:title>
  @@ -15,28 +15,28 @@
       <chart:max>7</chart:max>
      </chart:properties>
      <chart:data>
  -      <result>
  -         <row>
  -            <cocoon1>1</cocoon1>
  -            <cocoon2>3</cocoon2>
  -            <cocoon3>5</cocoon3>
  -         </row>
  -         <row>
  -            <cocoon1>2</cocoon1>
  -            <cocoon2>6</cocoon2>
  -            <cocoon3>3</cocoon3>
  -         </row>
  -         <row>
  -            <cocoon1>2</cocoon1>
  -            <cocoon2>6</cocoon2>
  -            <cocoon3>5</cocoon3>
  -         </row>
  -         <row>
  -            <cocoon1>2</cocoon1>
  -            <cocoon2>6</cocoon2>
  -            <cocoon3>3</cocoon3>
  -         </row>
  -      </result>
  +      <chart:result>
  +         <chart:row>
  +            <chart:cocoon1>1</chart:cocoon1>
  +            <chart:cocoon2>3</chart:cocoon2>
  +            <chart:cocoon3>5</chart:cocoon3>
  +         </chart:row>
  +         <chart:row>
  +            <chart:cocoon1>2</chart:cocoon1>
  +            <chart:cocoon2>6</chart:cocoon2>
  +            <chart:cocoon3>3</chart:cocoon3>
  +         </chart:row>
  +         <chart:row>
  +            <chart:cocoon1>2</chart:cocoon1>
  +            <chart:cocoon2>6</chart:cocoon2>
  +            <chart:cocoon3>5</chart:cocoon3>
  +         </chart:row>
  +         <chart:row>
  +            <chart:cocoon1>2</chart:cocoon1>
  +            <chart:cocoon2>6</chart:cocoon2>
  +            <chart:cocoon3>3</chart:cocoon3>
  +         </chart:row>
  +      </chart:result>
     </chart:data>
   </chart:chartdef>
   
  
  
  
  1.2       +2 -2      
xml-cocoon2/src/scratchpad/webapp/mount/charts/content/samples.xml
  
  Index: samples.xml
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/webapp/mount/charts/content/samples.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- samples.xml       8 Apr 2002 08:09:17 -0000       1.1
  +++ samples.xml       14 May 2002 20:34:22 -0000      1.2
  @@ -16,7 +16,7 @@
      <sample name="Bar Chart 3d style" href="bar3Dchart.svg">
       This sample doesn't yet work. Still needs debugging and fixing. It used to work 
with an early version of Cocoon2 and currently it hasen't been completely adapted. 
Patches are welcome :-)
      </sample>
  -   <sample name="Line Chart" href="line.svg">
  +   <sample name="Line Chart" href="linechart.svg">
       This sample doesn't yet work. Still needs debugging and fixing. It used to work 
with an early version of Cocoon2 and currently it hasen't been completely adapted. 
Patches are welcome :-)
      </sample>
     </group>
  @@ -28,7 +28,7 @@
      <sample name="Bar Chart 3d style" href="bar3Dchart.xml">
       This sample doesn't yet work. Still needs debugging and fixing. It used to work 
with an early version of Cocoon2 and currently it hasen't been completely adapted. 
Patches are welcome :-)
      </sample>
  -   <sample name="Line Chart" href="line.xml">
  +   <sample name="Line Chart" href="linechart.xml">
       This sample doesn't yet work. Still needs debugging and fixing. It used to work 
with an early version of Cocoon2 and currently it hasen't been completely adapted. 
Patches are welcome :-)
      </sample>
     </group>
  
  
  
  1.2       +8 -1      xml-cocoon2/src/scratchpad/webapp/mount/charts/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/scratchpad/webapp/mount/charts/sitemap.xmap,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sitemap.xmap      8 Apr 2002 08:09:17 -0000       1.1
  +++ sitemap.xmap      14 May 2002 20:34:23 -0000      1.2
  @@ -6,7 +6,7 @@
     <map:generators default="file"/>
     
     <map:transformers default="xslt">
  -   <map:transformer name="chart2svg" 
src="org.apache.cocoon.transformation.Chart2SvgTransformer"/>
  +   <map:transformer label="transformed" name="chart2svg" 
src="org.apache.cocoon.transformation.Chart2SvgTransformer"/>
     </map:transformers>
     
     <map:readers default="resource"/>
  @@ -22,6 +22,13 @@
     <map:matchers default="wildcard"/>
     
     <map:selectors default="browser"/>
  +  
  + <map:views>
  +       <map:view name="transformed" from-label="transformed">
  +        <map:serialize type="xml"/>
  +       </map:view>
  + </map:views>
  +  
     
    </map:components>
   
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to