Parcourir la source

Switched to long licence

Some general checkstyle fixing


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196043 13f79535-47bb-0310-9956-ffa450edef68
tags/Alt-Design-integration-base
Jeremias Maerki il y a 21 ans
Parent
révision
b6dc3aa060

+ 85
- 12
examples/mathml/src/org/apache/fop/mathml/MathMLElement.java Voir le fichier

@@ -1,9 +1,53 @@
/* $Id$
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/

/*
* $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999-2003 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 "FOP" 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 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
* James Tauber <jtauber@jtauber.com>. For more information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.fop.mathml;

import java.awt.Color;
@@ -13,8 +57,11 @@ import java.awt.geom.Point2D;
import org.apache.fop.fo.FONode;
import org.apache.fop.apps.FOPException;

import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.*;
import org.w3c.dom.Element;
import org.w3c.dom.Node;

import org.xml.sax.Attributes;

import org.apache.batik.svggen.SVGGraphics2D;
@@ -23,21 +70,34 @@ import org.apache.batik.dom.svg.SVGDOMImplementation;
import net.sourceforge.jeuclid.MathBase;
import net.sourceforge.jeuclid.DOMMathBuilder;

/**
* Defines the top-level element for MathML.
*/
public class MathMLElement extends MathMLObj {
Document svgDoc = null;
float width;
float height;
boolean converted = false;

private Document svgDoc = null;
private float width;
private float height;
private boolean converted = false;

/**
* @see org.apache.fop.fo.FONode#FONode(FONode)
*/
public MathMLElement(FONode parent) {
super(parent);
}

/**
* @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
*/
public void handleAttrs(Attributes attlist) throws FOPException {
super.handleAttrs(attlist);
createBasicDocument();
}

/**
* Converts the MathML to SVG.
*/
public void convertToSVG() {
try {
if (!converted) {
@@ -70,10 +130,14 @@ public class MathMLElement extends MathMLObj {

}

/**
* Create the SVG from MathML.
* @return the DOM document containing SVG
*/
public static Document createSVG(MathBase base) {

DOMImplementation impl =
SVGDOMImplementation.getDOMImplementation();
SVGDOMImplementation.getDOMImplementation();
String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
Document svgdocument = impl.createDocument(svgNS, "svg", null);

@@ -104,11 +168,17 @@ public class MathMLElement extends MathMLObj {

}

/**
* @see org.apache.fop.fo.XMLObj#getDocument()
*/
public Document getDocument() {
convertToSVG();
return doc;
}

/**
* @see org.apache.fop.fo.XMLObj#getDocumentNamespace()
*/
public String getDocumentNamespace() {
if (svgDoc == null) {
return MathMLElementMapping.URI;
@@ -116,6 +186,9 @@ public class MathMLElement extends MathMLObj {
return "http://www.w3.org/2000/svg";
}

/**
* @see org.apache.fop.fo.XMLObj#getDimension(Point2D)
*/
public Point2D getDimension(Point2D view) {
convertToSVG();
return new Point2D.Float(width, height);

+ 58
- 6
examples/mathml/src/org/apache/fop/mathml/MathMLElementMapping.java Voir le fichier

@@ -1,9 +1,53 @@
/* $Id$
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/

/*
* $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999-2003 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 "FOP" 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 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
* James Tauber <jtauber@jtauber.com>. For more information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.fop.mathml;

import org.apache.fop.fo.FOTreeBuilder;
@@ -18,8 +62,12 @@ import java.util.HashMap;
import net.sourceforge.jeuclid.MathBase;
import net.sourceforge.jeuclid.DOMMathBuilder;

/**
* This class provides the element mapping for FOP.
*/
public class MathMLElementMapping implements ElementMapping {

/** MathML namespace */
public static final String URI = "http://www.w3.org/1998/Math/MathML";

private static HashMap foObjs = null;
@@ -34,6 +82,9 @@ public class MathMLElementMapping implements ElementMapping {
}
}

/**
* @see org.apache.fop.fo.ElementMapping#addToBuilder(FOTreeBuilder)
*/
public void addToBuilder(FOTreeBuilder builder) {
setupMathML();
builder.addMapping(URI, foObjs);
@@ -78,6 +129,7 @@ public class MathMLElementMapping implements ElementMapping {

return info;
} catch (Throwable t) {
/**@todo log that properly */
}
return null;


+ 56
- 6
examples/mathml/src/org/apache/fop/mathml/MathMLObj.java Voir le fichier

@@ -1,9 +1,53 @@
/* $Id$
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/

/*
* $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999-2003 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 "FOP" 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 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
* James Tauber <jtauber@jtauber.com>. For more information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.fop.mathml;

// FOP
@@ -15,10 +59,16 @@ import org.apache.fop.fo.XMLObj;
*/
public class MathMLObj extends XMLObj {

/**
* @see org.apache.fop.fo.FONode#FONode(FONode)
*/
public MathMLObj(FONode parent) {
super(parent);
}

/**
* @see org.apache.fop.fo.XMLObj#getNameSpace()
*/
public String getNameSpace() {
return MathMLElementMapping.URI;
}

+ 58
- 12
examples/plan/src/org/apache/fop/plan/ActionInfo.java Voir le fichier

@@ -1,23 +1,69 @@
/* $Id$
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/

/*
* $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999-2003 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 "FOP" 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 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
* James Tauber <jtauber@jtauber.com>. For more information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.fop.plan;

import java.util.Date;

public class ActionInfo {
Date startDate;
Date endDate;
String owner;
String label;
int type = TASK;
public static final int TASK = 1;
public static final int MILESTONE = 2;
public static final int GROUPING = 3;
String dependant = "";

private Date startDate;
private Date endDate;
private String owner;
private String label;
private int type = TASK;
private String dependant = "";

public void setType(int t) {
type = t;

+ 53
- 8
examples/plan/src/org/apache/fop/plan/EventList.java Voir le fichier

@@ -1,15 +1,60 @@
/* $Id$
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/

/*
* $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999-2003 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 "FOP" 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 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
* James Tauber <jtauber@jtauber.com>. For more information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.fop.plan;

import java.util.ArrayList;
import java.util.List;

public class EventList {
ArrayList data = new ArrayList();
private List data = new java.util.ArrayList();

public void addGroupInfo(GroupInfo set) {
data.add(set);

+ 54
- 9
examples/plan/src/org/apache/fop/plan/GroupInfo.java Voir le fichier

@@ -1,16 +1,61 @@
/* $Id$
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/

/*
* $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999-2003 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 "FOP" 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 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
* James Tauber <jtauber@jtauber.com>. For more information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.fop.plan;

import java.util.ArrayList;
import java.util.List;

public class GroupInfo {
String name;
ArrayList actions = new ArrayList();
private String name;
private List actions = new java.util.ArrayList();

public GroupInfo(String n) {
name = n;

+ 72
- 13
examples/plan/src/org/apache/fop/plan/Main.java Voir le fichier

@@ -1,12 +1,58 @@
/* $Id$
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/

/*
* $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999-2003 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 "FOP" 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 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
* James Tauber <jtauber@jtauber.com>. For more information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.fop.plan;

import java.io.*;
import java.io.InputStream;
import java.io.Writer;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

@@ -14,28 +60,36 @@ import org.apache.batik.transcoder.svg2svg.SVGTranscoder;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;

/**
* Sample command-line application for converting plan XML to SVG.
*/
public class Main {

/**
* Main method.
* @param args command-line arguments
*/
public static void main(String[] args) {
Main main = new Main();
main.convert(args);
System.exit(0);
}

public Main() {
}

/**
* Runs the conversion
* @param params command-line arguments
*/
public void convert(String[] params) {
if (params.length != 2) {
System.out.println("arguments: plan.xml output.svg");
return;
}
try {
FileInputStream fis = new FileInputStream(params[0]);
Document doc = createSVGDocument(fis);
InputStream is = new java.io.FileInputStream(params[0]);
Document doc = createSVGDocument(is);
SVGTranscoder svgT = new SVGTranscoder();
TranscoderInput input = new TranscoderInput(doc);
Writer ostream = new FileWriter(params[1]);
Writer ostream = new java.io.FileWriter(params[1]);
TranscoderOutput output = new TranscoderOutput(ostream);
svgT.transcode(input, output);
ostream.flush();
@@ -46,6 +100,11 @@ public class Main {
}
}

/**
* Helper method to create the SVG document from the plan InputStream.
* @param is InputStream
* @return Document a DOM containing the SVG
*/
public Document createSVGDocument(InputStream is) {
Document doc = null;


+ 55
- 7
examples/plan/src/org/apache/fop/plan/PlanDrawer.java Voir le fichier

@@ -1,16 +1,64 @@
/* $Id$
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/

/*
* $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999-2003 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 "FOP" 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 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
* James Tauber <jtauber@jtauber.com>. For more information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.fop.plan;

import java.util.HashMap;

import org.w3c.dom.Document;

/**
* This interface defines how a plan drawer is converted.
*/
public interface PlanDrawer {
public Document createDocument(EventList data, float w, float h,
Document createDocument(EventList data, float w, float h,
HashMap hints);
}

+ 88
- 22
examples/plan/src/org/apache/fop/plan/PlanElement.java Voir le fichier

@@ -1,9 +1,53 @@
/* $Id$
* Copyright (C) 2001-2002 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/

/*
* $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999-2003 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 "FOP" 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 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
* James Tauber <jtauber@jtauber.com>. For more information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.fop.plan;

import java.awt.geom.Point2D;
@@ -14,34 +58,47 @@ import org.apache.fop.apps.FOPException;
import org.w3c.dom.Document;
import org.xml.sax.Attributes;

/**
* This class defines the plan element.
*/
public class PlanElement extends PlanObj {
Document svgDoc = null;
float width;
float height;
boolean converted;

private Document svgDoc = null;
private float width;
private float height;
private boolean converted;

/**
* @see org.apache.fop.fo.FONode#FONode(FONode)
*/
public PlanElement(FONode parent) {
super(parent);
}

/**
* @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
*/
public void handleAttrs(Attributes attlist) throws FOPException {
super.handleAttrs(attlist);
createBasicDocument();
}

/**
* Converts the element to SVG.
*/
public void convertToSVG() {
try {
if(!converted) {
converted = true;
PlanRenderer pr = new PlanRenderer();
pr.setFontInfo("Helvetica", 12);
svgDoc = pr.createSVGDocument(doc);
width = pr.getWidth();
height = pr.getHeight();
doc = svgDoc;
}
} catch(Throwable t) {
if (!converted) {
converted = true;
PlanRenderer pr = new PlanRenderer();
pr.setFontInfo("Helvetica", 12);
svgDoc = pr.createSVGDocument(doc);
width = pr.getWidth();
height = pr.getHeight();
doc = svgDoc;
}
} catch (Throwable t) {
getLogger().error("Could not convert Plan to SVG", t);
width = 0;
height = 0;
@@ -49,18 +106,27 @@ public class PlanElement extends PlanObj {

}

/**
* @see org.apache.fop.fo.XMLObj#getDocument()
*/
public Document getDocument() {
convertToSVG();
return doc;
}

/**
* @see org.apache.fop.fo.XMLObj#getDocumentNamespace()
*/
public String getDocumentNamespace() {
if(svgDoc == null) {
if (svgDoc == null) {
return PlanElementMapping.URI;
}
return "http://www.w3.org/2000/svg";
}

/**
* @see org.apache.fop.fo.XMLObj#getDimension(Point2D)
*/
public Point2D getDimension(Point2D view) {
convertToSVG();
return new Point2D.Float(width, height);

+ 70
- 19
examples/plan/src/org/apache/fop/plan/PlanElementMapping.java Voir le fichier

@@ -1,9 +1,53 @@
/* $Id$
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/

/*
* $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999-2003 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 "FOP" 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 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
* James Tauber <jtauber@jtauber.com>. For more information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.fop.plan;

import org.apache.fop.fo.FOTreeBuilder;
@@ -15,15 +59,19 @@ import org.w3c.dom.Document;

import java.util.HashMap;

/**
* This class provides the element mapping for FOP.
*/
public class PlanElementMapping implements ElementMapping {

/** The namespace for the plan extension */
public static final String URI = "http://xml.apache.org/fop/plan";

private static HashMap foObjs = null;

private static synchronized void setupPlan() {
if (foObjs == null) {
foObjs = new HashMap();
foObjs = new java.util.HashMap();
foObjs.put("plan", new PE());
foObjs.put(DEFAULT, new PlanMaker());

@@ -31,6 +79,9 @@ public class PlanElementMapping implements ElementMapping {
}
}

/**
* @see org.apache.fop.fo.ElementMapping#addToBuilder(FOTreeBuilder)
*/
public void addToBuilder(FOTreeBuilder builder) {
setupPlan();
builder.addMapping(URI, foObjs);
@@ -51,20 +102,20 @@ public class PlanElementMapping implements ElementMapping {
static class PlanConverter implements XMLReader.Converter {
public FopImage.ImageInfo convert(Document doc) {
try {
PlanRenderer pr = new PlanRenderer();
pr.setFontInfo("Helvetica", 12);
FopImage.ImageInfo info = new FopImage.ImageInfo();
info.data = pr.createSVGDocument(doc);
info.width = (int)pr.getWidth();
info.height = (int)pr.getHeight();
info.mimeType = "image/svg+xml";
info.str = "http://www.w3.org/2000/svg";

return info;
} catch(Throwable t) {
PlanRenderer pr = new PlanRenderer();
pr.setFontInfo("Helvetica", 12);
FopImage.ImageInfo info = new FopImage.ImageInfo();
info.data = pr.createSVGDocument(doc);
info.width = (int)pr.getWidth();
info.height = (int)pr.getHeight();
info.mimeType = "image/svg+xml";
info.str = "http://www.w3.org/2000/svg";
return info;
} catch (Throwable t) {
/**@todo Log this properly! */
}
return null;

}
}


+ 64
- 7
examples/plan/src/org/apache/fop/plan/PlanHints.java Voir le fichier

@@ -1,20 +1,77 @@
/* $Id$
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/

/*
* $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999-2003 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 "FOP" 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 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
* James Tauber <jtauber@jtauber.com>. For more information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.fop.plan;

public class PlanHints {
/**
* This interface defines some constants for use in the plan package.
*/
public interface PlanHints {
/** Border attribute */
public static final String PLAN_BORDER = "border";
/** Legend attribute */
public static final String PLAN_LEGEND = "legend";
/** Font family attribute */
public static final String FONT_FAMILY = "font-family";
/** Font size attribute */
public static final String FONT_SIZE = "font-size";
/** Legent type attribute */
public static final String LEGEND_TYPE = "legendType";
/** Locale attribute */
public static final String LOCALE = "locale";
/** Label type attribute */
public static final String LABEL_TYPE = "labelType";
/** Label font size attribute */
public static final String LABEL_FONT_SIZE = "labelFontSize";
/** Label font attribute */
public static final String LABEL_FONT = "labelFont";

}

+ 54
- 7
examples/plan/src/org/apache/fop/plan/PlanObj.java Voir le fichier

@@ -1,9 +1,53 @@
/* $Id$
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/

/*
* $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999-2003 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 "FOP" 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 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
* James Tauber <jtauber@jtauber.com>. For more information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.fop.plan;

// FOP
@@ -18,13 +62,16 @@ import org.apache.fop.fo.XMLObj;
public class PlanObj extends XMLObj {

/**
*
* Creates a new Plan object.
* @param parent the parent formatting object
*/
public PlanObj(FONode parent) {
super(parent);
}

/**
* @see org.apache.fop.fo.XMLObj#getNameSpace()
*/
public String getNameSpace() {
return "http://xml.apache.org/fop/plan";
}

+ 72
- 28
examples/plan/src/org/apache/fop/plan/PlanRenderer.java Voir le fichier

@@ -1,43 +1,87 @@
/* $Id$
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/

/*
* $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999-2003 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 "FOP" 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 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
* James Tauber <jtauber@jtauber.com>. For more information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.fop.plan;

import java.util.*;
import java.text.*;
import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.font.FontRenderContext;

import org.w3c.dom.*;
import org.w3c.dom.svg.*;
import org.w3c.dom.css.*;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
import java.util.StringTokenizer;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import org.apache.batik.dom.svg.SVGDOMImplementation;

public class PlanRenderer {
final static String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
String fontFamily = "sansserif";
float fontSize = 12;
private static final String SVG_NAMESPACE = SVGDOMImplementation.SVG_NAMESPACE_URI;
private String fontFamily = "sansserif";
private float fontSize = 12;
private String type = "";
private String lang = "";
private String country = "";
private String variant = "";
float width;
float height;
float topEdge;
float rightEdge;
HashMap hints = new HashMap();
private float width;
private float height;
private float topEdge;
private float rightEdge;
private HashMap hints = new HashMap();

String[] colours;
String[] darkcolours;

public PlanRenderer() {
}
private String[] colours;
private String[] darkcolours;

public void setFontInfo(String fam, float si) {
fontFamily = fam;

+ 142
- 76
examples/plan/src/org/apache/fop/plan/SimplePlanDrawer.java Voir le fichier

@@ -1,52 +1,109 @@
/* $Id$
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/

/*
* $Id$
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999-2003 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 "FOP" 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 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
* James Tauber <jtauber@jtauber.com>. For more information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.fop.plan;

import org.apache.fop.svg.SVGUtilities;

import java.util.*;
import java.text.*;
import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.font.FontRenderContext;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;

import org.w3c.dom.*;
import org.w3c.dom.svg.*;
import org.w3c.dom.css.*;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

import org.apache.batik.dom.svg.SVGDOMImplementation;
import org.apache.fop.svg.SVGUtilities;

/**
* Simple plan drawer implementation.
*/
public class SimplePlanDrawer implements PlanDrawer {
final static String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
float fontSize;
HashMap hints;
java.awt.Font font = null;
boolean bord = false;
float lSpace = 15;
float width;
float height;
float topEdge;
float rightEdge;

String[] colours;
String[] darkcolours;

Date startDate;
Date endDate;

private static final String SVG_NAMESPACE = SVGDOMImplementation.SVG_NAMESPACE_URI;
private float fontSize;
private HashMap hints;
private java.awt.Font font = null;
private boolean bord = false;
private float lSpace = 15;
private float width;
private float height;
private float topEdge;
private float rightEdge;

private String[] colours;
private String[] darkcolours;

private Date startDate;
private Date endDate;

/**
* Sets the start date.
* @param sd start date
*/
public void setStartDate(Date sd) {
startDate = sd;
}

/**
* Sets the end date.
* @param ed end date
*/
public void setEndDate(Date ed) {
endDate = ed;
}

/**
* @see org.apache.fop.plan.PlanDrawer#createDocument(EventList, float, float, HashMap)
*/
public Document createDocument(EventList data, float w, float h,
HashMap hints) {
this.width = w;
@@ -58,22 +115,23 @@ public class SimplePlanDrawer implements PlanDrawer {
String title = "";

DOMImplementation impl =
SVGDOMImplementation.getDOMImplementation();
Document doc = impl.createDocument(svgNS, "svg", null);
SVGDOMImplementation.getDOMImplementation();
Document doc = impl.createDocument(SVG_NAMESPACE, "svg", null);

Element svgRoot = doc.getDocumentElement();
svgRoot.setAttributeNS(null, "width", "" + width);
svgRoot.setAttributeNS(null, "height", "" + height);
svgRoot.setAttributeNS(null, "style",
"font-size:" + 8 + ";font-family:" +
hints.get(PlanHints.FONT_FAMILY));
"font-size:" + 8
+ ";font-family:"
+ hints.get(PlanHints.FONT_FAMILY));

font = new java.awt.Font( (String) hints.get(PlanHints.FONT_FAMILY),
java.awt.Font.PLAIN, (int) fontSize);
font = new java.awt.Font((String)hints.get(PlanHints.FONT_FAMILY),
java.awt.Font.PLAIN, (int)fontSize);

if (bord) {
Element border =
SVGUtilities.createRect(doc, 0, 0, width, height);
SVGUtilities.createRect(doc, 0, 0, width, height);
border.setAttributeNS(null, "style", "stroke:black;fill:none");
svgRoot.appendChild(border);
}
@@ -104,7 +162,7 @@ public class SimplePlanDrawer implements PlanDrawer {
Date lastWeek = startDate;
Date future = endDate;
Calendar lw = Calendar.getInstance();
if(lastWeek == null || future == null) {
if (lastWeek == null || future == null) {
int dow = lw.get(Calendar.DAY_OF_WEEK);
lw.add(Calendar.DATE, -dow - 6);
lastWeek = lw.getTime();
@@ -123,15 +181,15 @@ public class SimplePlanDrawer implements PlanDrawer {
svgRoot.appendChild(line);

Element clip1 = SVGUtilities.createClip(doc,
SVGUtilities.createPath(doc,
"m0 0l126 0l0 " + height + "l-126 0z"), "clip1");
SVGUtilities.createPath(doc,
"m0 0l126 0l0 " + height + "l-126 0z"), "clip1");
Element clip2 = SVGUtilities.createClip(doc,
SVGUtilities.createPath(doc,
"m130 0l66 0l0 " + height + "l-66 0z"), "clip2");
SVGUtilities.createPath(doc,
"m130 0l66 0l0 " + height + "l-66 0z"), "clip2");
Element clip3 = SVGUtilities.createClip(doc,
SVGUtilities.createPath(doc,
"m200 0l" + (width - 200) + " 0l0 " + height + "l-" +
(width - 200) + " 0z"), "clip3");
SVGUtilities.createPath(doc,
"m200 0l" + (width - 200) + " 0l0 " + height + "l-"
+ (width - 200) + " 0z"), "clip3");
svgRoot.appendChild(clip1);
svgRoot.appendChild(clip2);
svgRoot.appendChild(clip3);
@@ -155,9 +213,10 @@ public class SimplePlanDrawer implements PlanDrawer {
offset++;
if (count % 7 == 0 || count % 7 == 1) {
Element rect = SVGUtilities.createRect(doc,
200 + (offset - 1) * (width - 200) / (totalDays - 2),
(float)(topEdge + 0.5), (width - 200) / (totalDays - 3),
height - 1 - topEdge);
200 + (offset - 1) * (width - 200) / (totalDays - 2),
(float)(topEdge + 0.5),
(width - 200) / (totalDays - 3),
height - 1 - topEdge);
rect.setAttributeNS(null, "style", "stroke:none;fill:rgb(230,230,230)");
svgRoot.appendChild(rect);
}
@@ -208,44 +267,51 @@ public class SimplePlanDrawer implements PlanDrawer {
int left = 200;
int right = 500;

int daysToStart = (int)((start.getTime() -
lastWeek.getTime() + 43200000) / 86400000);
int days = (int)((end.getTime() - start.getTime() +
43200000) / 86400000);
int daysToStart = (int)((start.getTime()
- lastWeek.getTime() + 43200000) / 86400000);
int days = (int)((end.getTime() - start.getTime()
+ 43200000) / 86400000);
int daysFromEnd =
(int)((future.getTime() - end.getTime() +
43200000) / 86400000);
(int)((future.getTime() - end.getTime()
+ 43200000) / 86400000);
Element taskGraphic;
switch (type) {
case ActionInfo.TASK:
taskGraphic = SVGUtilities.createRect(doc,
left + daysToStart * 300 / (totalDays - 2),
topEdge + 2, days * 300 / (totalDays - 2), 10);
taskGraphic.setAttributeNS(null, "style", "stroke:black;fill:blue;stroke-width:1;clip-path:url(#clip3)");
left + daysToStart * 300 / (totalDays - 2),
topEdge + 2, days * 300 / (totalDays - 2), 10);
taskGraphic.setAttributeNS(null,
"style",
"stroke:black;fill:blue;stroke-width:1;clip-path:url(#clip3)");
g.appendChild(taskGraphic);
break;
case ActionInfo.MILESTONE:
taskGraphic = SVGUtilities.createPath(doc,
"m " + (left +
daysToStart * 300 / (totalDays - 2) - 6) +
" " + (topEdge + 6) + "l6 6l6-6l-6-6z");
taskGraphic.setAttributeNS(null, "style", "stroke:black;fill:black;stroke-width:1;clip-path:url(#clip3)");
"m " + (left
+ daysToStart * 300 / (totalDays - 2) - 6)
+ " " + (topEdge + 6) + "l6 6l6-6l-6-6z");
taskGraphic.setAttributeNS(null,
"style",
"stroke:black;fill:black;stroke-width:1;clip-path:url(#clip3)");
g.appendChild(taskGraphic);
text = SVGUtilities.createText(doc,
left + daysToStart * 300 / (totalDays - 2) + 8,
topEdge + 9, df.format(start));
left + daysToStart * 300 / (totalDays - 2) + 8,
topEdge + 9, df.format(start));
g.appendChild(text);

break;
case ActionInfo.GROUPING:
taskGraphic = SVGUtilities.createPath(doc,
"m " + (left +
daysToStart * 300 / (totalDays - 2) - 6) +
" " + (topEdge + 6) + "l6 -6l" +
(days * 300 / (totalDays - 2)) +
" 0l6 6l-6 6l-4-4l" + -
(days * 300 / (totalDays - 2) - 8) + " 0l-4 4l-6-6z");
taskGraphic.setAttributeNS(null, "style", "stroke:black;fill:black;stroke-width:1;clip-path:url(#clip3)");
"m " + (left
+ daysToStart * 300 / (totalDays - 2) - 6)
+ " " + (topEdge + 6) + "l6 -6l"
+ (days * 300 / (totalDays - 2))
+ " 0l6 6l-6 6l-4-4l"
+ -(days * 300 / (totalDays - 2) - 8)
+ " 0l-4 4l-6-6z");
taskGraphic.setAttributeNS(null,
"style",
"stroke:black;fill:black;stroke-width:1;clip-path:url(#clip3)");
g.appendChild(taskGraphic);
break;
default:
@@ -262,8 +328,8 @@ public class SimplePlanDrawer implements PlanDrawer {
}
}
int currentDays =
(int)((currentDate.getTime() - lastWeek.getTime() +
43200000) / 86400000);
(int)((currentDate.getTime() - lastWeek.getTime()
+ 43200000) / 86400000);

text = SVGUtilities.createText(doc,
(float)(200 + (currentDays + 0.5) * 300 / 35),

Chargement…
Annuler
Enregistrer