From: Jeremias Maerki Date: Wed, 29 Jan 2003 16:35:59 +0000 (+0000) Subject: Move over to examples/plan X-Git-Tag: Alt-Design-integration-base~131 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e5026f18bac20486eb4e5643112cbe459c9f9875;p=xmlgraphics-fop.git Move over to examples/plan git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@195911 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/contrib/plan/.cvsignore b/contrib/plan/.cvsignore deleted file mode 100644 index 378eac25d..000000000 --- a/contrib/plan/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -build diff --git a/contrib/plan/README b/contrib/plan/README deleted file mode 100644 index 5ebe57ee2..000000000 --- a/contrib/plan/README +++ /dev/null @@ -1,6 +0,0 @@ -FOP Plan Readme - -The plan extension is an addition to FOP that can be used to produce a simple -plan diagram with tasks etc. - -See docs/plan.fo for further information. diff --git a/contrib/plan/build.bat b/contrib/plan/build.bat deleted file mode 100755 index 328fbef47..000000000 --- a/contrib/plan/build.bat +++ /dev/null @@ -1,35 +0,0 @@ -@echo off - -echo Plan Build System -echo ------------------- - -if "%JAVA_HOME%" == "" goto error - -set LIBDIR=..\..\lib -set LOCALCLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\classes.zip -set LOCALCLASSPATH=%LOCALCLASSPATH%;%LIBDIR%\ant.jar -set LOCALCLASSPATH=%LOCALCLASSPATH%;%LIBDIR%\xml-apis.jar -set LOCALCLASSPATH=%LOCALCLASSPATH%;%LIBDIR%\xercesImpl-2.2.1.jar -set LOCALCLASSPATH=%LOCALCLASSPATH%;%LIBDIR%\xalan-2.4.1.jar - -set ANT_HOME=%LIBDIR% - -echo Building with classpath %LOCALCLASSPATH% - -echo Starting Ant... - -%JAVA_HOME%\bin\java.exe -Dant.home=%ANT_HOME% -classpath "%LOCALCLASSPATH%" org.apache.tools.ant.Main %1 %2 %3 %4 %5 - -goto end - -:error - -echo ERROR: JAVA_HOME not found in your environment. -echo Please, set the JAVA_HOME variable in your environment to match the -echo location of the Java Virtual Machine you want to use. - -:end - -rem set LOCALCLASSPATH= - -pause \ No newline at end of file diff --git a/contrib/plan/build.sh b/contrib/plan/build.sh deleted file mode 100755 index 180a65190..000000000 --- a/contrib/plan/build.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -echo -echo "Plan Build System" -echo "----------------" -echo - -if [ "$JAVA_HOME" = "" ] ; then - echo "ERROR: JAVA_HOME not found in your environment." - echo - echo "Please, set the JAVA_HOME variable in your environment to match the" - echo "location of the Java Virtual Machine you want to use." - exit 1 -fi -LIBDIR=../../lib -LOCALCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/classes.zip -LOCALCLASSPATH=$LOCALCLASSPATH:$LIBDIR/ant.jar -LOCALCLASSPATH=$LOCALCLASSPATH:$LIBDIR/xml-apis.jar -LOCALCLASSPATH=$LOCALCLASSPATH:$LIBDIR/xercesImpl-2.2.1.jar -LOCALCLASSPATH=$LOCALCLASSPATH:$LIBDIR/xalan-2.4.1.jar -ANT_HOME=$LIBDIR - -echo -CP=$LOCALCLASSPATH -echo Building with classpath $CP - - -echo Starting Ant... -echo - -$JAVA_HOME/bin/java -Dant.home=$ANT_HOME -classpath "$CP" org.apache.tools.ant.Main $* diff --git a/contrib/plan/build.xml b/contrib/plan/build.xml deleted file mode 100644 index 9f65c4041..000000000 --- a/contrib/plan/build.xml +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/contrib/plan/docs/june.xml b/contrib/plan/docs/june.xml deleted file mode 100644 index 7f8092da3..000000000 --- a/contrib/plan/docs/june.xml +++ /dev/null @@ -1,84 +0,0 @@ - - -Plan for June - - - - - -Constuctor Team -38320518 -38320607 - - - -Constuctor Team -38320527 -38320608 - - - -Constuctor Team -38320608 - - - -Enviros -38320608 -38320623 - - - -Enviros -38320608 -38320612 - - - - - - -Simulators -38320602 -38320820 - - - -Simulators -38320602 -38320610 - - - -Simulators -38320610 - - - -Simulators -38320610 -38320630 - - - -Simulators -38320610 -38320617 - - - -Simulators -38320617 -38320621 - - - -Simulators -38320621 -38320630 - - - - - - diff --git a/contrib/plan/docs/plan.fo b/contrib/plan/docs/plan.fo deleted file mode 100644 index 7a8cd1c50..000000000 --- a/contrib/plan/docs/plan.fo +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - Plan Extension - - - Page - - - - - - The Plan Extension - - - -The plan extension is an addition to FOP that can be used to produce a -simple plan diagram with tasks etc. - - - - Options - - - -There a few basic options to specify the width, height and type of graph. -The start and end date to display is optional. -The locale specific information can also be specified. -All other options are set in the style attribute. - - - - Types of Graphs - - - - Sample Action Plan - - - - - - -Example Plan - - - - - -Team -20020618 -20020630 - - - -Team -20020620 -20020627 - - - -Team -20020628 - - - -Team -20020620 -20020630 - - - -individual -20020620 -20020630 - - - - - - - - - - - -A plan as an external graphic. - - - - - - - - - diff --git a/contrib/plan/resources/META-INF/services/org.apache.fop.fo.ElementMapping b/contrib/plan/resources/META-INF/services/org.apache.fop.fo.ElementMapping deleted file mode 100644 index 7c6c472bd..000000000 --- a/contrib/plan/resources/META-INF/services/org.apache.fop.fo.ElementMapping +++ /dev/null @@ -1,2 +0,0 @@ -org.apache.fop.plan.PlanElementMapping - diff --git a/contrib/plan/src/org/apache/fop/plan/ActionInfo.java b/contrib/plan/src/org/apache/fop/plan/ActionInfo.java deleted file mode 100644 index 07cdde241..000000000 --- a/contrib/plan/src/org/apache/fop/plan/ActionInfo.java +++ /dev/null @@ -1,65 +0,0 @@ -/* $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. - */ - -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 = ""; - - public void setType(int t) { - type = t; - } - - public int getType() { - return type; - } - - public void setLabel(String str) { - label = str; - } - - public void setOwner(String str) { - owner = str; - } - - public void setStartDate(Date sd) { - startDate = sd; - if (endDate == null) { - endDate = startDate; - } - } - - public void setEndDate(Date ed) { - endDate = ed; - } - - public String getLabel() { - return label; - } - - public String getOwner() { - return owner; - } - - public Date getStartDate() { - return startDate; - } - - public Date getEndDate() { - return endDate; - } - -} diff --git a/contrib/plan/src/org/apache/fop/plan/EventList.java b/contrib/plan/src/org/apache/fop/plan/EventList.java deleted file mode 100644 index 93418d9e1..000000000 --- a/contrib/plan/src/org/apache/fop/plan/EventList.java +++ /dev/null @@ -1,25 +0,0 @@ -/* $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. - */ - -package org.apache.fop.plan; - -import java.util.ArrayList; - -public class EventList { - ArrayList data = new ArrayList(); - - public void addGroupInfo(GroupInfo set) { - data.add(set); - } - - public int getSize() { - return data.size(); - } - - public GroupInfo getGroupInfo(int count) { - return (GroupInfo) data.get(count); - } -} diff --git a/contrib/plan/src/org/apache/fop/plan/GroupInfo.java b/contrib/plan/src/org/apache/fop/plan/GroupInfo.java deleted file mode 100644 index 5223ff38c..000000000 --- a/contrib/plan/src/org/apache/fop/plan/GroupInfo.java +++ /dev/null @@ -1,34 +0,0 @@ -/* $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. - */ - -package org.apache.fop.plan; - -import java.util.ArrayList; - -public class GroupInfo { - String name; - ArrayList actions = new ArrayList(); - - public GroupInfo(String n) { - name = n; - } - - public void addActionInfo(ActionInfo ai) { - actions.add(ai); - } - - public int getSize() { - return actions.size(); - } - - public ActionInfo getActionInfo(int c) { - return (ActionInfo) actions.get(c); - } - - public String getName() { - return name; - } -} diff --git a/contrib/plan/src/org/apache/fop/plan/Main.java b/contrib/plan/src/org/apache/fop/plan/Main.java deleted file mode 100644 index cc2c12644..000000000 --- a/contrib/plan/src/org/apache/fop/plan/Main.java +++ /dev/null @@ -1,67 +0,0 @@ -/* $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. - */ - -package org.apache.fop.plan; - -import java.io.*; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -import org.apache.batik.transcoder.svg2svg.SVGTranscoder; -import org.apache.batik.transcoder.TranscoderInput; -import org.apache.batik.transcoder.TranscoderOutput; - -public class Main { - - public static void main(String[] args) { - Main main = new Main(); - main.convert(args); - System.exit(0); - } - - public Main() { - } - - 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); - SVGTranscoder svgT = new SVGTranscoder(); - TranscoderInput input = new TranscoderInput(doc); - Writer ostream = new FileWriter(params[1]); - TranscoderOutput output = new TranscoderOutput(ostream); - svgT.transcode(input, output); - ostream.flush(); - ostream.close(); - - } catch (Exception e) { - e.printStackTrace(); - } - } - - public Document createSVGDocument(InputStream is) { - Document doc = null; - - Element root = null; - try { - doc = javax.xml.parsers.DocumentBuilderFactory.newInstance(). - newDocumentBuilder().parse(is); - - root = doc.getDocumentElement(); - - } catch (Exception e) { - e.printStackTrace(); - } - PlanRenderer gr = new PlanRenderer(); - gr.setFontInfo("sansserif", 12); - Document svgdoc = gr.createSVGDocument(doc); - return svgdoc; - } -} diff --git a/contrib/plan/src/org/apache/fop/plan/PlanDrawer.java b/contrib/plan/src/org/apache/fop/plan/PlanDrawer.java deleted file mode 100644 index 62932af48..000000000 --- a/contrib/plan/src/org/apache/fop/plan/PlanDrawer.java +++ /dev/null @@ -1,16 +0,0 @@ -/* $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. - */ - -package org.apache.fop.plan; - -import java.util.HashMap; - -import org.w3c.dom.Document; - -public interface PlanDrawer { - public Document createDocument(EventList data, float w, float h, - HashMap hints); -} diff --git a/contrib/plan/src/org/apache/fop/plan/PlanElement.java b/contrib/plan/src/org/apache/fop/plan/PlanElement.java deleted file mode 100644 index 6d4aaa662..000000000 --- a/contrib/plan/src/org/apache/fop/plan/PlanElement.java +++ /dev/null @@ -1,69 +0,0 @@ -/* $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. - */ - -package org.apache.fop.plan; - -import java.awt.geom.Point2D; - -import org.apache.fop.fo.FONode; -import org.apache.fop.apps.FOPException; - -import org.w3c.dom.Document; -import org.xml.sax.Attributes; - -public class PlanElement extends PlanObj { - Document svgDoc = null; - float width; - float height; - boolean converted; - - public PlanElement(FONode parent) { - super(parent); - } - - public void handleAttrs(Attributes attlist) throws FOPException { - super.handleAttrs(attlist); - createBasicDocument(); - } - - 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) { - getLogger().error("Could not convert Plan to SVG", t); - width = 0; - height = 0; - } - - } - - public Document getDocument() { - convertToSVG(); - return doc; - } - - public String getDocumentNamespace() { - if(svgDoc == null) { - return PlanElementMapping.URI; - } - return "http://www.w3.org/2000/svg"; - } - - public Point2D getDimension(Point2D view) { - convertToSVG(); - return new Point2D.Float(width, height); - } -} - diff --git a/contrib/plan/src/org/apache/fop/plan/PlanElementMapping.java b/contrib/plan/src/org/apache/fop/plan/PlanElementMapping.java deleted file mode 100644 index 721cdbd2c..000000000 --- a/contrib/plan/src/org/apache/fop/plan/PlanElementMapping.java +++ /dev/null @@ -1,71 +0,0 @@ -/* $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. - */ - -package org.apache.fop.plan; - -import org.apache.fop.fo.FOTreeBuilder; -import org.apache.fop.fo.FONode; -import org.apache.fop.fo.ElementMapping; -import org.apache.fop.image.analyser.XMLReader; -import org.apache.fop.image.FopImage; -import org.w3c.dom.Document; - -import java.util.HashMap; - -public class PlanElementMapping implements ElementMapping { - - 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.put("plan", new PE()); - foObjs.put(DEFAULT, new PlanMaker()); - - XMLReader.setConverter(URI, new PlanConverter()); - } - } - - public void addToBuilder(FOTreeBuilder builder) { - setupPlan(); - builder.addMapping(URI, foObjs); - } - - static class PlanMaker extends ElementMapping.Maker { - public FONode make(FONode parent) { - return new PlanObj(parent); - } - } - - static class PE extends ElementMapping.Maker { - public FONode make(FONode parent) { - return new PlanElement(parent); - } - } - - 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) { - } - return null; - - } - } - -} diff --git a/contrib/plan/src/org/apache/fop/plan/PlanHints.java b/contrib/plan/src/org/apache/fop/plan/PlanHints.java deleted file mode 100644 index 1090cb48a..000000000 --- a/contrib/plan/src/org/apache/fop/plan/PlanHints.java +++ /dev/null @@ -1,20 +0,0 @@ -/* $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. - */ - -package org.apache.fop.plan; - -public class PlanHints { - public static final String PLAN_BORDER = "border"; - public static final String PLAN_LEGEND = "legend"; - public static final String FONT_FAMILY = "font-family"; - public static final String FONT_SIZE = "font-size"; - public static final String LEGEND_TYPE = "legendType"; - public static final String LOCALE = "locale"; - public static final String LABEL_TYPE = "labelType"; - public static final String LABEL_FONT_SIZE = "labelFontSize"; - public static final String LABEL_FONT = "labelFont"; - -} diff --git a/contrib/plan/src/org/apache/fop/plan/PlanObj.java b/contrib/plan/src/org/apache/fop/plan/PlanObj.java deleted file mode 100644 index c2e46822e..000000000 --- a/contrib/plan/src/org/apache/fop/plan/PlanObj.java +++ /dev/null @@ -1,32 +0,0 @@ -/* $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. - */ - -package org.apache.fop.plan; - -// FOP -import org.apache.fop.fo.FONode; -import org.apache.fop.fo.XMLObj; - -/** - * Since SVG objects are not layed out then this class checks - * that this element is not being layed out inside some incorrect - * element. - */ -public class PlanObj extends XMLObj { - - /** - * - * @param parent the parent formatting object - */ - public PlanObj(FONode parent) { - super(parent); - } - - public String getNameSpace() { - return "http://xml.apache.org/fop/plan"; - } -} - diff --git a/contrib/plan/src/org/apache/fop/plan/PlanRenderer.java b/contrib/plan/src/org/apache/fop/plan/PlanRenderer.java deleted file mode 100644 index 1aa3025ea..000000000 --- a/contrib/plan/src/org/apache/fop/plan/PlanRenderer.java +++ /dev/null @@ -1,213 +0,0 @@ -/* $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. - */ - -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 org.apache.batik.dom.svg.SVGDOMImplementation; - -public class PlanRenderer { - final static String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI; - String fontFamily = "sansserif"; - 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(); - - String[] colours; - String[] darkcolours; - - public PlanRenderer() { - } - - public void setFontInfo(String fam, float si) { - fontFamily = fam; - fontSize = si; - } - - public float getWidth() { - return width; - } - - public float getHeight() { - return height; - } - - protected float toFloat(String str) { - return Float.parseFloat(str); - } - - public Document createSVGDocument(Document planDoc) { - - Element svgRoot = planDoc.getDocumentElement(); - - width = toFloat(svgRoot.getAttribute("width")); - height = toFloat(svgRoot.getAttribute("height")); - type = svgRoot.getAttribute("type"); - lang = svgRoot.getAttribute("lang"); - country = svgRoot.getAttribute("country"); - variant = svgRoot.getAttribute("variant"); - String style = svgRoot.getAttribute("style"); - parseStyle(style); - - Locale locale = new Locale(lang, country == null ? "" : country, - variant == null ? "" : variant); - - String start = svgRoot.getAttribute("start"); - String end = svgRoot.getAttribute("end"); - Date sd = getDate(start, locale); - Date ed = getDate(end, locale); - - String title = ""; - EventList data = null; - NodeList childs = svgRoot.getChildNodes(); - for (int i = 0; i < childs.getLength(); i++) { - Node obj = childs.item(i); - String nname = obj.getNodeName(); - if (nname.equals("title")) { - title = ((Element) obj).getFirstChild().getNodeValue(); - } else if (nname.equals("events")) { - data = getEvents((Element) obj, locale); - } - } - - SimplePlanDrawer planDrawer = new SimplePlanDrawer(); - planDrawer.setStartDate(sd); - planDrawer.setEndDate(ed); - hints.put(PlanHints.FONT_FAMILY, fontFamily); - hints.put(PlanHints.FONT_SIZE, new Float(fontSize)); - hints.put(PlanHints.LOCALE, locale); - Document doc = - planDrawer.createDocument(data, width, height, hints); - return doc; - } - - protected void parseStyle(String style) { - hints.put(PlanHints.PLAN_BORDER, new Boolean(true)); - hints.put(PlanHints.FONT_FAMILY, fontFamily); - hints.put(PlanHints.FONT_SIZE, new Float(fontSize)); - hints.put(PlanHints.LABEL_FONT_SIZE, new Float(fontSize)); - hints.put(PlanHints.LABEL_FONT, fontFamily); - hints.put(PlanHints.LABEL_TYPE, "textOnly"); - - StringTokenizer st = new StringTokenizer(style, ";"); - while (st.hasMoreTokens()) { - String pair = st.nextToken().trim(); - int index = pair.indexOf(":"); - String name = pair.substring(0, index).trim(); - String val = pair.substring(index + 1).trim(); - if (name.equals(PlanHints.PLAN_BORDER)) { - hints.put(name, Boolean.valueOf(val)); - } else if (name.equals(PlanHints.FONT_SIZE)) { - hints.put(name, Float.valueOf(val)); - } else if (name.equals(PlanHints.LABEL_FONT_SIZE)) { - hints.put(name, Float.valueOf(val)); - } else { - hints.put(name, val); - } - } - } - - public ActionInfo getActionInfo(Element ele, Locale locale) { - String t = ele.getAttribute("type"); - - NodeList childs = ele.getChildNodes(); - ActionInfo data = new ActionInfo(); - if (t.equals("milestone")) { - data.setType(ActionInfo.MILESTONE); - } else if (t.equals("task")) { - data.setType(ActionInfo.TASK); - } else if (t.equals("grouping")) { - data.setType(ActionInfo.GROUPING); - } else { - } - - for (int i = 0; i < childs.getLength(); i++) { - Node obj = childs.item(i); - String nname = obj.getNodeName(); - if (nname.equals("label")) { - String dat = ((Element) obj).getFirstChild().getNodeValue(); - data.setLabel(dat); - } else if (nname.equals("owner")) { - String dat = ((Element) obj).getFirstChild().getNodeValue(); - data.setOwner(dat); - } else if (nname.equals("startdate")) { - Date dat = getDate((Element) obj, locale); - data.setStartDate(dat); - } else if (nname.equals("enddate")) { - Date dat = getDate((Element) obj, locale); - data.setEndDate(dat); - } - } - return data; - } - - public EventList getEvents(Element ele, Locale locale) { - EventList data = new EventList(); - NodeList childs = ele.getChildNodes(); - for (int i = 0; i < childs.getLength(); i++) { - Node obj = childs.item(i); - if (obj.getNodeName().equals("group")) { - GroupInfo dat = getGroupInfo((Element) obj, locale); - data.addGroupInfo(dat); - } - } - return data; - } - - public GroupInfo getGroupInfo(Element ele, Locale locale) { - NodeList childs = ele.getChildNodes(); - GroupInfo data = new GroupInfo(ele.getAttribute("name")); - for (int i = 0; i < childs.getLength(); i++) { - Node obj = childs.item(i); - if (obj.getNodeName().equals("action")) { - ActionInfo dat = getActionInfo((Element) obj, locale); - data.addActionInfo(dat); - } - } - return data; - } - - public Date getDate(Element ele, Locale locale) { - String label = ele.getFirstChild().getNodeValue(); - return getDate(label, locale); - } - - public Date getDate(String label, Locale locale) { - Calendar cal = Calendar.getInstance(locale); - - String str; - str = label.substring(0, 4); - int intVal = Integer.valueOf(str).intValue(); - cal.set(Calendar.YEAR, intVal); - - str = label.substring(4, 6); - intVal = Integer.valueOf(str).intValue(); - cal.set(Calendar.MONTH, intVal - 1); - - str = label.substring(6, 8); - intVal = Integer.valueOf(str).intValue(); - cal.set(Calendar.DATE, intVal); - return cal.getTime(); - } -} - diff --git a/contrib/plan/src/org/apache/fop/plan/SimplePlanDrawer.java b/contrib/plan/src/org/apache/fop/plan/SimplePlanDrawer.java deleted file mode 100644 index 237a58749..000000000 --- a/contrib/plan/src/org/apache/fop/plan/SimplePlanDrawer.java +++ /dev/null @@ -1,283 +0,0 @@ -/* $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. - */ - -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 org.w3c.dom.*; -import org.w3c.dom.svg.*; -import org.w3c.dom.css.*; - -import org.apache.batik.dom.svg.SVGDOMImplementation; - -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; - - public void setStartDate(Date sd) { - startDate = sd; - } - - public void setEndDate(Date ed) { - endDate = ed; - } - - public Document createDocument(EventList data, float w, float h, - HashMap hints) { - this.width = w; - this.height = h; - this.hints = hints; - fontSize = ((Float) hints.get(PlanHints.FONT_SIZE)).floatValue(); - bord = ((Boolean) hints.get(PlanHints.PLAN_BORDER)).booleanValue(); - - String title = ""; - - DOMImplementation impl = - SVGDOMImplementation.getDOMImplementation(); - Document doc = impl.createDocument(svgNS, "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 = 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); - border.setAttributeNS(null, "style", "stroke:black;fill:none"); - svgRoot.appendChild(border); - } - - float strwidth = SVGUtilities.getStringWidth(title, font); - - Element text; - float pos = (float)(80 - strwidth / 2.0); - if (pos < 5) { - pos = 5; - } - text = SVGUtilities.createText(doc, pos, 18, title); - text.setAttributeNS(null, "style", "font-size:14"); - svgRoot.appendChild(text); - - topEdge = SVGUtilities.getStringHeight(title, font) + 5; - - // add the actual pie chart - addPlan(doc, svgRoot, data); - //addLegend(doc, svgRoot, data); - - return doc; - } - - protected void addPlan(Document doc, Element svgRoot, EventList data) { - Date currentDate = new Date(); - - Date lastWeek = startDate; - Date future = endDate; - Calendar lw = Calendar.getInstance(); - if(lastWeek == null || future == null) { - int dow = lw.get(Calendar.DAY_OF_WEEK); - lw.add(Calendar.DATE, -dow - 6); - lastWeek = lw.getTime(); - lw.add(Calendar.DATE, 5 * 7); - future = lw.getTime(); - } - long totalDays = (long)((future.getTime() - lastWeek.getTime() + 43200000) / 86400000); - lw.setTime(lastWeek); - int startDay = lw.get(Calendar.DAY_OF_WEEK); - - float graphTop = topEdge; - Element g; - Element line; - line = SVGUtilities.createLine(doc, 0, topEdge, width, topEdge); - line.setAttributeNS(null, "style", "fill:none;stroke:black"); - svgRoot.appendChild(line); - - Element clip1 = SVGUtilities.createClip(doc, - 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"); - Element clip3 = SVGUtilities.createClip(doc, - SVGUtilities.createPath(doc, - "m200 0l" + (width - 200) + " 0l0 " + height + "l-" + - (width - 200) + " 0z"), "clip3"); - svgRoot.appendChild(clip1); - svgRoot.appendChild(clip2); - svgRoot.appendChild(clip3); - - DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT); - Element text; - text = SVGUtilities.createText(doc, 201, topEdge - 1, - df.format(lastWeek)); - svgRoot.appendChild(text); - - text = SVGUtilities.createText(doc, width, topEdge - 1, - df.format(future)); - text.setAttributeNS(null, "text-anchor", "end"); - svgRoot.appendChild(text); - - line = SVGUtilities.createLine(doc, 128, topEdge, 128, height); - line.setAttributeNS(null, "style", "fill:none;stroke:rgb(150,150,150)"); - svgRoot.appendChild(line); - int offset = 0; - for (int count = startDay; count < startDay + totalDays - 1; count++) { - 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); - rect.setAttributeNS(null, "style", "stroke:none;fill:rgb(230,230,230)"); - svgRoot.appendChild(rect); - } - line = SVGUtilities.createLine(doc, - 200 + (offset - 1) * (width - 200) / (totalDays - 2), - (float)(topEdge + 0.5), - 200 + (offset - 1) * (width - 200) / (totalDays - 2), - (float)(height - 0.5)); - line.setAttributeNS(null, "style", "fill:none;stroke:rgb(200,200,200)"); - svgRoot.appendChild(line); - } - - - for (int count = 0; count < data.getSize(); count++) { - GroupInfo gi = data.getGroupInfo(count); - g = SVGUtilities.createG(doc); - text = SVGUtilities.createText(doc, 1, topEdge + 12, - gi.getName()); - text.setAttributeNS(null, "style", "clip-path:url(#clip1)"); - g.appendChild(text); - if (count > 0) { - line = SVGUtilities.createLine(doc, 0, topEdge + 2, - width, topEdge + 2); - line.setAttributeNS(null, "style", "fill:none;stroke:rgb(100,100,100)"); - g.appendChild(line); - } - - float lastTop = topEdge; - topEdge += 14; - boolean showing = false; - for (int count1 = 0; count1 < gi.getSize(); count1++) { - ActionInfo act = gi.getActionInfo(count1); - String name = act.getOwner(); - String label = act.getLabel(); - text = SVGUtilities.createText(doc, 8, topEdge + 12, label); - text.setAttributeNS(null, "style", "clip-path:url(#clip1)"); - g.appendChild(text); - - text = SVGUtilities.createText(doc, 130, topEdge + 12, - name); - text.setAttributeNS(null, "style", "clip-path:url(#clip2)"); - g.appendChild(text); - int type = act.getType(); - Date start = act.getStartDate(); - Date end = act.getEndDate(); - if (end.after(lastWeek) && start.before(future)) { - showing = true; - 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 daysFromEnd = - (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)"); - 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)"); - g.appendChild(taskGraphic); - text = SVGUtilities.createText(doc, - 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)"); - g.appendChild(taskGraphic); - break; - default: - break; - } - } - - topEdge += 14; - } - if (showing) { - svgRoot.appendChild(g); - } else { - topEdge = lastTop; - } - } - int currentDays = - (int)((currentDate.getTime() - lastWeek.getTime() + - 43200000) / 86400000); - - text = SVGUtilities.createText(doc, - (float)(200 + (currentDays + 0.5) * 300 / 35), - graphTop - 1, df.format(currentDate)); - text.setAttributeNS(null, "text-anchor", "middle"); - text.setAttributeNS(null, "style", "stroke:rgb(100,100,100)"); - svgRoot.appendChild(text); - - line = SVGUtilities.createLine(doc, - (float)(200 + (currentDays + 0.5) * 300 / 35), graphTop, - (float)(200 + (currentDays + 0.5) * 300 / 35), height); - line.setAttributeNS(null, "style", "fill:none;stroke:rgb(200,50,50);stroke-dasharray:5,5"); - svgRoot.appendChild(line); - - - } -}