aboutsummaryrefslogtreecommitdiffstats
path: root/examples/plan
diff options
context:
space:
mode:
authorGlenn Adams <gadams@apache.org>2016-03-06 06:14:41 +0000
committerGlenn Adams <gadams@apache.org>2016-03-06 06:14:41 +0000
commit57949ba0cfffa2dd5933a103c6ad867de9f1e7a0 (patch)
treecd1d8100a9135449635251820f39f272151005ac /examples/plan
parentc8cde713f54ca731f4a7f3bfaef8af9e8a1b9262 (diff)
downloadxmlgraphics-fop-57949ba0cfffa2dd5933a103c6ad867de9f1e7a0.tar.gz
xmlgraphics-fop-57949ba0cfffa2dd5933a103c6ad867de9f1e7a0.zip
Configure maven build.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/maven@1733788 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'examples/plan')
-rw-r--r--examples/plan/README6
-rw-r--r--examples/plan/build.xml149
-rw-r--r--examples/plan/docs/june.xml84
-rw-r--r--examples/plan/docs/plan.fo114
-rw-r--r--examples/plan/resources/META-INF/services/org.apache.fop.fo.ElementMapping2
-rw-r--r--examples/plan/resources/META-INF/services/org.apache.xmlgraphics.image.loader.spi.ImagePreloader1
-rw-r--r--examples/plan/src/org/apache/fop/plan/ActionInfo.java80
-rw-r--r--examples/plan/src/org/apache/fop/plan/EventList.java39
-rw-r--r--examples/plan/src/org/apache/fop/plan/GroupInfo.java48
-rw-r--r--examples/plan/src/org/apache/fop/plan/Main.java95
-rw-r--r--examples/plan/src/org/apache/fop/plan/PlanDrawer.java33
-rw-r--r--examples/plan/src/org/apache/fop/plan/PlanElement.java101
-rw-r--r--examples/plan/src/org/apache/fop/plan/PlanElementMapping.java66
-rw-r--r--examples/plan/src/org/apache/fop/plan/PlanHints.java46
-rw-r--r--examples/plan/src/org/apache/fop/plan/PlanObj.java51
-rw-r--r--examples/plan/src/org/apache/fop/plan/PlanRenderer.java227
-rw-r--r--examples/plan/src/org/apache/fop/plan/PreloaderPlan.java135
-rw-r--r--examples/plan/src/org/apache/fop/plan/SimplePlanDrawer.java321
18 files changed, 0 insertions, 1598 deletions
diff --git a/examples/plan/README b/examples/plan/README
deleted file mode 100644
index 5ebe57ee2..000000000
--- a/examples/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/examples/plan/build.xml b/examples/plan/build.xml
deleted file mode 100644
index 394310002..000000000
--- a/examples/plan/build.xml
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<!-- $Id$ -->
-<!-- ===========================================================================
-
-============================================================================ -->
-
-<project default="package" basedir=".">
-
- <path id="libs-build-classpath">
- <fileset dir="../../lib">
- <include name="*.jar"/>
- </fileset>
- <fileset dir="../../build">
- <include name="fop.jar"/>
- </fileset>
- </path>
-
- <!-- =================================================================== -->
- <!-- Initialization target -->
- <!-- =================================================================== -->
- <target name="init">
- <tstamp/>
- <property name="Name" value="Plan"/>
- <property name="name" value="plan"/>
- <property name="version" value="0.1-CVS"/>
- <filter token="version" value="${version}"/>
- <property name="year" value="2002"/>
-
- <echo message="------------------- ${Name} ${version} [${year}] ----------------"/>
-
- <property name="build.compiler" value="classic"/>
- <property name="debug" value="on"/>
- <property name="optimize" value="off"/>
- <property name="deprecation" value="on"/>
-
- <property name="src.dir" value="./src"/>
- <property name="lib.dir" value="./lib"/>
- <property name="packages" value="org.apache.fop.*"/>
-
- <property name="build.dir" value="./build"/>
- <property name="build.src" value="./build/src"/>
- <property name="build.dest" value="./build/classes"/>
-
- <property name="resource.dir" value="resources"/>
- <property name="plan.dir" value="org/apache/fop/plan"/>
-
- <property name="main.class" value="org.apache.fop.plan.Main"/>
- <property name="runtime.classpath" value="fop.jar xml-apis.jar xercesImpl-2.2.1.jar xalan-2.4.1.jar batik.jar"/>
-
- </target>
-
- <!-- =================================================================== -->
- <!-- Help on usage -->
- <!-- =================================================================== -->
- <target name="usage">
- <echo message="Use the -projecthelp option instead"/>
- </target>
-
- <!-- =================================================================== -->
- <!-- Prepares the build directory -->
- <!-- =================================================================== -->
- <target name="prepare" depends="init">
- <!-- create directories -->
- <echo message="Preparing the build directories"/>
- <mkdir dir="${build.dir}"/>
- <mkdir dir="${build.src}"/>
- <mkdir dir="${build.src}/${plan.dir}"/>
- </target>
-
- <!-- =================================================================== -->
- <!-- Prepares the source code -->
- <!-- =================================================================== -->
- <target name="prepare-src" depends="prepare">
- <!-- copy src files -->
- <copy todir="${build.src}">
- <fileset dir="${src.dir}"
- excludes="**/Makefile*, **/package.html"/>
- </copy>
- <copy todir="${build.dest}/">
- <fileset dir="${resource.dir}"/>
- </copy>
- </target>
-
- <!-- =================================================================== -->
- <!-- Compiles the source directory -->
- <!-- =================================================================== -->
- <target name="compile" depends="prepare-src" description="Compile the Java sources">
- <echo message="Compiling the sources "/>
- <!-- create directories -->
- <mkdir dir="${build.dest}"/>
-
- <javac srcdir="${build.src}"
- destdir="${build.dest}"
- debug="${debug}"
- deprecation="${deprecation}"
- optimize="${optimize}"
- excludes="">
- <classpath refid="libs-build-classpath"/>
- </javac>
- </target>
-
- <!-- =================================================================== -->
- <!-- Creates the class package -->
- <!-- =================================================================== -->
- <target name="package" depends="compile" description="Create jar file">
- <echo message="Creating the jar file ${build.dir}/${name}.jar"/>
- <tstamp>
- <format property="ts" pattern="yyyyMMdd-HHmmss-z"/>
- </tstamp>
-
- <jar jarfile="${build.dir}/${name}.jar"
- basedir="${build.dest}"
- includes="**">
- <manifest>
- <attribute name="Main-Class" value="${main.class}"/>
- <attribute name="Class-Path" value="${runtime.classpath}"/>
- <attribute name="Implementation-Title" value="${Name}"/>
- <attribute name="Implementation-Version" value="${version}"/>
- <attribute name="Implementation-Vendor" value="Apache Software Foundation (http://xmlgraphics.apache.org/fop/)"/>
- <attribute name="Build-Id" value="${ts} (${user.name} [${os.name} ${os.version} ${os.arch}])"/>
- </manifest>
- </jar>
- </target>
-
- <!-- =================================================================== -->
- <!-- Clean targets -->
- <!-- =================================================================== -->
- <target name="clean" depends="init" description="Cleans the build directory">
- <delete dir="${build.dir}"/>
- </target>
-
-</project>
-
diff --git a/examples/plan/docs/june.xml b/examples/plan/docs/june.xml
deleted file mode 100644
index fa8c85cc0..000000000
--- a/examples/plan/docs/june.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plan xmlns="http://xmlgraphics.apache.org/fop/plan" width="500" height="300" start="38320523" end="38320706">
-<title>Plan for June</title>
-<events>
-
-<group name="Bio-Park">
-<action type="grouping" id="construction">
-<label>Panel Installation</label>
-<owner>Constuctor Team</owner>
-<startdate>38320518</startdate>
-<enddate>38320607</enddate>
-</action>
-<action type="task" belongs="construction">
-<label>Integrety Test</label>
-<owner>Constuctor Team</owner>
-<startdate>38320527</startdate>
-<enddate>38320608</enddate>
-</action>
-<action type="milestone" depends="construction">
-<label>Shell Complete</label>
-<owner>Constuctor Team</owner>
-<startdate>38320608</startdate>
-</action>
-<action type="grouping">
-<label>Environment Installation</label>
-<owner>Enviros</owner>
-<startdate>38320608</startdate>
-<enddate>38320623</enddate>
-</action>
-<action type="task">
-<label>Gas</label>
-<owner>Enviros</owner>
-<startdate>38320608</startdate>
-<enddate>38320612</enddate>
-</action>
-</group>
-
-<group name="Education Centre">
-<action type="grouping">
-<label>Plan Optimisation</label>
-<owner>Simulators</owner>
-<startdate>38320602</startdate>
-<enddate>38320820</enddate>
-</action>
-<action type="task">
-<label>Simulation Params</label>
-<owner>Simulators</owner>
-<startdate>38320602</startdate>
-<enddate>38320610</enddate>
-</action>
-<action type="milestone">
-<label>Preparation Complete</label>
-<owner>Simulators</owner>
-<startdate>38320610</startdate>
-</action>
-<action type="grouping" id="simulation">
-<label>Paths</label>
-<owner>Simulators</owner>
-<startdate>38320610</startdate>
-<enddate>38320630</enddate>
-</action>
-<action type="task" id="opt" belongs="simulation">
-<label>Optimal Path</label>
-<owner>Simulators</owner>
-<startdate>38320610</startdate>
-<enddate>38320617</enddate>
-</action>
-<action type="task" belongs="simulation">
-<label>Alternatives</label>
-<owner>Simulators</owner>
-<startdate>38320617</startdate>
-<enddate>38320621</enddate>
-</action>
-<action type="task" depends="opt" belongs="simulation">
-<label>Risk Determination</label>
-<owner>Simulators</owner>
-<startdate>38320621</startdate>
-<enddate>38320630</enddate>
-</action>
-</group>
-
-</events>
-</plan>
-
diff --git a/examples/plan/docs/plan.fo b/examples/plan/docs/plan.fo
deleted file mode 100644
index d47755b31..000000000
--- a/examples/plan/docs/plan.fo
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
- <fo:layout-master-set>
- <fo:simple-page-master
- margin-right="1.5cm"
- margin-left="1.5cm"
- margin-bottom="2cm"
- margin-top="1cm"
- page-width="21cm"
- page-height="29.7cm"
- master-name="first">
- <fo:region-body margin-top="1cm"/>
- <fo:region-before extent="1cm"/>
- <fo:region-after extent="1.5cm"/>
- </fo:simple-page-master>
- </fo:layout-master-set>
-
- <fo:page-sequence master-reference="first">
- <fo:static-content flow-name="xsl-region-before">
- <fo:block line-height="14pt" font-size="10pt"
- text-align="end">Plan Extension</fo:block>
- </fo:static-content>
- <fo:static-content flow-name="xsl-region-after">
- <fo:block line-height="14pt" font-size="10pt"
- text-align="end">Page <fo:page-number/></fo:block>
- </fo:static-content>
-
- <fo:flow flow-name="xsl-region-body">
-
- <fo:block space-before.optimum="3pt" space-after.optimum="15pt">
- The Plan Extension
- </fo:block>
-
- <fo:block space-before.optimum="3pt" space-after.optimum="15pt">
-The plan extension is an addition to FOP that can be used to produce a
-simple plan diagram with tasks etc.
- </fo:block>
-
- <fo:block space-before.optimum="3pt" space-after.optimum="15pt">
- Options
- </fo:block>
-
- <fo:block space-before.optimum="3pt" space-after.optimum="15pt">
-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.
- </fo:block>
-
- <fo:block space-before.optimum="3pt" space-after.optimum="15pt">
- Types of Graphs
- </fo:block>
-
- <fo:block space-before.optimum="3pt" space-after.optimum="15pt">
- Sample Action Plan
- </fo:block>
-
- <fo:block space-before.optimum="3pt" space-after.optimum="15pt">
-<fo:block space-after.optimum="5pt">
-<fo:instream-foreign-object>
-<plan xmlns="http://xmlgraphics.apache.org/fop/plan" width="500" height="200" start="20020612" end="20020702">
-<title>Example Plan</title>
-<events>
-
-<group name="Task Group">
-<action type="grouping" id="gr1">
-<label>First Task</label>
-<owner>Team</owner>
-<startdate>20020618</startdate>
-<enddate>20020630</enddate>
-</action>
-<action type="task" belongs="gr1">
-<label>Another Task</label>
-<owner>Team</owner>
-<startdate>20020620</startdate>
-<enddate>20020627</enddate>
-</action>
-<action type="milestone" depends="gr1">
-<label>Milestone</label>
-<owner>Team</owner>
-<startdate>20020628</startdate>
-</action>
-<action type="grouping">
-<label>Task</label>
-<owner>Team</owner>
-<startdate>20020620</startdate>
-<enddate>20020630</enddate>
-</action>
-<action type="task">
-<label>Difficult Task</label>
-<owner>individual</owner>
-<startdate>20020620</startdate>
-<enddate>20020630</enddate>
-</action>
-</group>
-
-</events>
-</plan>
-</fo:instream-foreign-object>
-</fo:block>
-
- </fo:block>
-
- <fo:block>
-A plan as an external graphic.
- </fo:block>
-
- <fo:block>
-<fo:external-graphic src="june.xml"/>
- </fo:block>
- </fo:flow>
- </fo:page-sequence>
-</fo:root>
-
diff --git a/examples/plan/resources/META-INF/services/org.apache.fop.fo.ElementMapping b/examples/plan/resources/META-INF/services/org.apache.fop.fo.ElementMapping
deleted file mode 100644
index 7c6c472bd..000000000
--- a/examples/plan/resources/META-INF/services/org.apache.fop.fo.ElementMapping
+++ /dev/null
@@ -1,2 +0,0 @@
-org.apache.fop.plan.PlanElementMapping
-
diff --git a/examples/plan/resources/META-INF/services/org.apache.xmlgraphics.image.loader.spi.ImagePreloader b/examples/plan/resources/META-INF/services/org.apache.xmlgraphics.image.loader.spi.ImagePreloader
deleted file mode 100644
index 444080090..000000000
--- a/examples/plan/resources/META-INF/services/org.apache.xmlgraphics.image.loader.spi.ImagePreloader
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.fop.plan.PreloaderPlan
diff --git a/examples/plan/src/org/apache/fop/plan/ActionInfo.java b/examples/plan/src/org/apache/fop/plan/ActionInfo.java
deleted file mode 100644
index 1535ed5ec..000000000
--- a/examples/plan/src/org/apache/fop/plan/ActionInfo.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-
-package org.apache.fop.plan;
-
-import java.util.Date;
-
-public class ActionInfo {
-
- public static final int TASK = 1;
- public static final int MILESTONE = 2;
- public static final int GROUPING = 3;
-
- 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;
- }
-
- 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/examples/plan/src/org/apache/fop/plan/EventList.java b/examples/plan/src/org/apache/fop/plan/EventList.java
deleted file mode 100644
index 53b32f7c0..000000000
--- a/examples/plan/src/org/apache/fop/plan/EventList.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-
-package org.apache.fop.plan;
-
-import java.util.List;
-
-public class EventList {
-
- private List data = new java.util.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/examples/plan/src/org/apache/fop/plan/GroupInfo.java b/examples/plan/src/org/apache/fop/plan/GroupInfo.java
deleted file mode 100644
index a83228197..000000000
--- a/examples/plan/src/org/apache/fop/plan/GroupInfo.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-
-package org.apache.fop.plan;
-
-import java.util.List;
-
-public class GroupInfo {
-
- private String name;
- private List actions = new java.util.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/examples/plan/src/org/apache/fop/plan/Main.java b/examples/plan/src/org/apache/fop/plan/Main.java
deleted file mode 100644
index 7b6f5a05e..000000000
--- a/examples/plan/src/org/apache/fop/plan/Main.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-
-package org.apache.fop.plan;
-
-import java.io.InputStream;
-import java.io.Writer;
-
-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;
-
-/**
- * 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);
- }
-
- /**
- * 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 {
- InputStream is = new java.io.FileInputStream(params[0]);
- Document doc = createSVGDocument(is);
- SVGTranscoder svgT = new SVGTranscoder();
- TranscoderInput input = new TranscoderInput(doc);
- Writer ostream = new java.io.FileWriter(params[1]);
- TranscoderOutput output = new TranscoderOutput(ostream);
- svgT.transcode(input, output);
- ostream.flush();
- ostream.close();
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 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;
-
- 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/examples/plan/src/org/apache/fop/plan/PlanDrawer.java b/examples/plan/src/org/apache/fop/plan/PlanDrawer.java
deleted file mode 100644
index 7f79bb737..000000000
--- a/examples/plan/src/org/apache/fop/plan/PlanDrawer.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-
-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 {
-
- Document createDocument(EventList data, float w, float h,
- HashMap hints);
-}
diff --git a/examples/plan/src/org/apache/fop/plan/PlanElement.java b/examples/plan/src/org/apache/fop/plan/PlanElement.java
deleted file mode 100644
index e7fb8a1e7..000000000
--- a/examples/plan/src/org/apache/fop/plan/PlanElement.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-
-package org.apache.fop.plan;
-
-import java.awt.geom.Point2D;
-
-import org.w3c.dom.Document;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.Locator;
-
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.PropertyList;
-
-/**
- * This class defines the plan element.
- */
-public class PlanElement extends PlanObj {
-
- 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);
- }
-
- /** {@inheritDoc} */
- public void processNode(String elementName, Locator locator,
- Attributes attlist, PropertyList propertyList)
- throws FOPException {
- super.processNode(elementName, locator, attlist, propertyList);
- 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) {
- getLogger().error("Could not convert Plan to SVG", t);
- width = 0;
- height = 0;
- }
-
- }
-
- /** {@inheritDoc} */
- public Document getDOMDocument() {
- convertToSVG();
- return doc;
- }
-
- /** {@inheritDoc} */
- public String getNamespaceURI() {
- if (svgDoc == null) {
- return PlanElementMapping.NAMESPACE;
- }
- return "http://www.w3.org/2000/svg";
- }
-
- /** {@inheritDoc} */
- public Point2D getDimension(Point2D view) {
- convertToSVG();
- return new Point2D.Float(width, height);
- }
-}
-
diff --git a/examples/plan/src/org/apache/fop/plan/PlanElementMapping.java b/examples/plan/src/org/apache/fop/plan/PlanElementMapping.java
deleted file mode 100644
index 5b8a0b5bb..000000000
--- a/examples/plan/src/org/apache/fop/plan/PlanElementMapping.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-
-package org.apache.fop.plan;
-
-import org.w3c.dom.DOMImplementation;
-
-import org.apache.fop.fo.ElementMapping;
-import org.apache.fop.fo.FONode;
-
-/**
- * This class provides the element mapping for FOP.
- */
-public class PlanElementMapping extends ElementMapping {
-
- /** Plan Namespace */
- public static final String NAMESPACE = "http://xmlgraphics.apache.org/fop/plan";
-
- /** Main constructor. */
- public PlanElementMapping() {
- this.namespaceURI = NAMESPACE;
- }
-
- /** {@inheritDoc} */
- public DOMImplementation getDOMImplementation() {
- return getDefaultDOMImplementation();
- }
-
- /** {@inheritDoc} */
- protected void initialize() {
- if (foObjs == null) {
- foObjs = new java.util.HashMap<String, Maker>();
- foObjs.put("plan", new PE());
- foObjs.put(DEFAULT, new PlanMaker());
- }
- }
-
- 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);
- }
- }
-
-}
diff --git a/examples/plan/src/org/apache/fop/plan/PlanHints.java b/examples/plan/src/org/apache/fop/plan/PlanHints.java
deleted file mode 100644
index a50d91139..000000000
--- a/examples/plan/src/org/apache/fop/plan/PlanHints.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-
-package org.apache.fop.plan;
-
-/**
- * This interface defines some constants for use in the plan package.
- */
-public interface PlanHints {
-
- /** Border attribute */
- String PLAN_BORDER = "border";
- /** Legend attribute */
- String PLAN_LEGEND = "legend";
- /** Font family attribute */
- String FONT_FAMILY = "font-family";
- /** Font size attribute */
- String FONT_SIZE = "font-size";
- /** Legent type attribute */
- String LEGEND_TYPE = "legendType";
- /** Locale attribute */
- String LOCALE = "locale";
- /** Label type attribute */
- String LABEL_TYPE = "labelType";
- /** Label font size attribute */
- String LABEL_FONT_SIZE = "labelFontSize";
- /** Label font attribute */
- String LABEL_FONT = "labelFont";
-
-}
diff --git a/examples/plan/src/org/apache/fop/plan/PlanObj.java b/examples/plan/src/org/apache/fop/plan/PlanObj.java
deleted file mode 100644
index ca26a8039..000000000
--- a/examples/plan/src/org/apache/fop/plan/PlanObj.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-
-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 {
-
- /**
- * Creates a new Plan object.
- * @param parent the parent formatting object
- */
- public PlanObj(FONode parent) {
- super(parent);
- }
-
- /** {@inheritDoc} */
- public String getNamespaceURI() {
- return PlanElementMapping.NAMESPACE;
- }
-
- /** {@inheritDoc} */
- public String getNormalNamespacePrefix() {
- return "plan";
- }
-}
-
diff --git a/examples/plan/src/org/apache/fop/plan/PlanRenderer.java b/examples/plan/src/org/apache/fop/plan/PlanRenderer.java
deleted file mode 100644
index 7d41962fb..000000000
--- a/examples/plan/src/org/apache/fop/plan/PlanRenderer.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-
-package org.apache.fop.plan;
-
-
-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 {
-
- 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 = "";
- private float width;
- private float height;
- private float topEdge;
- private float rightEdge;
- private HashMap hints = new HashMap();
-
- private String[] colours;
- private String[] darkcolours;
-
- 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 {
- throw new IllegalArgumentException("Unknown action type: " + t);
- }
-
- 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/examples/plan/src/org/apache/fop/plan/PreloaderPlan.java b/examples/plan/src/org/apache/fop/plan/PreloaderPlan.java
deleted file mode 100644
index d88658c37..000000000
--- a/examples/plan/src/org/apache/fop/plan/PreloaderPlan.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-
-package org.apache.fop.plan;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import javax.xml.transform.ErrorListener;
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.apache.xmlgraphics.image.loader.Image;
-import org.apache.xmlgraphics.image.loader.ImageContext;
-import org.apache.xmlgraphics.image.loader.ImageInfo;
-import org.apache.xmlgraphics.image.loader.ImageSize;
-import org.apache.xmlgraphics.image.loader.impl.AbstractImagePreloader;
-import org.apache.xmlgraphics.image.loader.impl.ImageXMLDOM;
-import org.apache.xmlgraphics.image.loader.util.ImageUtil;
-import org.apache.xmlgraphics.io.XmlSourceUtil;
-
-import org.apache.fop.util.DefaultErrorListener;
-import org.apache.fop.util.UnclosableInputStream;
-
-/**
- * Image preloader for Plan images.
- */
-public class PreloaderPlan extends AbstractImagePreloader {
-
- /** Logger instance */
- private static Log log = LogFactory.getLog(PreloaderPlan.class);
-
- /** {@inheritDoc} */
- public ImageInfo preloadImage(String uri, Source src, ImageContext context)
- throws IOException {
- if (!ImageUtil.hasInputStream(src)) {
- //TODO Remove this and support DOMSource and possibly SAXSource
- return null;
- }
- ImageInfo info = getImage(uri, src, context);
- if (info != null) {
- ImageUtil.closeQuietly(src); //Image is fully read
- }
- return info;
- }
-
- private ImageInfo getImage(String uri, Source src, ImageContext context) throws IOException {
-
- InputStream in = new UnclosableInputStream(ImageUtil.needInputStream(src));
- try {
- Document planDoc = getDocument(in);
- Element rootEl = planDoc.getDocumentElement();
- if (!PlanElementMapping.NAMESPACE.equals(
- rootEl.getNamespaceURI())) {
- in.reset();
- return null;
- }
-
- //Have to render the plan to know its size
- PlanRenderer pr = new PlanRenderer();
- Document svgDoc = pr.createSVGDocument(planDoc);
- float width = pr.getWidth();
- float height = pr.getHeight();
-
- //Return converted SVG image
- ImageInfo info = new ImageInfo(uri, "image/svg+xml");
- final ImageSize size = new ImageSize();
- size.setSizeInMillipoints(
- Math.round(width * 1000),
- Math.round(height * 1000));
- //Set the resolution to that of the FOUserAgent
- size.setResolution(context.getSourceResolution());
- size.calcPixelsFromSize();
- info.setSize(size);
-
- //The whole image had to be loaded for this, so keep it
- Image image = new ImageXMLDOM(info, svgDoc,
- svgDoc.getDocumentElement().getNamespaceURI());
- info.getCustomObjects().put(ImageInfo.ORIGINAL_IMAGE, image);
-
- return info;
- } catch (TransformerException e) {
- try {
- in.reset();
- } catch (IOException ioe) {
- // we're more interested in the original exception
- }
- log.debug("Error while trying to parsing a Plan file: "
- + e.getMessage());
- return null;
- }
- }
-
- private Document getDocument(InputStream in) throws TransformerException {
- TransformerFactory tFactory = TransformerFactory.newInstance();
- //Custom error listener to minimize output to console
- ErrorListener errorListener = new DefaultErrorListener(log);
- tFactory.setErrorListener(errorListener);
- Transformer transformer = tFactory.newTransformer();
- transformer.setErrorListener(errorListener);
- Source source = new StreamSource(in);
- DOMResult res = new DOMResult();
- transformer.transform(source, res);
-
- Document doc = (Document)res.getNode();
- return doc;
- }
-
-}
diff --git a/examples/plan/src/org/apache/fop/plan/SimplePlanDrawer.java b/examples/plan/src/org/apache/fop/plan/SimplePlanDrawer.java
deleted file mode 100644
index a8ba062ed..000000000
--- a/examples/plan/src/org/apache/fop/plan/SimplePlanDrawer.java
+++ /dev/null
@@ -1,321 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-
-package org.apache.fop.plan;
-
-import java.text.DateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashMap;
-
-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 {
-
- 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;
- 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(SVG_NAMESPACE, "svg", null);
-
- Element svgRoot = doc.getDocumentElement();
- svgRoot.setAttributeNS(null, "width", Float.toString(width));
- svgRoot.setAttributeNS(null, "height", Float.toString(height));
- svgRoot.setAttributeNS(null, "viewBox",
- "0 0 " + Float.toString(width) + " " + Float.toString(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);
-
-
- }
-}