]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Stripped-down experimental environment.
authorPeter Bernard West <pbwest@apache.org>
Tue, 7 May 2002 06:00:08 +0000 (06:00 +0000)
committerPeter Bernard West <pbwest@apache.org>
Tue, 7 May 2002 06:00:08 +0000 (06:00 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/FOP_0-20-0_Alt-Design@194783 13f79535-47bb-0310-9956-ffa450edef68

49 files changed:
src/org/apache/fop/apps/AWTStarter.java [deleted file]
src/org/apache/fop/apps/CommandLineOptions.java [deleted file]
src/org/apache/fop/apps/PDFOutputHandler.java [deleted file]
src/org/apache/fop/apps/PrintStarter.java [deleted file]
src/org/apache/fop/apps/Starter.java [deleted file]
src/org/apache/fop/apps/StreamRenderer.java [deleted file]
src/org/apache/fop/apps/TraxInputHandler.java [deleted file]
src/org/apache/fop/apps/XSLTInputHandler.java [deleted file]
src/org/apache/fop/apps/XTDriver.java [deleted file]
src/org/apache/fop/fo/flow/BasicLink.java [deleted file]
src/org/apache/fop/fo/flow/BidiOverride.java [deleted file]
src/org/apache/fop/fo/flow/Block.java [deleted file]
src/org/apache/fop/fo/flow/BlockContainer.java [deleted file]
src/org/apache/fop/fo/flow/Character.java [deleted file]
src/org/apache/fop/fo/flow/ExternalGraphic.java [deleted file]
src/org/apache/fop/fo/flow/Float.java [deleted file]
src/org/apache/fop/fo/flow/Flow.java [deleted file]
src/org/apache/fop/fo/flow/Footnote.java [deleted file]
src/org/apache/fop/fo/flow/FootnoteBody.java [deleted file]
src/org/apache/fop/fo/flow/InitialPropertySet.java [deleted file]
src/org/apache/fop/fo/flow/Inline.java [deleted file]
src/org/apache/fop/fo/flow/InlineContainer.java [deleted file]
src/org/apache/fop/fo/flow/InstreamForeignObject.java [deleted file]
src/org/apache/fop/fo/flow/Leader.java [deleted file]
src/org/apache/fop/fo/flow/ListBlock.java [deleted file]
src/org/apache/fop/fo/flow/ListItem.java [deleted file]
src/org/apache/fop/fo/flow/ListItemBody.java [deleted file]
src/org/apache/fop/fo/flow/ListItemLabel.java [deleted file]
src/org/apache/fop/fo/flow/Marker.java [deleted file]
src/org/apache/fop/fo/flow/MultiCase.java [deleted file]
src/org/apache/fop/fo/flow/MultiProperties.java [deleted file]
src/org/apache/fop/fo/flow/MultiPropertySet.java [deleted file]
src/org/apache/fop/fo/flow/MultiSwitch.java [deleted file]
src/org/apache/fop/fo/flow/MultiToggle.java [deleted file]
src/org/apache/fop/fo/flow/PageNumber.java [deleted file]
src/org/apache/fop/fo/flow/PageNumberCitation.java [deleted file]
src/org/apache/fop/fo/flow/RetrieveMarker.java [deleted file]
src/org/apache/fop/fo/flow/RowSpanMgr.java [deleted file]
src/org/apache/fop/fo/flow/StaticContent.java [deleted file]
src/org/apache/fop/fo/flow/Table.java [deleted file]
src/org/apache/fop/fo/flow/TableAndCaption.java [deleted file]
src/org/apache/fop/fo/flow/TableBody.java [deleted file]
src/org/apache/fop/fo/flow/TableCaption.java [deleted file]
src/org/apache/fop/fo/flow/TableCell.java [deleted file]
src/org/apache/fop/fo/flow/TableColumn.java [deleted file]
src/org/apache/fop/fo/flow/TableFooter.java [deleted file]
src/org/apache/fop/fo/flow/TableHeader.java [deleted file]
src/org/apache/fop/fo/flow/TableRow.java [deleted file]
src/org/apache/fop/fo/flow/Wrapper.java [deleted file]

diff --git a/src/org/apache/fop/apps/AWTStarter.java b/src/org/apache/fop/apps/AWTStarter.java
deleted file mode 100644 (file)
index c956da9..0000000
+++ /dev/null
@@ -1,165 +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.apps;
-/*
- * originally contributed by
- * Juergen Verwohlt: Juergen.Verwohlt@jCatalog.com,
- * Rainer Steinkuhle: Rainer.Steinkuhle@jCatalog.com,
- * Stanislav Gorkhover: Stanislav.Gorkhover@jCatalog.com
- * Modified to use streaming API by Mark Lillywhite, mark-fop@inomial.com
- */
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.viewer.*;
-import org.apache.fop.render.awt.*;
-
-
-import javax.swing.UIManager;
-import java.awt.*;
-
-// SAX
-import org.xml.sax.XMLReader;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-
-
-// Java
-import java.io.FileReader;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.PrintWriter;
-import java.io.IOException;
-import java.io.FileNotFoundException;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.*;
-
-
-
-/**
- * initialize AWT previewer
- */
-
-public class AWTStarter extends CommandLineStarter {
-
-    PreviewDialog frame;
-    AWTRenderer renderer;
-    public static String TRANSLATION_PATH =
-        "/org/apache/fop/viewer/resources/";
-
-    private Translator resource;
-
-    public AWTStarter(CommandLineOptions commandLineOptions)
-    throws FOPException {
-        super(commandLineOptions);
-        init();
-    }
-
-    private void init() {
-        try {
-            UIManager.setLookAndFeel(new javax.swing.plaf.metal.MetalLookAndFeel());
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-        String language = commandLineOptions.getLanguage();
-
-        if (language == null)
-            language = System.getProperty("user.language");
-
-        resource = getResourceBundle(TRANSLATION_PATH + "resources."
-                                     + language);
-
-        UserMessage.setTranslator(getResourceBundle(TRANSLATION_PATH
-                                  + "messages."
-                                  + language));
-
-        resource.setMissingEmphasized(false);
-        renderer = new AWTRenderer(resource);
-        frame = createPreviewDialog(renderer, resource);
-        renderer.setProgressListener(frame);
-        renderer.setComponent(frame);
-        MessageHandler.setOutputMethod(MessageHandler.EVENT);
-        MessageHandler.addListener(frame);
-    }
-
-
-    public void run() throws FOPException {
-        Driver driver = new Driver();
-        if (errorDump) {
-            driver.setErrorDump(true);
-        }
-
-        // init parser
-        frame.progress(resource.getString("Init parser") + " ...");
-        XMLReader parser = inputHandler.getParser();
-
-        if (parser == null) {
-            throw new FOPException("Unable to create SAX parser");
-        }
-
-        setParserFeatures(parser);
-
-        try {
-            driver.setRenderer(renderer);
-
-            // build FO tree: time
-            frame.progress(resource.getString("Build FO tree") + " ...");
-            driver.render(parser, inputHandler.getInputSource());
-
-            frame.progress(resource.getString("Show"));
-            frame.showPage();
-
-        } catch (Exception e) {
-            if (e instanceof FOPException) {
-                throw (FOPException)e;
-            }
-            throw new FOPException(e);
-        }
-
-    }
-
-    protected PreviewDialog createPreviewDialog(AWTRenderer renderer,
-            Translator res) {
-        PreviewDialog frame = new PreviewDialog(renderer, res);
-        frame.validate();
-
-        // center window
-        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
-        Dimension frameSize = frame.getSize();
-        if (frameSize.height > screenSize.height)
-            frameSize.height = screenSize.height;
-        if (frameSize.width > screenSize.width)
-            frameSize.width = screenSize.width;
-        frame.setLocation((screenSize.width - frameSize.width) / 2,
-                          (screenSize.height - frameSize.height) / 2);
-        frame.setVisible(true);
-        return frame;
-    }
-
-
-
-    private SecureResourceBundle getResourceBundle(String path) {
-        InputStream in = null;
-
-        try {
-            URL url = getClass().getResource(path);
-            in = url.openStream();
-        } catch (Exception ex) {
-            MessageHandler.logln("Can't find URL to: <" + path + "> "
-                                 + ex.getMessage());
-        }
-        return new SecureResourceBundle(in);
-    }
-
-}
-
-
-
diff --git a/src/org/apache/fop/apps/CommandLineOptions.java b/src/org/apache/fop/apps/CommandLineOptions.java
deleted file mode 100644 (file)
index c13e655..0000000
+++ /dev/null
@@ -1,630 +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.apps;
-
-// java
-import java.util.Vector;
-import java.io.File;
-import java.io.FileNotFoundException;
-
-// FOP
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.configuration.Configuration;
-import org.apache.fop.apps.FOPException;
-
-/**
- * Options parses the commandline arguments
- */
-public class CommandLineOptions {
-
-    /* input / output not set */
-    private static final int NOT_SET = 0;
-    /* input: fo file */
-    private static final int FO_INPUT = 1;
-    /* input: xml+xsl file */
-    private static final int XSLT_INPUT = 2;
-    /* output: pdf file */
-    private static final int PDF_OUTPUT = 1;
-    /* output: screen using swing */
-    private static final int AWT_OUTPUT = 2;
-    /* output: mif file */
-    private static final int MIF_OUTPUT = 3;
-    /* output: sent swing rendered file to printer */
-    private static final int PRINT_OUTPUT = 4;
-    /* output: pcl file */
-    private static final int PCL_OUTPUT = 5;
-    /* output: postscript file */
-    private static final int PS_OUTPUT = 6;
-    /* output: text file */
-    private static final int TXT_OUTPUT = 7;
-
-    /* System buffers */
-    private static final int BUFFER_FILE = 8;
-
-    /* System buffers */
-    private static final int AREA_OUTPUT = 9;
-
-    /* use debug mode */
-    Boolean errorDump = new Boolean(false);
-    /* show configuration information */
-    Boolean dumpConfiguration = new Boolean(false);
-    /* suppress any progress information */
-    Boolean quiet = new Boolean(false);
-    /* for area tree XML output, only down to block area level */
-    Boolean suppressLowLevelAreas = new Boolean(false);
-    /* name of user configuration file */
-    File userConfigFile = null;
-    /* name of input fo file */
-    File fofile = null;
-    /* name of xsltfile (xslt transformation as input) */
-    File xsltfile = null;
-    /* name of xml file (xslt transformation as input) */
-    File xmlfile = null;
-    /* name of output file */
-    File outfile = null;
-    /* name of buffer file */
-    File bufferFile = null;
-    /* input mode */
-    int inputmode = NOT_SET;
-    /* output mode */
-    int outputmode = NOT_SET;
-    /* buffer mode */
-    int buffermode = NOT_SET;
-    /* language for user information */
-    String language = null;
-
-    private java.util.Hashtable rendererOptions;
-
-    public CommandLineOptions(String[] args)
-            throws FOPException, FileNotFoundException {
-        boolean optionsParsed = true;
-        rendererOptions = new java.util.Hashtable();
-        try {
-            optionsParsed = parseOptions(args);
-            if (optionsParsed) {
-                checkSettings();
-                if (errorDump != null && errorDump.booleanValue()) {
-                    debug();
-                }
-            }
-        } catch (FOPException e) {
-            printUsage();
-            throw e;
-        } catch (java.io.FileNotFoundException e) {
-            printUsage();
-            throw e;
-        }
-
-    }
-
-    /**
-     * parses the commandline arguments
-     * @return true if parse was successful and procesing can continue, false if processing should stop
-     * @exception FOPException if there was an error in the format of the options
-     */
-    private boolean parseOptions(String args[]) throws FOPException {
-        for (int i = 0; i < args.length; i++) {
-            if (args[i].equals("-d") || args[i].equals("--full-error-dump")) {
-                errorDump = new Boolean(true);
-            } else if (args[i].equals("-x")
-                       || args[i].equals("--dump-config")) {
-                dumpConfiguration = new Boolean(true);
-            } else if (args[i].equals("-q") || args[i].equals("--quiet")) {
-                quiet = new Boolean(true);
-            } else if (args[i].equals("-c")) {
-                if ((i + 1 == args.length)
-                        || (args[i + 1].charAt(0) == '-')) {
-                    throw new FOPException("if you use '-c', you must specify the name of the configuration file");
-                } else {
-                    userConfigFile = new File(args[i + 1]);
-                    i++;
-                }
-            } else if (args[i].equals("-l")) {
-                if ((i + 1 == args.length)
-                        || (args[i + 1].charAt(0) == '-')) {
-                    throw new FOPException("if you use '-l', you must specify a language");
-                } else {
-                    language = args[i + 1];
-                    i++;
-                }
-            } else if (args[i].equals("-s")) {
-                suppressLowLevelAreas = new Boolean(true);
-            } else if (args[i].equals("-fo")) {
-                inputmode = FO_INPUT;
-                if ((i + 1 == args.length)
-                        || (args[i + 1].charAt(0) == '-')) {
-                    throw new FOPException("you must specify the fo file for the '-fo' option");
-                } else {
-                    fofile = new File(args[i + 1]);
-                    i++;
-                }
-            } else if (args[i].equals("-xsl")) {
-                inputmode = XSLT_INPUT;
-                if ((i + 1 == args.length)
-                        || (args[i + 1].charAt(0) == '-')) {
-                    throw new FOPException("you must specify the stylesheet file for the '-xsl' option");
-                } else {
-                    xsltfile = new File(args[i + 1]);
-                    i++;
-                }
-            } else if (args[i].equals("-xml")) {
-                inputmode = XSLT_INPUT;
-                if ((i + 1 == args.length)
-                        || (args[i + 1].charAt(0) == '-')) {
-                    throw new FOPException("you must specify the input file for the '-xml' option");
-                } else {
-                    xmlfile = new File(args[i + 1]);
-                    i++;
-                }
-            } else if (args[i].equals("-awt")) {
-                setOutputMode(AWT_OUTPUT);
-            } else if (args[i].equals("-pdf")) {
-                setOutputMode(PDF_OUTPUT);
-                if ((i + 1 == args.length)
-                        || (args[i + 1].charAt(0) == '-')) {
-                    throw new FOPException("you must specify the pdf output file");
-                } else {
-                    outfile = new File(args[i + 1]);
-                    i++;
-                }
-            } else if (args[i].equals("-mif")) {
-                setOutputMode(MIF_OUTPUT);
-                if ((i + 1 == args.length)
-                        || (args[i + 1].charAt(0) == '-')) {
-                    throw new FOPException("you must specify the mif output file");
-                } else {
-                    outfile = new File(args[i + 1]);
-                    i++;
-                }
-            } else if (args[i].equals("-print")) {
-                setOutputMode(PRINT_OUTPUT);
-                // show print help
-                if (i + 1 < args.length) {
-                    if (args[i + 1].equals("help")) {
-                        printUsagePrintOutput();
-                        return false;
-                    }
-                }
-            } else if (args[i].equals("-pcl")) {
-                setOutputMode(PCL_OUTPUT);
-                if ((i + 1 == args.length)
-                        || (args[i + 1].charAt(0) == '-')) {
-                    throw new FOPException("you must specify the pdf output file");
-                } else {
-                    outfile = new File(args[i + 1]);
-                    i++;
-                }
-            } else if (args[i].equals("-ps")) {
-                setOutputMode(PS_OUTPUT);
-                if ((i + 1 == args.length)
-                        || (args[i + 1].charAt(0) == '-')) {
-                    throw new FOPException("you must specify the PostScript output file");
-                } else {
-                    outfile = new File(args[i + 1]);
-                    i++;
-                }
-            } else if (args[i].equals("-txt")) {
-                setOutputMode(TXT_OUTPUT);
-                if ((i + 1 == args.length)
-                        || (args[i + 1].charAt(0) == '-')) {
-                    throw new FOPException("you must specify the text output file");
-                } else {
-                    outfile = new File(args[i + 1]);
-                    i++;
-                }
-            } else if (args[i].charAt(0) != '-') {
-                if (inputmode == NOT_SET) {
-                    inputmode = FO_INPUT;
-                    fofile = new File(args[i]);
-                } else if (outputmode == NOT_SET) {
-                    outputmode = PDF_OUTPUT;
-                    outfile = new File(args[i]);
-                } else {
-                    throw new FOPException("Don't know what to do with "
-                                           + args[i]);
-                }
-            } else if (args[i].equals("-buf")) {
-                if (buffermode == NOT_SET) {
-                    buffermode = BUFFER_FILE;
-                } else {
-                    MessageHandler.errorln("ERROR: you can only set one buffer method");
-                    printUsage();
-                }
-                if ((i + 1 == args.length)
-                        || (args[i + 1].charAt(0) == '-')) {
-                    MessageHandler.errorln("ERROR: you must specify the buffer output file");
-                    printUsage();
-                } else {
-                    bufferFile = new File(args[i + 1]);
-                    i++;
-                }
-            } else if (args[i].equals("-at")) {
-                setOutputMode(AREA_OUTPUT);
-                if ((i + 1 == args.length)
-                        || (args[i + 1].charAt(0) == '-')) {
-                    throw new FOPException("you must specify the area-tree output file");
-                } else {
-                    outfile = new File(args[i + 1]);
-                    i++;
-                }
-            } else {
-                printUsage();
-                return false;
-            }
-        }
-        return true;
-    }    // end parseOptions
-
-    private void setOutputMode(int mode) throws FOPException {
-        if (outputmode == NOT_SET) {
-            outputmode = mode;
-        } else {
-            throw new FOPException("you can only set one output method");
-        }
-    }
-
-    /**
-     * checks whether all necessary information has been given in a consistent way
-     */
-    private void checkSettings() throws FOPException, FileNotFoundException {
-        if (inputmode == NOT_SET) {
-            throw new FOPException("No input file specified");
-        }
-
-        if (outputmode == NOT_SET) {
-            throw new FOPException("No output file specified");
-        }
-
-        if (inputmode == XSLT_INPUT) {
-            // check whether xml *and* xslt file have been set
-            if (xmlfile == null) {
-                throw new FOPException("XML file must be specified for the tranform mode");
-            }
-            if (xsltfile == null) {
-                throw new FOPException("XSLT file must be specified for the tranform mode");
-            }
-
-            // warning if fofile has been set in xslt mode
-            if (fofile != null) {
-                MessageHandler.errorln("WARNING: Can't use fo file with transform mode! Ignoring.\n"
-                                       + "Your input is " + "\n xmlfile: "
-                                       + xmlfile.getAbsolutePath()
-                                       + "\nxsltfile: "
-                                       + xsltfile.getAbsolutePath()
-                                       + "\n  fofile: "
-                                       + fofile.getAbsolutePath());
-            }
-            if (!xmlfile.exists()) {
-                throw new FileNotFoundException("xml file "
-                                                + xmlfile.getAbsolutePath()
-                                                + " not found ");
-            }
-            if (!xsltfile.exists()) {
-                throw new FileNotFoundException("xsl file "
-                                                + xsltfile.getAbsolutePath()
-                                                + " not found ");
-            }
-
-        } else if (inputmode == FO_INPUT) {
-            if (xmlfile != null || xsltfile != null) {
-                MessageHandler.errorln("WARNING: fo input mode, but xmlfile or xslt file are set:");
-                MessageHandler.errorln("xml file: " + xmlfile.toString());
-                MessageHandler.errorln("xslt file: " + xsltfile.toString());
-            }
-            if (!fofile.exists()) {
-                throw new FileNotFoundException("fo file "
-                                                + fofile.getAbsolutePath()
-                                                + " not found ");
-            }
-
-        }
-    }    // end checkSettings
-
-    /**
-     * returns the chosen renderer, throws FOPException
-     */
-    public int getRenderer() throws FOPException {
-        switch (outputmode) {
-        case NOT_SET:
-            throw new FOPException("Renderer has not been set!");
-        case PDF_OUTPUT:
-            return Driver.RENDER_PDF;
-        case AWT_OUTPUT:
-            return Driver.RENDER_AWT;
-        case MIF_OUTPUT:
-            return Driver.RENDER_MIF;
-        case PRINT_OUTPUT:
-            return Driver.RENDER_PRINT;
-        case PCL_OUTPUT:
-            return Driver.RENDER_PCL;
-        case PS_OUTPUT:
-            return Driver.RENDER_PS;
-        case TXT_OUTPUT:
-            return Driver.RENDER_TXT;
-        case AREA_OUTPUT:
-            rendererOptions.put("fineDetail", isCoarseAreaXml());
-            return Driver.RENDER_XML;
-        default:
-            throw new FOPException("Invalid Renderer setting!");
-        }
-    }
-
-    /**
-     *
-     */
-    public InputHandler getInputHandler() {
-        switch (inputmode) {
-        case FO_INPUT:
-            return new FOInputHandler(fofile);
-        case XSLT_INPUT:
-            return new XSLTInputHandler(xmlfile, xsltfile);
-        default:
-            return new FOInputHandler(fofile);
-        }
-    }
-
-    public java.util.Hashtable getRendererOptions() {
-        return rendererOptions;
-    }
-
-    public Starter getStarter() throws FOPException {
-        switch (outputmode) {
-        case AWT_OUTPUT:
-            try {
-                return ((Starter)Class.forName("org.apache.fop.apps.AWTStarter").getConstructor(new Class[] {
-                    CommandLineOptions.class
-                }).newInstance(new Object[] {
-                    this
-                }));
-            } catch (Exception e) {
-                if (e instanceof FOPException) {
-                    throw (FOPException)e;
-                }
-                throw new FOPException("AWTStarter could not be loaded.", e);
-            }
-        case PRINT_OUTPUT:
-            try {
-                return ((Starter)Class.forName("org.apache.fop.apps.PrintStarter").getConstructor(new Class[] {
-                    CommandLineOptions.class
-                }).newInstance(new Object[] {
-                    this
-                }));
-            } catch (Exception e) {
-                if (e instanceof FOPException) {
-                    throw (FOPException)e;
-                }
-                throw new FOPException("PrintStarter could not be loaded.",
-                                       e);
-            }
-
-        default:
-            return new CommandLineStarter(this);
-        }
-    }
-
-    public int getInputMode() {
-        return inputmode;
-    }
-
-    public int getOutputMode() {
-        return outputmode;
-    }
-
-    public File getFOFile() {
-        return fofile;
-    }
-
-    public File getXMLFile() {
-        return xmlfile;
-    }
-
-    public File getXSLFile() {
-        return xsltfile;
-    }
-
-    public File getOutputFile() {
-        return outfile;
-    }
-
-    public File getUserConfigFile() {
-        return userConfigFile;
-    }
-
-    public String getLanguage() {
-        return language;
-    }
-
-    public File getBufferFile() {
-        return bufferFile;
-    }
-
-    public Boolean isQuiet() {
-        return quiet;
-    }
-
-    public Boolean dumpConfiguration() {
-        return dumpConfiguration;
-    }
-
-    public Boolean isDebugMode() {
-        return errorDump;
-    }
-
-    public Boolean isCoarseAreaXml() {
-        return suppressLowLevelAreas;
-    }
-
-    /**
-     * return either the fofile or the xmlfile
-     */
-    public File getInputFile() {
-        switch (inputmode) {
-        case FO_INPUT:
-            return fofile;
-        case XSLT_INPUT:
-            return xmlfile;
-        default:
-            return fofile;
-        }
-    }
-
-    /**
-     * shows the commandline syntax including a summary of all available options and some examples
-     */
-    public static void printUsage() {
-        MessageHandler.errorln("\nUSAGE\nFop [options] [-fo|-xml] infile [-xsl file] [-awt|-pdf|-mif|-pcl|-ps|-txt|-at|-print] <outfile>\n"
-                               + " [OPTIONS]  \n"
-                               + "  -d          debug mode   \n"
-                               + "  -x          dump configuration settings  \n"
-                               + "  -q          quiet mode  \n"
-                               + "  -c cfg.xml  use additional configuration file cfg.xml\n"
-                               + "  -l lang     the language to use for user information \n"
-                               + "  -s          for area tree XML, down to block areas only\n\n"
-                               + " [INPUT]  \n"
-                               + "  infile            xsl:fo input file (the same as the next) \n"
-                               + "  -fo  infile       xsl:fo input file  \n"
-                               + "  -xml infile       xml input file, must be used together with -xsl \n"
-                               + "  -xsl stylesheet   xslt stylesheet \n \n"
-                               + " [OUTPUT] \n"
-                               + "  outfile           input will be rendered as pdf file into outfile \n"
-                               + "  -pdf outfile      input will be rendered as pdf file (outfile req'd) \n"
-                               + "  -awt              input will be displayed on screen \n"
-                               + "  -mif outfile      input will be rendered as mif file (outfile req'd)\n"
-                               + "  -pcl outfile      input will be rendered as pcl file (outfile req'd) \n"
-                               + "  -ps outfile       input will be rendered as PostScript file (outfile req'd) \n"
-                               + "  -txt outfile      input will be rendered as text file (outfile req'd) \n"
-                               + "  -at outfile       representation of area tree as XML (outfile req'd) \n"
-                               + "  -print            input file will be rendered and sent to the printer \n"
-                               + "                    see options with \"-print help\" \n\n"
-                               + " [Examples]\n" + "  Fop foo.fo foo.pdf \n"
-                               + "  Fop -fo foo.fo -pdf foo.pdf (does the same as the previous line)\n"
-                               + "  Fop -xsl foo.xsl -xml foo.xml -pdf foo.pdf\n"
-                               + "  Fop foo.fo -mif foo.mif\n"
-                               + "  Fop foo.fo -print or Fop -print foo.fo \n"
-                               + "  Fop foo.fo -awt \n");
-    }
-
-    /**
-     * shows the options for print output
-     */
-    public void printUsagePrintOutput() {
-        MessageHandler.errorln("USAGE: -print [-Dstart=i] [-Dend=i] [-Dcopies=i] [-Deven=true|false] "
-                               + " org.apache.fop.apps.Fop (..) -print \n"
-                               + "Example:\n"
-                               + "java -Dstart=1 -Dend=2 org.apache.Fop.apps.Fop infile.fo -print ");
-    }
-
-
-    /**
-     * debug mode. outputs all commandline settings
-     */
-    private void debug() {
-        System.out.print("Input mode: ");
-        switch (inputmode) {
-        case NOT_SET:
-            MessageHandler.logln("not set");
-            break;
-        case FO_INPUT:
-            MessageHandler.logln("FO ");
-            MessageHandler.logln("fo input file: " + fofile.toString());
-            break;
-        case XSLT_INPUT:
-            MessageHandler.logln("xslt transformation");
-            MessageHandler.logln("xml input file: " + xmlfile.toString());
-            MessageHandler.logln("xslt stylesheet: " + xsltfile.toString());
-            break;
-        default:
-            MessageHandler.logln("unknown input type");
-        }
-        System.out.print("Output mode: ");
-        switch (outputmode) {
-        case NOT_SET:
-            MessageHandler.logln("not set");
-            break;
-        case PDF_OUTPUT:
-            MessageHandler.logln("pdf");
-            MessageHandler.logln("output file: " + outfile.toString());
-            break;
-        case AWT_OUTPUT:
-            MessageHandler.logln("awt on screen");
-            if (outfile != null) {
-                MessageHandler.logln("ERROR: awt mode, but outfile is set:");
-                MessageHandler.logln("out file: " + outfile.toString());
-            }
-            break;
-        case MIF_OUTPUT:
-            MessageHandler.logln("mif");
-            MessageHandler.logln("output file: " + outfile.toString());
-            break;
-        case PRINT_OUTPUT:
-            MessageHandler.logln("print directly");
-            if (outfile != null) {
-                MessageHandler.logln("ERROR: print mode, but outfile is set:");
-                MessageHandler.logln("out file: " + outfile.toString());
-            }
-            break;
-        case PCL_OUTPUT:
-            MessageHandler.logln("pcl");
-            MessageHandler.logln("output file: " + outfile.toString());
-            break;
-        case PS_OUTPUT:
-            MessageHandler.logln("PostScript");
-            MessageHandler.logln("output file: " + outfile.toString());
-            break;
-        case TXT_OUTPUT:
-            MessageHandler.logln("txt");
-            MessageHandler.logln("output file: " + outfile.toString());
-            break;
-        default:
-            MessageHandler.logln("unknown input type");
-        }
-
-
-        MessageHandler.logln("OPTIONS");
-        if (userConfigFile != null) {
-            MessageHandler.logln("user configuration file: "
-                                 + userConfigFile.toString());
-        } else {
-            MessageHandler.logln("no user configuration file is used [default]");
-        }
-        if (errorDump != null) {
-            MessageHandler.logln("debug mode on");
-        } else {
-            MessageHandler.logln("debug mode off [default]");
-        }
-        if (dumpConfiguration != null) {
-            MessageHandler.logln("dump configuration");
-        } else {
-            MessageHandler.logln("don't dump configuration [default]");
-        }
-        if (quiet != null) {
-            MessageHandler.logln("quiet mode on");
-        } else {
-            MessageHandler.logln("quiet mode off [default]");
-        }
-
-    }
-
-    // debug: create class and output all settings
-    public static void main(String args[]) {
-        /*
-         * for (int i = 0; i < args.length; i++) {
-         * MessageHandler.logln(">"+args[i]+"<");
-         * }
-         */
-        try {
-            CommandLineOptions options = new CommandLineOptions(args);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-        // options.debug();
-    }
-
-}
-
diff --git a/src/org/apache/fop/apps/PDFOutputHandler.java b/src/org/apache/fop/apps/PDFOutputHandler.java
deleted file mode 100644 (file)
index 0b39c67..0000000
+++ /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.apps;
-
-import org.xml.sax.*;
-import com.jclark.xsl.sax.*;
-import java.io.*;
-
-// FOP
-import org.apache.fop.fo.XTFOTreeBuilder;
-import org.apache.fop.fo.XTElementMapping;
-import org.apache.fop.layout.AreaTree;
-import org.apache.fop.layout.FontInfo;
-import org.apache.fop.render.Renderer;
-import org.apache.fop.messaging.MessageHandler;
-
-// ////////////////////////////////////////////////////////////////////////////////////
-
-/**
- * A DocumentHandler that writes a PDF representation to an OutputStream.
- *
- * Use with James Clark's XT. Just put FOP on your class path and add
- * <xsl:output method="fop:org.apache.fop.apps.PDFOutputHandler"
- * xmlns:fop="http://www.jclark.com/xt/java"/>
- * to your stylesheet. Now XT will automatically call FOP.
- *
- */
-public class PDFOutputHandler extends XTFOTreeBuilder
-    implements OutputDocumentHandler {
-
-    /**
-     * the area tree that is the result of formatting the FO tree
-     */
-    protected AreaTree areaTree;
-
-    /**
-     * the renderer to use to output the area tree
-     */
-    protected Renderer renderer;
-
-    /**
-     * the PrintWriter to use to output the results of the renderer
-     */
-    protected PrintWriter writer;
-
-    /**
-     * the stream to use to output the results of the renderer
-     */
-    protected OutputStream stream;
-
-    private boolean keepOpen;
-
-    // ////////////////////////////////////////////////////////////////////////////////////
-
-    /**
-     */
-    public PDFOutputHandler() {}
-
-    // ////////////////////////////////////////////////////////////////////////////////////
-
-    /**
-     */
-    public PDFOutputHandler(OutputStream out) {
-        this();
-        this.stream = out;
-    }
-
-    // ////////////////////////////////////////////////////////////////////////////////////
-
-    /**
-     */
-    public DocumentHandler init(Destination dest,
-                                AttributeList atts) throws IOException {
-        this.stream = dest.getOutputStream("application/pdf", null);
-        this.keepOpen = dest.keepOpen();
-
-        String version = org.apache.fop.apps.Version.getVersion();
-        setRenderer("org.apache.fop.render.pdf.PDFRenderer", version);
-        addElementMapping("org.apache.fop.fo.StandardElementMapping");
-        addElementMapping("org.apache.fop.svg.SVGElementMapping");
-        return this;
-    }
-
-    // ////////////////////////////////////////////////////////////////////////////////////
-
-    /**
-     * set the class name of the Renderer to use as well as the
-     * producer string for those renderers that can make use of it
-     */
-    public void setRenderer(String rendererClassName, String producer) {
-        this.renderer = createRenderer(rendererClassName);
-        this.renderer.setProducer(producer);
-    }
-
-    // ////////////////////////////////////////////////////////////////////////////////////
-
-    /**
-     * SAX passthrough, finish rendering the document
-     */
-    public void endDocument() throws SAXException {
-        super.endDocument();
-
-        try {
-            doFormat();
-            doRender();
-        } catch (IOException io) {
-            throw new SAXException(io);
-        } catch (FOPException fop) {
-            throw new SAXException(fop);
-        }
-        writer.flush();
-    }
-
-    // ////////////////////////////////////////////////////////////////////////////////////
-
-    /**
-     * format the formatting object tree into an area tree
-     */
-    public void doFormat() throws FOPException {
-        FontInfo fontInfo = new FontInfo();
-        this.renderer.setupFontInfo(fontInfo);
-
-        this.areaTree = new AreaTree();
-        this.areaTree.setFontInfo(fontInfo);
-
-        format(areaTree);
-    }
-
-    // ////////////////////////////////////////////////////////////////////////////////////
-
-    /**
-     * render the area tree to the output form
-     */
-    public void doRender() throws IOException, FOPException {
-        this.renderer.render(areaTree, this.stream);
-    }
-
-    // ////////////////////////////////////////////////////////////////////////////////////
-
-    /**
-     * add the given element mapping.
-     *
-     * an element mapping maps element names to Java classes
-     */
-    public void addElementMapping(XTElementMapping mapping) {
-        mapping.addToBuilder(this);
-    }
-
-    // ////////////////////////////////////////////////////////////////////////////////////
-
-    /**
-     * add the element mapping with the given class name
-     */
-    public void addElementMapping(String mappingClassName) {
-        createElementMapping(mappingClassName).addToBuilder(this);
-    }
-
-    // ////////////////////////////////////////////////////////////////////////////////////
-
-    /**
-     * protected method used by addElementMapping(String) to
-     * instantiate element mapping class
-     */
-    protected XTElementMapping createElementMapping(String mappingClassName) {
-        MessageHandler.logln("using element mapping " + mappingClassName);
-
-        try {
-            return (XTElementMapping)Class.forName(mappingClassName).newInstance();
-        } catch (ClassNotFoundException e) {
-            MessageHandler.errorln("Could not find " + mappingClassName);
-        } catch (InstantiationException e) {
-            MessageHandler.errorln("Could not instantiate "
-                                   + mappingClassName);
-        } catch (IllegalAccessException e) {
-            MessageHandler.errorln("Could not access " + mappingClassName);
-        } catch (ClassCastException e) {
-            MessageHandler.errorln(mappingClassName
-                                   + " is not an element mapping");
-        }
-        return null;
-    }
-
-    // ////////////////////////////////////////////////////////////////////////////////////
-
-    /**
-     * protected method used by setRenderer(String, String) to
-     * instantiate the Renderer class
-     */
-    protected Renderer createRenderer(String rendererClassName) {
-        MessageHandler.logln("using renderer " + rendererClassName);
-
-        try {
-            return (Renderer)Class.forName(rendererClassName).newInstance();
-        } catch (ClassNotFoundException e) {
-            MessageHandler.errorln("Could not find " + rendererClassName);
-        } catch (InstantiationException e) {
-            MessageHandler.errorln("Could not instantiate "
-                                   + rendererClassName);
-        } catch (IllegalAccessException e) {
-            MessageHandler.errorln("Could not access " + rendererClassName);
-        } catch (ClassCastException e) {
-            MessageHandler.errorln(rendererClassName + " is not a renderer");
-        }
-        return null;
-    }
-
-}
-
diff --git a/src/org/apache/fop/apps/PrintStarter.java b/src/org/apache/fop/apps/PrintStarter.java
deleted file mode 100644 (file)
index f3c039f..0000000
+++ /dev/null
@@ -1,204 +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.apps;
-
-/*
- * originally contributed by
- * Stanislav Gorkhover: stanislav.gorkhover@jcatalog.com
- * jCatalog Software AG
- * 
- * Updated by Mark Lillywhite, mark-fop@inomial.com. Modified to
- * handle the print job better, added -Ddialog option, removed 
- * (apparently) redundant copies code, generally cleaned up, and
- * added interfaces to the new Render API.
- */
-
-
-import org.xml.sax.XMLReader;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-import java.awt.Graphics;
-import java.awt.print.*;
-import java.io.OutputStream;
-import java.io.IOException;
-import java.util.Vector;
-
-import org.apache.fop.render.awt.AWTRenderer;
-import org.apache.fop.layout.AreaTree;
-import org.apache.fop.layout.Page;
-import org.apache.fop.messaging.MessageHandler;
-
-
-/**
- * This class prints a xsl-fo dokument without interaction.
- * At the moment java has not the possibility to configure the printer and it's
- * options without interaction (30.03.2000).
- * This class allows to print a set of pages (from-to), even/odd pages and many copies.
- * - Print from page xxx: property name - start, value int
- * - Print to page xxx: property name - end, value int
- * - Print even/odd pages: property name - even, value boolean
- * - Print xxx copies: property name - copies, value int
- *
- */
-public class PrintStarter extends CommandLineStarter {
-
-    public PrintStarter(CommandLineOptions options) throws FOPException {
-        super(options);
-    }
-
-    public void run() throws FOPException {
-        Driver driver = new Driver();
-        if (errorDump) {
-            driver.setErrorDump(true);
-        }
-
-        String version = Version.getVersion();
-        MessageHandler.errorln(version);
-
-        XMLReader parser = inputHandler.getParser();
-
-        setParserFeatures(parser);
-
-        PrinterJob pj = PrinterJob.getPrinterJob();
-        if(System.getProperty("dialog") != null)
-            if(!pj.printDialog())
-                throw new FOPException("Printing cancelled by operator");
-
-        PrintRenderer renderer = new PrintRenderer(pj);
-        int copies = getIntProperty("copies", 1);
-        pj.setCopies(copies);
-
-        //renderer.setCopies(copies);
-
-        try {
-            driver.setRenderer(renderer);
-            driver.render(parser, inputHandler.getInputSource());
-        } catch (Exception e) {
-            if (e instanceof FOPException) {
-                throw (FOPException)e;
-            }
-            throw new FOPException(e);
-        }
-
-        System.exit(0);
-    }
-    int getIntProperty(String name, int def) {
-        String propValue = System.getProperty(name);
-        if(propValue != null) {
-            try {
-                return Integer.parseInt(propValue);
-            } catch (Exception e) {
-                return def;
-            }
-        } else {
-            return def;
-        }
-    }
-
-    class PrintRenderer extends AWTRenderer {
-
-        private static final int EVEN_AND_ALL = 0;
-        private static final int EVEN = 1;
-        private static final int ODD = 2;
-
-        private int startNumber;
-        private int endNumber;
-        private int mode = EVEN_AND_ALL;
-        private int copies = 1;
-        private PrinterJob printerJob;
-
-        PrintRenderer(PrinterJob printerJob) {
-            super(null);
-
-            this.printerJob = printerJob;
-            startNumber = getIntProperty("start", 1) - 1;
-            endNumber = getIntProperty("end", -1);
-
-            printerJob.setPageable(this);
-
-            mode = EVEN_AND_ALL;
-            String str = System.getProperty("even");
-            if (str != null) {
-                try {
-                    mode = Boolean.valueOf(str).booleanValue() ? EVEN : ODD;
-                } catch (Exception e) {}
-
-            }
-
-        }
-
-
-
-        public void stopRenderer(OutputStream outputStream)
-        throws IOException {
-            super.stopRenderer(outputStream);
-
-            if(endNumber == -1)
-                endNumber = getPageCount();
-
-            Vector numbers = getInvalidPageNumbers();
-            for (int i = numbers.size() - 1; i > -1; i--)
-                removePage(Integer.parseInt((String)numbers.elementAt(i)));
-
-            try {
-                printerJob.print();
-            } catch (PrinterException e) {
-                e.printStackTrace();
-                throw new IOException(
-                    "Unable to print: " + e.getClass().getName() +
-                    ": " + e.getMessage());
-            }
-        }
-
-        public void renderPage(Page page) {
-            pageWidth = (int)((float)page.getWidth() / 1000f);
-            pageHeight = (int)((float)page.getHeight() / 1000f);
-            super.renderPage(page);
-        }
-
-
-        private Vector getInvalidPageNumbers() {
-
-            Vector vec = new Vector();
-            int max = getPageCount();
-            boolean isValid;
-            for (int i = 0; i < max; i++) {
-                isValid = true;
-                if (i < startNumber || i > endNumber) {
-                    isValid = false;
-                } else if (mode != EVEN_AND_ALL) {
-                    if (mode == EVEN && ((i + 1) % 2 != 0))
-                        isValid = false;
-                    else if (mode == ODD && ((i + 1) % 2 != 1))
-                        isValid = false;
-                }
-
-                if (!isValid)
-                    vec.add(i + "");
-            }
-
-            return vec;
-        }
-
-        /* TODO: I'm totally not sure that this is necessary -Mark
-        void setCopies(int val) {
-            copies = val;
-            Vector copie = tree.getPages();
-            for (int i = 1; i < copies; i++) {
-                tree.getPages().addAll(copie);
-            }
-
-    }
-        */
-    }    // class PrintRenderer
-}        // class PrintCommandLine
-
-
-
diff --git a/src/org/apache/fop/apps/Starter.java b/src/org/apache/fop/apps/Starter.java
deleted file mode 100644 (file)
index c0882e9..0000000
+++ /dev/null
@@ -1,52 +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.apps;
-
-// SAX
-import org.xml.sax.XMLReader;
-import org.xml.sax.SAXException;
-
-// Java
-import java.io.*;
-import java.net.URL;
-
-// FOP
-import org.apache.fop.messaging.MessageHandler;
-
-/**
- * abstract super class
- * Creates a SAX Parser (defaulting to Xerces).
- *
- */
-public abstract class Starter {
-
-    Options options;
-    InputHandler inputHandler;
-
-    public Starter() throws FOPException {
-        options = new Options();
-    }
-
-    public void setInputHandler(InputHandler inputHandler) {
-        this.inputHandler = inputHandler;
-    }
-
-    abstract public void run() throws FOPException;
-
-    // setting the parser features
-    public void setParserFeatures(XMLReader parser) throws FOPException {
-        try {
-            parser.setFeature("http://xml.org/sax/features/namespace-prefixes",
-                              true);
-        } catch (SAXException e) {
-            throw new FOPException("Error in setting up parser feature namespace-prefixes\n"
-                                   + "You need a parser which supports SAX version 2", e);
-        }
-    }
-
-}
diff --git a/src/org/apache/fop/apps/StreamRenderer.java b/src/org/apache/fop/apps/StreamRenderer.java
deleted file mode 100644 (file)
index 448ec0d..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-package org.apache.fop.apps;
-
-import java.io.OutputStream;
-import java.io.IOException;
-import java.util.Vector;
-import java.util.Enumeration;
-
-import org.xml.sax.SAXException;
-
-import org.apache.fop.layout.FontInfo;
-import org.apache.fop.layout.Page;
-import org.apache.fop.render.Renderer;
-import org.apache.fop.layout.AreaTree;
-import org.apache.fop.datatypes.IDReferences;
-import org.apache.fop.extensions.ExtensionObj;
-import org.apache.fop.fo.pagination.PageSequence;
-import org.apache.fop.messaging.MessageHandler;
-
-/**
-  This class acts as a bridge between the XML:FO parser
-  and the formatting/rendering classes. It will queue
-  PageSequences up until all the IDs required by them
-  are satisfied, at which time it will render the
-  pages.<P>
-  StreamRenderer is created by Driver and called from
-  FOTreeBuilder when a PageSequence is created,
-  and AreaTree when a Page is formatted.<P>
-*/
-public class StreamRenderer extends Object {
-    private static final boolean MEM_PROFILE_WITH_GC = false;
-
-    /**
-      Somewhere to get our stats from.
-    */
-    private Runtime runtime = Runtime.getRuntime();
-
-    /**
-      Keep track of the number of pages rendered.
-    */
-    int pageCount = 0;
-
-    /**
-      Keep track of heap memory allocated,
-      for statistical purposes.
-    */
-    private long initialMemory;
-
-    /**
-      Keep track of time used by renderer.
-    */
-    private long startTime;
-
-    /**
-      The stream to which this rendering is to be
-      written to. <B>Note</B> that some renderers
-      do not render to a stream, and that this
-      member can therefore be null.
-    */
-    private OutputStream outputStream;
-
-    /**
-      The renderer being used.
-    */
-    private Renderer renderer;
-
-    /**
-      The FontInfo for this renderer.
-    */
-    private FontInfo fontInfo = new FontInfo();
-
-    /**
-      The list of pages waiting to be renderered.
-    */
-    private Vector renderQueue = new Vector();
-
-    /**
-      The current set of IDReferences, passed to the
-      areatrees and pages. This is used by the AreaTree
-      as a single map of all IDs.
-    */
-    private IDReferences idReferences = new IDReferences();
-
-    public StreamRenderer(OutputStream outputStream, Renderer renderer) {
-        this.outputStream = outputStream;
-        this.renderer = renderer;
-    }
-
-    public IDReferences getIDReferences() {
-        return idReferences;
-    }
-
-    public void startRenderer()
-    throws SAXException {
-        pageCount = 0;
-
-        if (MEM_PROFILE_WITH_GC)
-            System.gc();               // This takes time but gives better results
-
-        initialMemory = runtime.totalMemory() - runtime.freeMemory();
-        startTime = System.currentTimeMillis();
-
-        try {
-            renderer.setupFontInfo(fontInfo);
-            renderer.startRenderer(outputStream);
-        } catch (IOException e) {
-            throw new SAXException(e);
-        }
-    }
-
-    public void stopRenderer()
-    throws SAXException {
-        /*
-          Force the processing of any more queue elements,
-          even if they are not resolved.
-        */
-        try {
-            processQueue(true);
-            renderer.stopRenderer(outputStream);
-        } catch (FOPException e) {
-            throw new SAXException(e);
-        }
-        catch (IOException e) {
-            throw new SAXException(e);
-        }
-
-        if (MEM_PROFILE_WITH_GC)
-            System.gc();               // This takes time but gives better results
-
-        long memoryNow = runtime.totalMemory() - runtime.freeMemory();
-        long memoryUsed = (memoryNow - initialMemory) / 1024L;
-
-        MessageHandler.logln("Initial heap size: " + (initialMemory/1024L) + "Kb");
-        MessageHandler.logln("Current heap size: " + (memoryNow/1024L) + "Kb");
-        MessageHandler.logln("Total memory used: " + memoryUsed + "Kb");
-
-        if (!MEM_PROFILE_WITH_GC) {
-            MessageHandler.logln("  Memory use is indicative; no GC was performed");
-            MessageHandler.logln("  These figures should not be used comparatively");
-        }
-
-        long timeUsed = System.currentTimeMillis() - startTime;
-
-        MessageHandler.logln("Total time used: " + timeUsed + "ms");
-        MessageHandler.logln("Pages rendererd: " + pageCount);
-        MessageHandler.logln("Avg render time: " + (timeUsed / pageCount) + "ms/page");
-    }
-
-    /**
-      Format the PageSequence. The PageSequence
-      formats Pages and adds them to the AreaTree,
-      which subsequently calls the StreamRenderer
-      instance (this) again to render the page.
-      At this time the page might be printed
-      or it might be queued. A page might not
-      be renderable immediately if the IDReferences
-      are not all valid. In this case we defer
-      the rendering until they are all valid.
-    */
-    public void render(PageSequence pageSequence)
-    throws SAXException {
-        AreaTree a = new AreaTree(this);
-        a.setFontInfo(fontInfo);
-
-        try {
-            pageSequence.format(a);
-        } catch (FOPException e) {
-            throw new SAXException(e);
-        }
-    }
-
-    public synchronized void queuePage(Page page)
-    throws FOPException, IOException {
-        /*
-          Try to optimise on the common case that there are
-          no pages pending and that all ID references are
-          valid on the current pages. This short-cuts the
-          pipeline and renders the area immediately.
-        */
-        if ((renderQueue.size() == 0) && idReferences.isEveryIdValid())
-            renderer.render(page, outputStream);
-        else
-            addToRenderQueue(page);
-
-        pageCount++;
-    }
-
-    private synchronized void addToRenderQueue(Page page)
-    throws FOPException, IOException {
-        RenderQueueEntry entry = new RenderQueueEntry(page);
-        renderQueue.addElement(entry);
-
-        /*
-          The just-added entry could (possibly) resolve the
-          waiting entries, so we try to process the queue
-          now to see.
-        */
-        processQueue(false);
-    }
-
-    /**
-      Try to process the queue from the first entry forward.
-      If an entry can't be processed, then the queue can't
-      move forward, so return.
-    */
-    private synchronized void processQueue(boolean force)
-    throws FOPException, IOException {
-        while (renderQueue.size() > 0) {
-            RenderQueueEntry entry = (RenderQueueEntry) renderQueue.elementAt(0);
-            if ((!force) && (!entry.isResolved()))
-                break;
-
-            renderer.render(entry.getPage(), outputStream);
-
-            /* TODO
-            Enumeration rootEnumeration =
-            entry.getAreaTree().getExtensions().elements();
-            while (rootEnumeration.hasMoreElements())
-            renderTree.addExtension((ExtensionObj) rootEnumeration.nextElement());
-            */
-
-            renderQueue.removeElementAt(0);
-        }
-    }
-
-    /**
-      A RenderQueueEntry consists of the Page to be queued,
-      plus a list of outstanding ID references that need to be
-      resolved before the Page can be renderered.<P>
-    */
-    class RenderQueueEntry extends Object {
-        /*
-          The Page that has outstanding ID references.
-        */
-        private Page page;
-
-        /*
-          A list of ID references (names).
-        */
-        private Vector unresolvedIdReferences = new Vector();
-
-        public RenderQueueEntry(Page page) {
-            this.page = page;
-
-            Enumeration e = idReferences.getInvalidElements();
-            while (e.hasMoreElements())
-                unresolvedIdReferences.addElement(e.nextElement());
-        }
-
-        public Page getPage() {
-            return page;
-        }
-
-        /**
-          See if the outstanding references are resolved
-          in the current copy of IDReferences.
-        */
-        public boolean isResolved() {
-            if ((unresolvedIdReferences.size() == 0) || idReferences.isEveryIdValid())
-                return true;
-
-            //
-            // See if any of the unresolved references are still unresolved.
-            //
-            Enumeration e = unresolvedIdReferences.elements();
-            while (e.hasMoreElements())
-                if (!idReferences.doesIDExist((String) e.nextElement()))
-                    return false;
-
-            unresolvedIdReferences.removeAllElements();
-            return true;
-        }
-    }
-    
-       public Page getNextPage(Page current, boolean isWithinPageSequence,
-                            boolean isFirstCall) {
-        Page nextPage = null;
-        int pageIndex = 0;
-        if (isFirstCall)
-            pageIndex = renderQueue.size();
-        else
-            pageIndex = renderQueue.indexOf(current);
-        if ((pageIndex + 1) < renderQueue.size()) {
-            nextPage = (Page)renderQueue.elementAt(pageIndex + 1);
-            if (isWithinPageSequence
-                    &&!nextPage.getPageSequence().equals(current.getPageSequence())) {
-                nextPage = null;
-            }
-        }
-        return nextPage;
-    }
-
-    public Page getPreviousPage(Page current, boolean isWithinPageSequence,
-                                boolean isFirstCall) {
-        Page previousPage = null;
-        int pageIndex = 0;
-        if (isFirstCall)
-            pageIndex = renderQueue.size();
-        else
-            pageIndex = renderQueue.indexOf(current);
-        // System.out.println("Page index = " + pageIndex);
-        if ((pageIndex - 1) >= 0) {
-            previousPage = (Page)renderQueue.elementAt(pageIndex - 1);
-            PageSequence currentPS = current.getPageSequence();
-            // System.out.println("Current PS = '" + currentPS + "'");
-            PageSequence previousPS = previousPage.getPageSequence();
-            // System.out.println("Previous PS = '" + previousPS + "'");
-            if (isWithinPageSequence &&!previousPS.equals(currentPS)) {
-                // System.out.println("Outside page sequence");
-                previousPage = null;
-            }
-        }
-        return previousPage;
-    }
-}
diff --git a/src/org/apache/fop/apps/TraxInputHandler.java b/src/org/apache/fop/apps/TraxInputHandler.java
deleted file mode 100644 (file)
index 4cebd75..0000000
+++ /dev/null
@@ -1,111 +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.apps;
-
-
-// Imported TraX classes
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamSource;
-import javax.xml.transform.sax.SAXResult;
-import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.sax.SAXTransformerFactory;
-
-
-// Imported SAX classes
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.XMLFilter;
-
-
-
-// Imported java.io classes
-import java.io.InputStream;
-import java.io.IOException;
-import java.io.File;
-
-// FOP
-import org.apache.fop.messaging.MessageHandler;
-
-/**
- * XSLTInputHandler basically takes an xmlfile and transforms it with an xsltfile
- * and the resulting xsl:fo document is input for Fop.
- */
-public class TraxInputHandler extends InputHandler {
-
-    File xmlfile, xsltfile;
-
-    public TraxInputHandler(File xmlfile, File xsltfile) {
-        this.xmlfile = xmlfile;
-        this.xsltfile = xsltfile;
-    }
-
-    /**
-     * overwrites the method of the super class to return the xmlfile
-     */
-    public InputSource getInputSource() {
-        return fileInputSource(xmlfile);
-    }
-
-    /**
-     * overwrites this method of the super class and returns an XMLFilter instead of a
-     * simple XMLReader which allows chaining of transformations
-     *
-     */
-    public XMLReader getParser() throws FOPException {
-        return this.getXMLFilter(xmlfile, xsltfile);
-    }
-
-    /**
-     * Creates from the transformer an instance of an XMLFilter which
-     * then can be used in a chain with the XMLReader passed to Driver. This way
-     * during the conversion of the xml file + xslt stylesheet the resulting
-     * data is fed into Fop. This should help to avoid memory problems
-     * @param xmlfile The xmlfile containing the text data
-     * @param xsltfile An xslt stylesheet
-     * @return XMLFilter an XMLFilter which can be chained together with other XMLReaders or XMLFilters
-     */
-    public static XMLFilter getXMLFilter(File xmlfile,
-                                         File xsltfile) throws FOPException {
-        try {
-            // Instantiate  a TransformerFactory.
-            TransformerFactory tFactory = TransformerFactory.newInstance();
-            // Determine whether the TransformerFactory supports The use uf SAXSource
-            // and SAXResult
-            if (tFactory.getFeature(SAXSource.FEATURE)
-                    && tFactory.getFeature(SAXResult.FEATURE)) {
-                // Cast the TransformerFactory to SAXTransformerFactory.
-                SAXTransformerFactory saxTFactory =
-                    ((SAXTransformerFactory)tFactory);
-                // Create an XMLFilter for each stylesheet.
-                XMLFilter xmlfilter =
-                    saxTFactory.newXMLFilter(new StreamSource(xsltfile));
-
-                // Create an XMLReader.
-                XMLReader parser = createParser();
-                if (parser == null) {
-                    throw new FOPException("Unable to create SAX parser");
-                }
-
-                // xmlFilter1 uses the XMLReader as its reader.
-                xmlfilter.setParent(parser);
-                return xmlfilter;
-            } else {
-                throw new FOPException("Your parser doesn't support the features SAXSource and SAXResult."
-                                       + "\nMake sure you are using a xsl parser which supports TrAX");
-            }
-        } catch (Exception ex) {
-            if (ex instanceof FOPException) {
-                throw (FOPException)ex;
-            }
-            throw new FOPException(ex);
-        }
-    }
-
-}
-
diff --git a/src/org/apache/fop/apps/XSLTInputHandler.java b/src/org/apache/fop/apps/XSLTInputHandler.java
deleted file mode 100644 (file)
index 3b03583..0000000
+++ /dev/null
@@ -1,126 +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.apps;
-
-import java.lang.reflect.*;
-
-
-// Imported SAX classes
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-
-// Imported java.io classes
-import java.io.*;
-
-// FOP
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.tools.xslt.XSLTransform;
-
-/**
- * XSLTInputHandler basically takes an xmlfile and transforms it with an xsltfile
- * and the resulting xsl:fo document is input for Fop.
- */
-public class XSLTInputHandler extends InputHandler {
-
-    File xmlfile, xsltfile;
-    boolean useOldTransform = false;
-
-    public XSLTInputHandler(File xmlfile, File xsltfile) {
-        this.xmlfile = xmlfile;
-        this.xsltfile = xsltfile;
-    }
-
-    /**
-     * overwrites the method of the super class to return the xmlfile
-     */
-    public InputSource getInputSource() {
-        if (useOldTransform) {
-            try {
-                java.io.Writer writer;
-                java.io.Reader reader;
-                File tmpFile = null;
-
-                // create a Writer
-                // the following is an ugly hack to allow processing of larger files
-                // if xml file size is larger than 500 kb write the fo:file to disk
-                if ((xmlfile.length()) > 500000) {
-                    tmpFile = new File(xmlfile.getName() + ".fo.tmp");
-                    writer = new FileWriter(tmpFile);
-                } else {
-                    writer = new StringWriter();
-                }
-
-                XSLTransform.transform(xmlfile.getCanonicalPath(),
-                                       xsltfile.getCanonicalPath(), writer);
-
-                writer.flush();
-                writer.close();
-
-                if (tmpFile != null) {
-                    reader = new FileReader(tmpFile);
-                } else {
-                    // create a input source containing the xsl:fo file which can be fed to Fop
-                    reader = new StringReader(writer.toString());
-                }
-                return new InputSource(reader);
-            } catch (Exception ex) {
-                ex.printStackTrace();
-                return null;
-            }
-        } else {
-            return fileInputSource(xmlfile);
-        }
-
-    }
-
-    /**
-     * This looks to see if the Trax api is supported and uses that to
-     * get an XMLFilter. Otherwise, it falls back to using DOM documents
-     *
-     */
-    public XMLReader getParser() throws FOPException {
-        XMLReader result = null;
-        try {
-            // try trax first
-            Class transformer =
-                Class.forName("javax.xml.transform.Transformer");
-            transformer =
-                Class.forName("org.apache.fop.apps.TraxInputHandler");
-            Class[] argTypes = {
-                File.class, File.class
-            };
-            Method getFilterMethod = transformer.getMethod("getXMLFilter",
-                    argTypes);
-            File[] args = {
-                xmlfile, xsltfile
-            };
-            Object obj = getFilterMethod.invoke(null, args);
-            if (obj instanceof XMLReader) {
-                result = (XMLReader)obj;
-            }
-        } catch (ClassNotFoundException ex) {
-            throw new FOPException(ex);
-        } catch (InvocationTargetException ex) {
-            throw new FOPException(ex);
-        } catch (IllegalAccessException ex) {
-            throw new FOPException(ex);
-        } catch (NoSuchMethodException ex) {
-            throw new FOPException(ex);
-        }
-        // otherwise, use DOM documents via our XSLTransform tool class old style
-        if (result == null) {
-            useOldTransform = true;
-            result = createParser();
-        }
-        return result;
-
-    }
-
-}
-
diff --git a/src/org/apache/fop/apps/XTDriver.java b/src/org/apache/fop/apps/XTDriver.java
deleted file mode 100644 (file)
index 5a0e5f1..0000000
+++ /dev/null
@@ -1,337 +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.apps;
-
-// FOP
-import org.apache.fop.fo.XTFOTreeBuilder;
-import org.apache.fop.fo.ElementMapping;
-import org.apache.fop.fo.PropertyListMapping;
-import org.apache.fop.layout.AreaTree;
-import org.apache.fop.layout.FontInfo;
-import org.apache.fop.render.Renderer;
-import org.apache.fop.messaging.MessageHandler;
-
-// DOM
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Attr;
-
-// SAX
-import org.xml.sax.DocumentHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.Parser;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.AttributesImpl;
-
-// Java
-import java.io.*;
-
-/**
- * <P>Primary class that drives overall FOP process.
- *
- * <P>Once this class is instantiated, methods are called to set the
- * Renderer to use, the (possibly multiple) ElementMapping(s) to
- * use and the PrintWriter to use to output the results of the
- * rendering (where applicable). In the case of the Renderer and
- * ElementMapping(s), the Driver may be supplied either with the
- * object itself, or the name of the class, in which case Driver will
- * instantiate the class itself. The advantage of the latter is it
- * enables runtime determination of Renderer and ElementMapping(s).
- *
- * <P>Once the Driver is set up, the buildFOTree method
- * is called. Depending on whether DOM or SAX is being used, the
- * invocation of the method is either buildFOTree(Document) or
- * buildFOTree(Parser, InputSource) respectively.
- *
- * <P>A third possibility may be used to build the FO Tree, namely
- * calling getDocumentHandler() and firing the SAX events yourself.
- *
- * <P>Once the FO Tree is built, the format() and render() methods may be
- * called in that order.
- *
- * <P>Here is an example use of Driver from CommandLine.java:
- *
- * <PRE>
- * Driver driver = new Driver();
- * driver.setRenderer("org.apache.fop.render.pdf.PDFRenderer", version);
- * driver.addElementMapping("org.apache.fop.fo.StandardElementMapping");
- * driver.addElementMapping("org.apache.fop.svg.SVGElementMapping");
- * driver.setWriter(new PrintWriter(new FileWriter(args[1])));
- * driver.buildFOTree(parser, fileInputSource(args[0]));
- * driver.format();
- * driver.render();
- * </PRE>
- */
-public class XTDriver {
-
-    /**
-     * the FO tree builder
-     */
-    protected XTFOTreeBuilder treeBuilder;
-
-    /**
-     * the area tree that is the result of formatting the FO tree
-     */
-    protected AreaTree areaTree;
-
-    /**
-     * the renderer to use to output the area tree
-     */
-    protected Renderer renderer;
-
-    /**
-     * the PrintWriter to use to output the results of the renderer
-     */
-    protected PrintWriter writer;
-
-    /**
-     * the stream to use to output the results of the renderer
-     */
-    protected OutputStream stream;
-
-    /**
-     * create a new Driver
-     */
-    public XTDriver() {
-        this.treeBuilder = new XTFOTreeBuilder();
-    }
-
-    /**
-     * set the Renderer to use
-     */
-    public void setRenderer(Renderer renderer) {
-        this.renderer = renderer;
-    }
-
-    /**
-     * set the class name of the Renderer to use as well as the
-     * producer string for those renderers that can make use of it
-     */
-    public void setRenderer(String rendererClassName, String producer) {
-        this.renderer = createRenderer(rendererClassName);
-        this.renderer.setProducer(producer);
-    }
-
-    /**
-     * protected method used by setRenderer(String, String) to
-     * instantiate the Renderer class
-     */
-    protected Renderer createRenderer(String rendererClassName) {
-        MessageHandler.logln("using renderer " + rendererClassName);
-
-        try {
-            return (Renderer)Class.forName(rendererClassName).newInstance();
-        } catch (ClassNotFoundException e) {
-            MessageHandler.errorln("Could not find " + rendererClassName);
-        } catch (InstantiationException e) {
-            MessageHandler.errorln("Could not instantiate "
-                                   + rendererClassName);
-        } catch (IllegalAccessException e) {
-            MessageHandler.errorln("Could not access " + rendererClassName);
-        } catch (ClassCastException e) {
-            MessageHandler.errorln(rendererClassName + " is not a renderer");
-        }
-        return null;
-    }
-
-    /**
-     * add the given element mapping.
-     *
-     * an element mapping maps element names to Java classes
-     */
-    public void addElementMapping(ElementMapping mapping) {
-        mapping.addToBuilder(this.treeBuilder);
-    }
-
-    /**
-     * add the element mapping with the given class name
-     */
-    public void addElementMapping(String mappingClassName) {
-        createElementMapping(mappingClassName).addToBuilder(this.treeBuilder);
-    }
-
-    /**
-     * protected method used by addElementMapping(String) to
-     * instantiate element mapping class
-     */
-    protected ElementMapping createElementMapping(String mappingClassName) {
-        MessageHandler.logln("using element mapping " + mappingClassName);
-
-        try {
-            return (ElementMapping)Class.forName(mappingClassName).newInstance();
-        } catch (ClassNotFoundException e) {
-            MessageHandler.errorln("Could not find " + mappingClassName);
-        } catch (InstantiationException e) {
-            MessageHandler.errorln("Could not instantiate "
-                                   + mappingClassName);
-        } catch (IllegalAccessException e) {
-            MessageHandler.errorln("Could not access " + mappingClassName);
-        } catch (ClassCastException e) {
-            MessageHandler.errorln(mappingClassName
-                                   + " is not an element mapping");
-        }
-        return null;
-    }
-
-    /**
-     * return the tree builder (a SAX DocumentHandler).
-     *
-     * used in situations where SAX is used but not via a FOP-invoked
-     * SAX parser. A good example is an XSLT engine that fires SAX
-     * events but isn't a SAX Parser itself.
-     */
-    public DocumentHandler getDocumentHandler() {
-        return this.treeBuilder;
-    }
-
-    /**
-     * build the formatting object tree using the given SAX Parser and
-     * SAX InputSource
-     */
-    public void buildFOTree(Parser parser,
-                            InputSource source) throws FOPException {
-
-        parser.setDocumentHandler(this.treeBuilder);
-        try {
-            parser.parse(source);
-        } catch (SAXException e) {
-            if (e.getException() instanceof FOPException)
-                throw (FOPException)e.getException();
-            else
-                throw new FOPException(e.getMessage());
-        } catch (IOException e) {
-            throw new FOPException(e.getMessage());
-        }
-    }
-
-    /**
-     * build the formatting object tree using the given DOM Document
-     */
-    public void buildFOTree(Document document) throws FOPException {
-
-        /* most of this code is modified from John Cowan's */
-
-        Node currentNode;
-        AttributesImpl currentAtts;
-
-        /* temporary array for making Strings into character arrays */
-        char[] array = null;
-
-        currentAtts = new AttributesImpl();
-
-        /* start at the document element */
-        currentNode = document;
-
-        try {
-            while (currentNode != null) {
-                switch (currentNode.getNodeType()) {
-                case Node.DOCUMENT_NODE:
-                    this.treeBuilder.startDocument();
-                    break;
-                case Node.CDATA_SECTION_NODE:
-                case Node.TEXT_NODE:
-                    String data = currentNode.getNodeValue();
-                    int datalen = data.length();
-                    if (array == null || array.length < datalen) {
-                        /*
-                         * if the array isn't big enough, make a new
-                         * one
-                         */
-                        array = new char[datalen];
-                    }
-                    data.getChars(0, datalen, array, 0);
-                    this.treeBuilder.characters(array, 0, datalen);
-                    break;
-                case Node.PROCESSING_INSTRUCTION_NODE:
-                    this.treeBuilder.processingInstruction(currentNode.getNodeName(),
-                                                           currentNode.getNodeValue());
-                    break;
-                case Node.ELEMENT_NODE:
-                    NamedNodeMap map = currentNode.getAttributes();
-                    currentAtts.clear();
-                    for (int i = map.getLength() - 1; i >= 0; i--) {
-                        Attr att = (Attr)map.item(i);
-                        currentAtts.addAttribute("", att.getName(), "",
-                                                 "CDATA", att.getValue());
-                    }
-                    this.treeBuilder.startElement("",
-                                                  currentNode.getNodeName(),
-                                                  "", currentAtts);
-                    break;
-                }
-
-                Node nextNode = currentNode.getFirstChild();
-                if (nextNode != null) {
-                    currentNode = nextNode;
-                    continue;
-                }
-
-                while (currentNode != null) {
-                    switch (currentNode.getNodeType()) {
-                    case Node.DOCUMENT_NODE:
-                        this.treeBuilder.endDocument();
-                        break;
-                    case Node.ELEMENT_NODE:
-                        this.treeBuilder.endElement("",
-                                                    currentNode.getNodeName(),
-                                                    "");
-                        break;
-                    }
-
-                    nextNode = currentNode.getNextSibling();
-                    if (nextNode != null) {
-                        currentNode = nextNode;
-                        break;
-                    }
-
-                    currentNode = currentNode.getParentNode();
-                }
-            }
-        } catch (SAXException e) {
-            throw new FOPException(e.getMessage());
-        }
-    }
-
-    /**
-     * set the PrintWriter to use to output the result of the Renderer
-     * (if applicable)
-     */
-    public void setWriter(PrintWriter writer) {
-        this.writer = writer;
-    }
-
-    /**
-     * set the OutputStream to use to output the result of the Renderer
-     * (if applicable)
-     */
-    public void setOutputStream(OutputStream stream) {
-        this.stream = stream;
-    }
-
-    /**
-     * format the formatting object tree into an area tree
-     */
-    public void format() throws FOPException {
-        FontInfo fontInfo = new FontInfo();
-        this.renderer.setupFontInfo(fontInfo);
-
-        this.areaTree = new AreaTree();
-        this.areaTree.setFontInfo(fontInfo);
-
-        this.treeBuilder.format(areaTree);
-    }
-
-    /**
-     * render the area tree to the output form
-     */
-    public void render() throws IOException, FOPException {
-        this.renderer.render(areaTree, this.stream);
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/BasicLink.java b/src/org/apache/fop/fo/flow/BasicLink.java
deleted file mode 100644 (file)
index c06c507..0000000
+++ /dev/null
@@ -1,137 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.datatypes.ColorType;
-
-// Java
-import java.util.Enumeration;
-import java.awt.Rectangle;
-
-public class BasicLink extends FObjMixed {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new BasicLink(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new BasicLink.Maker();
-    }
-
-    public BasicLink(FObj parent,
-                     PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:basic-link";
-
-        if (parent.getName().equals("fo:flow")) {
-            throw new FOPException("basic-link can't be directly"
-                                   + " under flow");
-        }
-    }
-
-    public Status layout(Area area) throws FOPException {
-        String destination;
-        int linkType;
-
-        // Common Accessibility Properties
-        AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-        // Common Aural Properties
-        AuralProps mAurProps = propMgr.getAuralProps();
-
-        // Common Border, Padding, and Background Properties
-        BorderAndPadding bap = propMgr.getBorderAndPadding();
-        BackgroundProps bProps = propMgr.getBackgroundProps();
-
-        // Common Margin Properties-Inline
-        MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
-        // Common Relative Position Properties
-        RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
-        // this.properties.get("alignment-adjust");
-        // this.properties.get("alignment-baseline");
-        // this.properties.get("baseline-shift");
-        // this.properties.get("destination-place-offset");
-        // this.properties.get("dominant-baseline");
-        // this.properties.get("external-destination");        
-        // this.properties.get("id");
-        // this.properties.get("indicate-destination");  
-        // this.properties.get("internal-destination");  
-        // this.properties.get("keep-together");
-        // this.properties.get("keep-with-next");
-        // this.properties.get("keep-with-previous");
-        // this.properties.get("line-height");
-        // this.properties.get("line-height-shift-adjustment");
-        // this.properties.get("show-destination");  
-        // this.properties.get("target-processing-context");  
-        // this.properties.get("target-presentation-context");  
-        // this.properties.get("target-stylesheet");  
-
-        if (!(destination =
-                this.properties.get("internal-destination").getString()).equals("")) {
-            linkType = LinkSet.INTERNAL;
-        } else if (!(destination =
-        this.properties.get("external-destination").getString()).equals("")) {
-            linkType = LinkSet.EXTERNAL;
-        } else {
-            throw new FOPException("internal-destination or external-destination must be specified in basic-link");
-        }
-
-        if (this.marker == START) {
-            // initialize id
-            String id = this.properties.get("id").getString();
-            area.getIDReferences().initializeID(id, area);
-            this.marker = 0;
-        }
-
-        // new LinkedArea to gather up inlines
-        LinkSet ls = new LinkSet(destination, area, linkType);
-
-        Page p = area.getPage();
-
-        AreaContainer ac = p.getBody().getCurrentColumnArea();
-        if (ac == null) {
-            throw new FOPException("Couldn't get ancestor AreaContainer when processing basic-link");
-        }
-
-        int numChildren = this.children.size();
-        for (int i = this.marker; i < numChildren; i++) {
-            FONode fo = (FONode)children.elementAt(i);
-            fo.setLinkSet(ls);
-
-            Status status;
-            if ((status = fo.layout(area)).isIncomplete()) {
-                this.marker = i;
-                return status;
-            }
-        }
-
-        ls.applyAreaContainerOffsets(ac, area);
-
-        // pass on command line
-        String mergeLinks = System.getProperty("links.merge");
-        if ((null != mergeLinks) &&!mergeLinks.equalsIgnoreCase("no")) {
-            ls.mergeLinks();
-        }
-
-        p.addLinkSet(ls);
-
-        return new Status(Status.OK);
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/BidiOverride.java b/src/org/apache/fop/fo/flow/BidiOverride.java
deleted file mode 100644 (file)
index ea1566c..0000000
+++ /dev/null
@@ -1,66 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.flow.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.AreaTree;
-import org.apache.fop.apps.FOPException;
-
-/**
- */
-public class BidiOverride extends ToBeImplementedElement {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new BidiOverride(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new BidiOverride.Maker();
-    }
-
-    protected BidiOverride(FObj parent,
-                           PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:bidi-override";
-    }
-
-    public Status layout(Area area) throws FOPException {
-
-        // Common Aural Properties
-        AuralProps mAurProps = propMgr.getAuralProps();
-
-        // Common Font Properties
-        //this.fontState = propMgr.getFontState(area.getFontInfo());
-
-        // Common Margin Properties-Inline
-        RelativePositionProps mProps = propMgr.getRelativePositionProps();
-
-        // this.properties.get("color");
-        // this.properties.get("direction");
-        // this.properties.get("id");
-        // this.properties.get("letter-spacing");
-        // this.properties.get("line-height");
-        // this.properties.get("line-height-shift-adjustment");
-        // this.properties.get("score-spaces");
-        // this.properties.get("text-shadow");
-        // this.properties.get("text-transform");
-        // this.properties.get("unicode-bidi");
-        // this.properties.get("word-spacing");
-
-        return super.layout(area);
-    }
-}
diff --git a/src/org/apache/fop/fo/flow/Block.java b/src/org/apache/fop/fo/flow/Block.java
deleted file mode 100644 (file)
index 7ba0bed..0000000
+++ /dev/null
@@ -1,363 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.datatypes.*;
-import org.apache.fop.apps.FOPException;
-
-/*
-  Modified by Mark Lillywhite mark-fop@inomial.com. The changes
-  here are based on memory profiling and do not change functionality.
-  Essentially, the Block object had a pointer to a BlockArea object
-  that it created. The BlockArea was not referenced after the Block
-  was finished except to determine the size of the BlockArea, however
-  a reference to the BlockArea was maintained and this caused a lot of
-  GC problems, and was a major reason for FOP memory leaks. So,
-  the reference to BlockArea was made local, the required information
-  is now stored (instead of a reference to the complex BlockArea object)
-  and it appears that there are a lot of changes in this file, in fact
-  there are only a few sematic changes; mostly I just got rid of 
-  "this." from blockArea since BlockArea is now local.
-  */
-
-public class Block extends FObjMixed {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new Block(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new Block.Maker();
-    }
-
-    int align;
-    int alignLast;
-    int breakAfter;
-    int lineHeight;
-    int startIndent;
-    int endIndent;
-    int spaceBefore;
-    int spaceAfter;
-    int textIndent;
-    int keepWithNext;
-    ColorType backgroundColor;
-    int blockWidows;
-    int blockOrphans;
-
-    int areaHeight = 0;
-    int contentWidth = 0;
-
-    String id;
-    int span;
-
-    // this may be helpful on other FOs too
-    boolean anythingLaidOut = false;
-
-    public Block(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:block";
-        this.span = this.properties.get("span").getEnum();
-    }
-
-    public Status layout(Area area) throws FOPException {
-        BlockArea blockArea;
-
-        // MessageHandler.error(" b:LAY[" + marker + "] ");
-
-
-        if (this.marker == BREAK_AFTER) {
-            return new Status(Status.OK);
-        }
-
-        if (this.marker == START) {
-
-            // Common Accessibility Properties
-            AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-            // Common Aural Properties
-            AuralProps mAurProps = propMgr.getAuralProps();
-
-            // Common Border, Padding, and Background Properties
-            BorderAndPadding bap = propMgr.getBorderAndPadding();
-            BackgroundProps bProps = propMgr.getBackgroundProps();
-
-            // Common Font Properties
-            //this.fontState = propMgr.getFontState(area.getFontInfo());
-
-            // Common Hyphenation Properties
-            HyphenationProps mHyphProps = propMgr.getHyphenationProps();
-
-            // Common Margin Properties-Block
-            MarginProps mProps = propMgr.getMarginProps();
-
-            // Common Relative Position Properties
-            RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
-            // this.properties.get("break-after");
-            // this.properties.get("break-before");
-            // this.properties.get("color");
-            // this.properties.get("text-depth");
-            // this.properties.get("text-altitude");
-            // this.properties.get("hyphenation-keep");
-            // this.properties.get("hyphenation-ladder-count");
-            // this.properties.get("id");
-            // this.properties.get("keep-together");
-            // this.properties.get("keep-with-next");
-            // this.properties.get("keep-with-previous");
-            // this.properties.get("last-line-end-indent");
-            // this.properties.get("linefeed-treatment");
-            // this.properties.get("line-height");
-            // this.properties.get("line-height-shift-adjustment");
-            // this.properties.get("line-stacking-strategy");
-            // this.properties.get("orphans");
-            // this.properties.get("space-treatment");
-            // this.properties.get("span");
-            // this.properties.get("text-align");
-            // this.properties.get("text-align-last");
-            // this.properties.get("text-indent");
-            // this.properties.get("visibility");
-            // this.properties.get("white-space-collapse");
-            // this.properties.get("widows");
-            // this.properties.get("wrap-option");
-            // this.properties.get("z-index");
-
-            this.align = this.properties.get("text-align").getEnum();
-            this.alignLast = this.properties.get("text-align-last").getEnum();
-            this.breakAfter = this.properties.get("break-after").getEnum();
-            this.lineHeight =
-                this.properties.get("line-height").getLength().mvalue();
-            this.startIndent =
-                this.properties.get("start-indent").getLength().mvalue();
-            this.endIndent =
-                this.properties.get("end-indent").getLength().mvalue();
-            this.spaceBefore =
-                this.properties.get("space-before.optimum").getLength().mvalue();
-            this.spaceAfter =
-                this.properties.get("space-after.optimum").getLength().mvalue();
-            this.textIndent =
-                this.properties.get("text-indent").getLength().mvalue();
-            this.keepWithNext =
-                this.properties.get("keep-with-next").getEnum();
-            this.backgroundColor =
-                this.properties.get("background-color").getColorType();
-
-            this.blockWidows =
-                this.properties.get("widows").getNumber().intValue();
-            this.blockOrphans =
-                this.properties.get("orphans").getNumber().intValue();
-
-
-
-            this.id = this.properties.get("id").getString();
-
-            if (area instanceof BlockArea) {
-                area.end();
-            }
-
-            if (area.getIDReferences() != null)
-                area.getIDReferences().createID(id);
-
-            this.marker = 0;
-
-            // no break if first in area tree, or leading in context
-            // area
-            int breakBeforeStatus = propMgr.checkBreakBefore(area);
-            if (breakBeforeStatus != Status.OK) {
-                return new Status(breakBeforeStatus);
-            }
-
-            int numChildren = this.children.size();
-            for (int i = 0; i < numChildren; i++) {
-                FONode fo = (FONode)children.elementAt(i);
-                if (fo instanceof FOText) {
-                    if (((FOText)fo).willCreateArea()) {
-                        fo.setWidows(blockWidows);
-                        break;
-                    } else {
-                        children.removeElementAt(i);
-                        numChildren = this.children.size();
-                        i--;
-                    }
-                } else {
-                    fo.setWidows(blockWidows);
-                    break;
-                }
-            }
-
-            for (int i = numChildren - 1; i >= 0; i--) {
-                FONode fo = (FONode)children.elementAt(i);
-                if (fo instanceof FOText) {
-                    if (((FOText)fo).willCreateArea()) {
-                        fo.setOrphans(blockOrphans);
-                        break;
-                    }
-                } else {
-                    fo.setOrphans(blockOrphans);
-                    break;
-                }
-            }
-        }
-
-        if ((spaceBefore != 0) && (this.marker == 0)) {
-            area.addDisplaySpace(spaceBefore);
-        }
-
-        if (anythingLaidOut) {
-            this.textIndent = 0;
-        }
-
-        if (marker == 0 && area.getIDReferences() != null) {
-            area.getIDReferences().configureID(id, area);
-        }
-
-        int spaceLeft = area.spaceLeft();
-        blockArea =
-            new BlockArea(propMgr.getFontState(area.getFontInfo()),
-                          area.getAllocationWidth(), area.spaceLeft(),
-                          startIndent, endIndent, textIndent, align,
-                          alignLast, lineHeight);
-        blockArea.setGeneratedBy(this);
-        this.areasGenerated++;
-        if (this.areasGenerated == 1)
-            blockArea.isFirst(true);
-        // for normal areas this should be the only pair
-        blockArea.addLineagePair(this, this.areasGenerated);
-
-        // markers
-        if (this.hasMarkers())
-            blockArea.addMarkers(this.getMarkers());
-
-        blockArea.setParent(area);    // BasicLink needs it
-        blockArea.setPage(area.getPage());
-        blockArea.setBackgroundColor(backgroundColor);
-        blockArea.setBorderAndPadding(propMgr.getBorderAndPadding());
-        blockArea.setHyphenation(propMgr.getHyphenationProps());
-        blockArea.start();
-
-        blockArea.setAbsoluteHeight(area.getAbsoluteHeight());
-        blockArea.setIDReferences(area.getIDReferences());
-
-        blockArea.setTableCellXOffset(area.getTableCellXOffset());
-
-        int numChildren = this.children.size();
-        for (int i = this.marker; i < numChildren; i++) {
-            FONode fo = (FONode)children.elementAt(i);
-            Status status;
-            if ((status = fo.layout(blockArea)).isIncomplete()) {
-                this.marker = i;
-                // this block was modified by
-                // Hani Elabed 11/27/2000
-                // if ((i != 0) && (status.getCode() == Status.AREA_FULL_NONE))
-                // {
-                // status = new Status(Status.AREA_FULL_SOME);
-                // }
-
-                // new block to replace the one above
-                // Hani Elabed 11/27/2000
-                if (status.getCode() == Status.AREA_FULL_NONE) {
-                    // something has already been laid out
-                    if ((i != 0)) {
-                        status = new Status(Status.AREA_FULL_SOME);
-                        area.addChild(blockArea);
-                        area.setMaxHeight(area.getMaxHeight() - spaceLeft
-                                          + blockArea.getMaxHeight());
-                        area.increaseHeight(blockArea.getHeight());
-                        area.setAbsoluteHeight(blockArea.getAbsoluteHeight());
-                        anythingLaidOut = true;
-
-                        return status;
-                    } else    // i == 0 nothing was laid out..
-                    {
-                        anythingLaidOut = false;
-                        return status;
-                    }
-                }
-
-                // blockArea.end();
-                area.addChild(blockArea);
-                area.setMaxHeight(area.getMaxHeight() - spaceLeft
-                                  + blockArea.getMaxHeight());
-                area.increaseHeight(blockArea.getHeight());
-                area.setAbsoluteHeight(blockArea.getAbsoluteHeight());
-                anythingLaidOut = true;
-                return status;
-            }
-            anythingLaidOut = true;
-        }
-
-        blockArea.end();
-
-        area.setMaxHeight(area.getMaxHeight() - spaceLeft
-                          + blockArea.getMaxHeight());
-
-        area.addChild(blockArea);
-
-        /* should this be combined into above? */
-        area.increaseHeight(blockArea.getHeight());
-
-        area.setAbsoluteHeight(blockArea.getAbsoluteHeight());
-
-        if (spaceAfter != 0) {
-            area.addDisplaySpace(spaceAfter);
-        }
-
-        if (area instanceof BlockArea) {
-            area.start();
-        }
-        // This is not needed any more and it consumes a LOT
-        // of memory. So we release it for the GC.
-        areaHeight= blockArea.getHeight();
-        contentWidth= blockArea.getContentWidth();
-
-        // no break if last in area tree, or trailing in context
-        // area
-        int breakAfterStatus = propMgr.checkBreakAfter(area);
-        if (breakAfterStatus != Status.OK) {
-            this.marker = BREAK_AFTER;
-            blockArea = null; //Faster GC - BlockArea is big
-            return new Status(breakAfterStatus);
-        }
-
-        if (keepWithNext != 0) {
-            blockArea = null; // Faster GC - BlockArea is big
-            return new Status(Status.KEEP_WITH_NEXT);
-        }
-
-        // MessageHandler.error(" b:OK" + marker + " ");
-        blockArea.isLast(true);
-        blockArea = null; // Faster GC - BlockArea is big
-        return new Status(Status.OK);
-    }
-
-    public int getAreaHeight() {
-        return areaHeight;
-    }
-
-
-    /**
-     * Return the content width of the boxes generated by this FO.
-     */
-    public int getContentWidth() {
-        return contentWidth;    // getAllocationWidth()??
-    }
-
-
-    public int getSpan() {
-        return this.span;
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/BlockContainer.java b/src/org/apache/fop/fo/flow/BlockContainer.java
deleted file mode 100644 (file)
index 563fbbf..0000000
+++ /dev/null
@@ -1,182 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.fo.pagination.PageSequence;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.datatypes.*;
-
-// Java
-import java.util.Hashtable;
-import java.util.Enumeration;
-
-public class BlockContainer extends FObj {
-
-    ColorType backgroundColor;
-    int position;
-
-    int top;
-    int bottom;
-    int left;
-    int right;
-    int width;
-    int height;
-
-    int span;
-
-    AreaContainer areaContainer;
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new BlockContainer(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new BlockContainer.Maker();
-    }
-
-    PageSequence pageSequence;
-
-    protected BlockContainer(FObj parent,
-                             PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:block-container";
-        this.span = this.properties.get("span").getEnum();
-    }
-
-    public Status layout(Area area) throws FOPException {
-        if (this.marker == START) {
-
-            // Common Accessibility Properties
-            AbsolutePositionProps mAbsProps = propMgr.getAbsolutePositionProps();
-
-            // Common Border, Padding, and Background Properties
-            BorderAndPadding bap = propMgr.getBorderAndPadding();
-            BackgroundProps bProps = propMgr.getBackgroundProps();
-
-            // Common Margin-Block Properties
-            MarginProps mProps = propMgr.getMarginProps();
-
-            // this.properties.get("block-progression-dimension");
-            // this.properties.get("break-after");
-            // this.properties.get("break-before");
-            // this.properties.get("clip");
-            // this.properties.get("display-align");
-            // this.properties.get("height");
-            // this.properties.get("id");
-            // this.properties.get("keep-together");
-            // this.properties.get("keep-with-next");
-            // this.properties.get("keep-with-previous");
-            // this.properties.get("overflow");
-            // this.properties.get("reference-orientation");
-            // this.properties.get("span");
-            // this.properties.get("width");
-            // this.properties.get("writing-mode");
-
-            this.marker = 0;
-
-            this.backgroundColor =
-                this.properties.get("background-color").getColorType();
-
-            this.position = this.properties.get("position").getEnum();
-            this.top = this.properties.get("top").getLength().mvalue();
-            this.bottom = this.properties.get("bottom").getLength().mvalue();
-            this.left = this.properties.get("left").getLength().mvalue();
-            this.right = this.properties.get("right").getLength().mvalue();
-            this.width = this.properties.get("width").getLength().mvalue();
-            this.height = this.properties.get("height").getLength().mvalue();
-            span = this.properties.get("span").getEnum();
-
-            // initialize id
-            String id = this.properties.get("id").getString();
-            area.getIDReferences().initializeID(id, area);
-        }
-
-        boolean prevChildMustKeepWithNext = false;
-
-        AreaContainer container = (AreaContainer)area;
-        if ((this.width == 0) && (this.height == 0)) {
-            width = right - left;
-            height = bottom - top;
-        }
-
-        this.areaContainer =
-            new AreaContainer(propMgr.getFontState(container.getFontInfo()),
-                              container.getXPosition() + left,
-                              container.getYPosition() - top, width, height,
-                              position);
-
-        areaContainer.setPage(area.getPage());
-        areaContainer.setBackgroundColor(backgroundColor);
-        areaContainer.setBorderAndPadding(propMgr.getBorderAndPadding());
-        areaContainer.start();
-
-        areaContainer.setAbsoluteHeight(area.getAbsoluteHeight());
-        areaContainer.setIDReferences(area.getIDReferences());
-
-        int numChildren = this.children.size();
-        for (int i = this.marker; i < numChildren; i++) {
-            FObj fo = (FObj)children.elementAt(i);
-            Status status;
-            if ((status = fo.layout(areaContainer)).isIncomplete()) {
-                /*
-                 * if ((prevChildMustKeepWithNext) && (status.laidOutNone())) {
-                 * this.marker = i - 1;
-                 * FObj prevChild = (FObj) children.elementAt(this.marker);
-                 * prevChild.removeAreas();
-                 * prevChild.resetMarker();
-                 * return new Status(Status.AREA_FULL_SOME);
-                 * // should probably return AREA_FULL_NONE if first
-                 * // or perhaps an entirely new status code
-                 * } else {
-                 * this.marker = i;
-                 * return status;
-                 * }
-                 */
-            }
-            if (status.getCode() == Status.KEEP_WITH_NEXT) {
-                prevChildMustKeepWithNext = true;
-            }
-        }
-        area.setAbsoluteHeight(areaContainer.getAbsoluteHeight());
-
-        areaContainer.end();
-        if (position == Position.ABSOLUTE)
-            areaContainer.setHeight(height);
-        area.addChild(areaContainer);
-
-        return new Status(Status.OK);
-    }
-
-    /**
-     * Return the content width of the boxes generated by this block
-     * container FO.
-     */
-    public int getContentWidth() {
-        if (areaContainer != null)
-            return areaContainer.getContentWidth();    // getAllocationWidth()??
-        else
-            return 0;    // not laid out yet
-    }
-
-    public boolean generatesReferenceAreas() {
-        return true;
-    }
-
-    public int getSpan() {
-        return this.span;
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/Character.java b/src/org/apache/fop/fo/flow/Character.java
deleted file mode 100644 (file)
index eea3c77..0000000
+++ /dev/null
@@ -1,165 +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.fo.flow;
-
-// fop
-import org.apache.fop.fo.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.datatypes.ColorType;
-import org.apache.fop.layout.BlockArea;
-import org.apache.fop.layout.*;
-import org.apache.fop.layout.inline.InlineArea;
-import org.apache.fop.fo.FObj;
-import org.apache.fop.layout.FontState;
-import org.apache.fop.layout.LineArea;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.messaging.MessageHandler;
-
-
-/**
- * this class represents the flow object 'fo:character'. Its use is defined by
- * the spec: "The fo:character flow object represents a character that is mapped to
- * a glyph for presentation. It is an atomic unit to the formatter.
- * When the result tree is interpreted as a tree of formatting objects,
- * a character in the result tree is treated as if it were an empty
- * element of type fo:character with a character attribute
- * equal to the Unicode representation of the character.
- * The semantics of an "auto" value for character properties, which is
- * typically their initial value,  are based on the Unicode codepoint.
- * Overrides may be specified in an implementation-specific manner." (6.6.3)
- *
- */
-public class Character extends FObj {
-    public final static int OK = 0;
-    public final static int DOESNOT_FIT = 1;
-
-    public Character(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:character";
-    }
-
-    public static FObj.Maker maker() {
-        return new Character.Maker();
-    }
-
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new Character(parent, propertyList);
-        }
-
-    }
-
-
-    public Status layout(Area area) throws FOPException {
-        BlockArea blockArea;
-        if (!(area instanceof BlockArea)) {
-            MessageHandler.errorln("WARNING: currently Character can only be in a BlockArea");
-            return new Status(Status.OK);
-        }
-        blockArea = (BlockArea)area;
-        boolean textDecoration;
-
-        // Common Aural Properties
-        AuralProps mAurProps = propMgr.getAuralProps();
-
-        // Common Border, Padding, and Background Properties
-        BorderAndPadding bap = propMgr.getBorderAndPadding();
-        BackgroundProps bProps = propMgr.getBackgroundProps();
-
-        // Common Font Properties
-        //this.fontState = propMgr.getFontState(area.getFontInfo());
-
-        // Common Hyphenation Properties
-        HyphenationProps mHyphProps = propMgr.getHyphenationProps();
-
-        // Common Margin Properties-Inline
-        MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
-        // Common Relative Position Properties
-        RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
-        // this.properties.get("alignment-adjust");
-        // this.properties.get("treat-as-word-space");
-        // this.properties.get("alignment-baseline");
-        // this.properties.get("baseline-shift");
-        // this.properties.get("character");
-        // this.properties.get("color");
-        // this.properties.get("dominant-baseline");
-        // this.properties.get("text-depth");
-        // this.properties.get("text-altitude");
-        // this.properties.get("glyph-orientation-horizontal");
-        // this.properties.get("glyph-orientation-vertical");
-        // this.properties.get("id");
-        // this.properties.get("keep-with-next");
-        // this.properties.get("keep-with-previous");
-        // this.properties.get("letter-spacing");
-        // this.properties.get("line-height");
-        // this.properties.get("line-height-shift-adjustment");
-        // this.properties.get("score-spaces");
-        // this.properties.get("suppress-at-line-break");
-        // this.properties.get("text-decoration");
-        // this.properties.get("text-shadow");
-        // this.properties.get("text-transform");
-        // this.properties.get("word-spacing");
-
-        // color properties
-        ColorType c = this.properties.get("color").getColorType();
-        float red = c.red();
-        float green = c.green();
-        float blue = c.blue();
-
-        int whiteSpaceCollapse =
-            this.properties.get("white-space-collapse").getEnum();
-        int wrapOption = this.parent.properties.get("wrap-option").getEnum();
-
-        int tmp = this.properties.get("text-decoration").getEnum();
-        if (tmp == org.apache.fop.fo.properties.TextDecoration.UNDERLINE) {
-            textDecoration = true;
-        } else {
-            textDecoration = false;
-        }
-
-        // Character specific properties
-        char characterValue = this.properties.get("character").getCharacter();
-
-
-        // initialize id
-        String id = this.properties.get("id").getString();
-        blockArea.getIDReferences().initializeID(id, blockArea);
-
-        LineArea la = blockArea.getCurrentLineArea();
-        if (la == null) {
-            return new Status(Status.AREA_FULL_NONE);
-        }
-        la.changeFont(propMgr.getFontState(area.getFontInfo()));
-        la.changeColor(red, green, blue);
-        la.changeWrapOption(wrapOption);
-        la.changeWhiteSpaceCollapse(whiteSpaceCollapse);
-        blockArea.setupLinkSet(this.getLinkSet());
-        int result = la.addCharacter(characterValue, this.getLinkSet(),
-                                     textDecoration);
-        if (result == Character.DOESNOT_FIT) {
-            la = blockArea.createNextLineArea();
-            if (la == null) {
-                return new Status(Status.AREA_FULL_NONE);
-            }
-            la.changeFont(propMgr.getFontState(area.getFontInfo()));
-            la.changeColor(red, green, blue);
-            la.changeWrapOption(wrapOption);
-            la.changeWhiteSpaceCollapse(whiteSpaceCollapse);
-            blockArea.setupLinkSet(this.getLinkSet());
-            la.addCharacter(characterValue, this.getLinkSet(),
-                            textDecoration);
-        }
-        return new Status(Status.OK);
-
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/ExternalGraphic.java b/src/org/apache/fop/fo/flow/ExternalGraphic.java
deleted file mode 100644 (file)
index 4647ce8..0000000
+++ /dev/null
@@ -1,268 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.image.*;
-
-// Java
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.net.URL;
-import java.net.MalformedURLException;
-
-public class ExternalGraphic extends FObj {
-
-    int breakAfter;
-    int breakBefore;
-    int align;
-    int startIndent;
-    int endIndent;
-    int spaceBefore;
-    int spaceAfter;
-    String src;
-    int height;
-    int width;
-    String id;
-
-    ImageArea imageArea;
-
-
-    public ExternalGraphic(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:external-graphic";
-    }
-
-
-    public Status layout(Area area) throws FOPException {
-
-        if (this.marker == START) {
-
-            // Common Accessibility Properties
-            AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-            // Common Aural Properties
-            AuralProps mAurProps = propMgr.getAuralProps();
-
-            // Common Border, Padding, and Background Properties
-            BorderAndPadding bap = propMgr.getBorderAndPadding();
-            BackgroundProps bProps = propMgr.getBackgroundProps();
-
-            // Common Margin Properties-Inline
-            MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
-            // Common Relative Position Properties
-            RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
-            // this.properties.get("alignment-adjust");
-            // this.properties.get("alignment-baseline");
-            // this.properties.get("baseline-shift");
-            // this.properties.get("block-progression-dimension");
-            // this.properties.get("content-height");
-            // this.properties.get("content-type");
-            // this.properties.get("content-width");
-            // this.properties.get("display-align");
-            // this.properties.get("dominant-baseline");
-            // this.properties.get("height");
-            // this.properties.get("id");
-            // this.properties.get("inline-progression-dimension");
-            // this.properties.get("keep-with-next");
-            // this.properties.get("keep-with-previous");
-            // this.properties.get("line-height");
-            // this.properties.get("line-height-shift-adjustment");
-            // this.properties.get("overflow");
-            // this.properties.get("scaling");
-            // this.properties.get("scaling-method");
-            // this.properties.get("src");
-            // this.properties.get("text-align");
-            // this.properties.get("width");
-
-            // FIXME
-            this.align = this.properties.get("text-align").getEnum();
-
-            this.startIndent =
-                this.properties.get("start-indent").getLength().mvalue();
-            this.endIndent =
-                this.properties.get("end-indent").getLength().mvalue();
-
-            this.spaceBefore =
-                this.properties.get("space-before.optimum").getLength().mvalue();
-            this.spaceAfter =
-                this.properties.get("space-after.optimum").getLength().mvalue();
-
-            this.src = this.properties.get("src").getString();
-
-            this.width = this.properties.get("width").getLength().mvalue();
-
-            this.height = this.properties.get("height").getLength().mvalue();
-
-            this.id = this.properties.get("id").getString();
-
-            area.getIDReferences().createID(id);
-            /*
-             * if (area instanceof BlockArea) {
-             * area.end();
-             * }
-             * if (this.isInTableCell) {
-             * startIndent += forcedStartOffset;
-             * endIndent = area.getAllocationWidth() - forcedWidth -
-             * forcedStartOffset;
-             * }
-             */
-            this.marker = 0;
-        }
-
-        try {
-            FopImage img = FopImageFactory.Make(src);
-            // if width / height needs to be computed
-            if ((width == 0) || (height == 0)) {
-                // aspect ratio
-                double imgWidth = img.getWidth();
-                double imgHeight = img.getHeight();
-                if ((width == 0) && (height == 0)) {
-                    width = (int)((imgWidth * 1000d));
-                    height = (int)((imgHeight * 1000d));
-                } else if (height == 0) {
-                    height = (int)((imgHeight * ((double)width)) / imgWidth);
-                } else if (width == 0) {
-                    width = (int)((imgWidth * ((double)height)) / imgHeight);
-                }
-            }
-
-            // scale image if it doesn't fit in the area/page
-            // Need to be more tested...
-            double ratio = ((double)width) / ((double)height);
-            int areaWidth = area.getAllocationWidth() - startIndent
-                            - endIndent;
-            int pageHeight = area.getPage().getHeight();
-            if (height > pageHeight) {
-                height = pageHeight;
-                width = (int)(ratio * ((double)height));
-            }
-            if (width > areaWidth) {
-                width = areaWidth;
-                height = (int)(((double)width) / ratio);
-            }
-
-            if (area.spaceLeft() < (height + spaceBefore)) {
-                return new Status(Status.AREA_FULL_NONE);
-            }
-
-            this.imageArea =
-                new ImageArea(propMgr.getFontState(area.getFontInfo()), img,
-                              area.getAllocationWidth(), width, height,
-                              startIndent, endIndent, align);
-
-            if ((spaceBefore != 0) && (this.marker == 0)) {
-                area.addDisplaySpace(spaceBefore);
-            }
-
-            if (marker == 0) {
-                // configure id
-                area.getIDReferences().configureID(id, area);
-            }
-
-            imageArea.start();
-            imageArea.end();
-            // area.addChild(imageArea);
-            // area.increaseHeight(imageArea.getHeight());
-
-            if (spaceAfter != 0) {
-                area.addDisplaySpace(spaceAfter);
-            }
-            if (breakBefore == BreakBefore.PAGE
-                    || ((spaceBefore + imageArea.getHeight())
-                        > area.spaceLeft())) {
-                return new Status(Status.FORCE_PAGE_BREAK);
-            }
-
-            if (breakBefore == BreakBefore.ODD_PAGE) {
-                return new Status(Status.FORCE_PAGE_BREAK_ODD);
-            }
-
-            if (breakBefore == BreakBefore.EVEN_PAGE) {
-                return new Status(Status.FORCE_PAGE_BREAK_EVEN);
-            }
-
-
-            if (area instanceof BlockArea) {
-                BlockArea ba = (BlockArea)area;
-                LineArea la = ba.getCurrentLineArea();
-                if (la == null) {
-                    return new Status(Status.AREA_FULL_NONE);
-                }
-                la.addPending();
-                if (imageArea.getContentWidth() > la.getRemainingWidth()) {
-                    la = ba.createNextLineArea();
-                    if (la == null) {
-                        return new Status(Status.AREA_FULL_NONE);
-                    }
-                }
-                la.addInlineArea(imageArea);
-            } else {
-                area.addChild(imageArea);
-                area.increaseHeight(imageArea.getContentHeight());
-            }
-            imageArea.setPage(area.getPage());
-
-            if (breakAfter == BreakAfter.PAGE) {
-                this.marker = BREAK_AFTER;
-                return new Status(Status.FORCE_PAGE_BREAK);
-            }
-
-            if (breakAfter == BreakAfter.ODD_PAGE) {
-                this.marker = BREAK_AFTER;
-                return new Status(Status.FORCE_PAGE_BREAK_ODD);
-            }
-
-            if (breakAfter == BreakAfter.EVEN_PAGE) {
-                this.marker = BREAK_AFTER;
-                return new Status(Status.FORCE_PAGE_BREAK_EVEN);
-            }
-
-
-
-
-
-        } catch (MalformedURLException urlex) {
-            // bad URL
-            MessageHandler.errorln("Error while creating area : "
-                                   + urlex.getMessage());
-        } catch (FopImageException imgex) {
-            // image error
-            MessageHandler.errorln("Error while creating area : "
-                                   + imgex.getMessage());
-        }
-
-        // if (area instanceof BlockArea) {
-        // area.start();
-        // }
-
-        return new Status(Status.OK);
-    }
-
-
-    public static FObj.Maker maker() {
-        return new ExternalGraphic.Maker();
-    }
-
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new ExternalGraphic(parent, propertyList);
-        }
-
-    }
-}
-
diff --git a/src/org/apache/fop/fo/flow/Float.java b/src/org/apache/fop/fo/flow/Float.java
deleted file mode 100644 (file)
index c5eb151..0000000
+++ /dev/null
@@ -1,47 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.flow.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-
-/**
- */
-public class Float extends ToBeImplementedElement {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new Float(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new Float.Maker();
-    }
-
-    protected Float(FObj parent,
-                    PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:float";
-    }
-
-    public Status layout(Area area) throws FOPException {
-
-        // this.properties.get("float");
-        // this.properties.get("clear");
-
-        return super.layout(area);
-    }
-}
diff --git a/src/org/apache/fop/fo/flow/Flow.java b/src/org/apache/fop/fo/flow/Flow.java
deleted file mode 100644 (file)
index 9f90dca..0000000
+++ /dev/null
@@ -1,228 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.fo.pagination.*;
-import org.apache.fop.layout.Area;
-import org.apache.fop.layout.BodyAreaContainer;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.messaging.MessageHandler;
-
-// Java
-import java.util.Hashtable;
-import java.util.Enumeration;
-import java.util.Vector;
-
-public class Flow extends FObj {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new Flow(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new Flow.Maker();
-    }
-
-    /**
-     * PageSequence container
-     */
-    private PageSequence pageSequence;
-
-    /**
-     * Area in which we lay out our kids
-     */
-    private Area area;
-
-    /**
-     * Vector to store snapshot
-     */
-    private Vector markerSnapshot;
-
-    /**
-     * flow-name attribute
-     */
-    private String _flowName;
-
-    private Status _status = new Status(Status.AREA_FULL_NONE);
-
-
-    protected Flow(FObj parent,
-                   PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        this.name = getElementName();
-
-        if (parent.getName().equals("fo:page-sequence")) {
-            this.pageSequence = (PageSequence)parent;
-        } else {
-            throw new FOPException("flow must be child of "
-                                   + "page-sequence, not "
-                                   + parent.getName());
-        }
-        setFlowName(getProperty("flow-name").getString());
-
-        // according to communication from Paul Grosso (XSL-List,
-        // 001228, Number 406), confusion in spec section 6.4.5 about
-        // multiplicity of fo:flow in XSL 1.0 is cleared up - one (1)
-        // fo:flow per fo:page-sequence only.
-
-        if (pageSequence.isFlowSet()) {
-            if (this.name.equals("fo:flow")) {
-                throw new FOPException("Only a single fo:flow permitted"
-                                       + " per fo:page-sequence");
-            } else {
-                throw new FOPException(this.name
-                                       + " not allowed after fo:flow");
-            }
-        }
-        pageSequence.addFlow(this);
-    }
-
-    protected void setFlowName(String name) throws FOPException {
-        if (name == null || name.equals("")) {
-            MessageHandler.errorln("WARNING: A 'flow-name' is required for "
-                                   + getElementName()
-                                   + ". This constraint will be enforced in future versions of FOP");
-            _flowName = "xsl-region-body";
-        } else {
-            _flowName = name;
-        }
-
-    }
-
-    public String getFlowName() {
-        return _flowName;
-    }
-
-    public Status layout(Area area) throws FOPException {
-        return layout(area, null);
-
-    }
-
-    public Status layout(Area area, Region region) throws FOPException {
-        if (this.marker == START) {
-            this.marker = 0;
-        }
-
-        // flow is *always* laid out into a BodyAreaContainer
-        BodyAreaContainer bac = (BodyAreaContainer)area;
-
-        boolean prevChildMustKeepWithNext = false;
-        Vector pageMarker = this.getMarkerSnapshot(new Vector());
-
-        int numChildren = this.children.size();
-        if (numChildren == 0) {
-            throw new FOPException("fo:flow must contain block-level children");
-        }
-        for (int i = this.marker; i < numChildren; i++) {
-            FObj fo = (FObj)children.elementAt(i);
-
-            if (bac.isBalancingRequired(fo)) {
-                // reset the the just-done span area in preparation
-                // for a backtrack for balancing
-                bac.resetSpanArea();
-
-                this.rollback(markerSnapshot);
-                // one less because of the "continue"
-                i = this.marker - 1;
-                continue;
-            }
-            // current column area
-            Area currentArea = bac.getNextArea(fo);
-            // temporary hack for IDReferences
-            currentArea.setIDReferences(bac.getIDReferences());
-            if (bac.isNewSpanArea()) {
-                this.marker = i;
-                markerSnapshot = this.getMarkerSnapshot(new Vector());
-            }
-
-            _status = fo.layout(currentArea);
-
-            /*
-             * if((_status.isPageBreak() || i == numChildren - 1) && bac.needsFootnoteAdjusting()) {
-             * bac.adjustFootnoteArea();
-             * this.rollback(pageMarker);
-             * i = this.marker - 1;
-             * Area mainReferenceArea = bac.getMainReferenceArea();
-             * // remove areas
-             * continue;
-             * }
-             */
-            if (_status.isIncomplete()) {
-                if ((prevChildMustKeepWithNext) && (_status.laidOutNone())) {
-                    this.marker = i - 1;
-                    FObj prevChild = (FObj)children.elementAt(this.marker);
-                    prevChild.removeAreas();
-                    prevChild.resetMarker();
-                    prevChild.removeID(area.getIDReferences());
-                    _status = new Status(Status.AREA_FULL_SOME);
-                    return _status;
-                    // should probably return AREA_FULL_NONE if first
-                    // or perhaps an entirely new status code
-                }
-                if (bac.isLastColumn())
-                    if (_status.getCode() == Status.FORCE_COLUMN_BREAK) {
-                        this.marker = i;
-                        _status =
-                            new Status(Status.FORCE_PAGE_BREAK);    // same thing
-                        return _status;
-                    } else {
-                        this.marker = i;
-                        return _status;
-                    }
-                else {
-                    // not the last column, but could be page breaks
-                    if (_status.isPageBreak()) {
-                        this.marker = i;
-                        return _status;
-                    }
-                    // I don't much like exposing this. (AHS 001217)
-                    ((org.apache.fop.layout.ColumnArea)currentArea).incrementSpanIndex();
-                    i--;
-                }
-            }
-            if (_status.getCode() == Status.KEEP_WITH_NEXT) {
-                prevChildMustKeepWithNext = true;
-            } else {
-                prevChildMustKeepWithNext = false;
-            }
-        }
-        return _status;
-    }
-
-    /**
-     * Return the content width of this flow (really of the region
-     * in which it is flowing).
-     */
-    public int getContentWidth() {
-        if (area != null)
-            return area.getContentWidth();    // getAllocationWidth()??
-        else
-            return 0;                         // not laid out yet
-    }
-
-    protected String getElementName() {
-        return "fo:flow";
-    }
-
-    public Status getStatus() {
-        return _status;
-    }
-
-
-    public boolean generatesReferenceAreas() {
-        return true;
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/Footnote.java b/src/org/apache/fop/fo/flow/Footnote.java
deleted file mode 100644 (file)
index 3f72d49..0000000
+++ /dev/null
@@ -1,123 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.messaging.*;
-
-// Java
-import java.util.Enumeration;
-import java.util.Vector;
-
-public class Footnote extends FObj {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new Footnote(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new Footnote.Maker();
-    }
-
-    public Footnote(FObj parent,
-                    PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:footnote";
-    }
-
-    public Status layout(Area area) throws FOPException {
-        FONode inline = null;
-        FONode fbody = null;
-        if (this.marker == START) {
-            this.marker = 0;
-        }
-        int numChildren = this.children.size();
-        for (int i = this.marker; i < numChildren; i++) {
-            FONode fo = (FONode)children.elementAt(i);
-            if (fo instanceof Inline) {
-                inline = fo;
-                Status status = fo.layout(area);
-                if (status.isIncomplete()) {
-                    return status;
-                }
-            } else if (inline != null && fo instanceof FootnoteBody) {
-                // add footnote to current page or next if it can't fit
-                fbody = fo;
-                if (area instanceof BlockArea) {
-                    ((BlockArea)area).addFootnote((FootnoteBody)fbody);
-                } else {
-                    Page page = area.getPage();
-                    layoutFootnote(page, (FootnoteBody)fbody, area);
-                }
-            }
-        }
-        if (fbody == null) {
-            MessageHandler.errorln("WARNING: no footnote-body in footnote");
-        }
-        if (area instanceof BlockArea) {}
-        return new Status(Status.OK);
-    }
-
-    public static boolean layoutFootnote(Page p, FootnoteBody fb, Area area) {
-        try {
-            BodyAreaContainer bac = p.getBody();
-            AreaContainer footArea = bac.getFootnoteReferenceArea();
-            footArea.setIDReferences(bac.getIDReferences());
-            int basePos = footArea.getCurrentYPosition()
-                          - footArea.getHeight();
-            int oldHeight = footArea.getHeight();
-            if (area != null) {
-                footArea.setMaxHeight(area.getMaxHeight() - area.getHeight()
-                                      + footArea.getHeight());
-            } else {
-                footArea.setMaxHeight(bac.getMaxHeight()
-                                      + footArea.getHeight());
-            }
-            Status status = fb.layout(footArea);
-            if (status.isIncomplete()) {
-                // add as a pending footnote
-                return false;
-            } else {
-                if (area != null) {
-                    area.setMaxHeight(area.getMaxHeight()
-                                      - footArea.getHeight() + oldHeight);
-                }
-                // bac.setMaxHeight(bac.getMaxHeight() - footArea.getHeight() + oldHeight);
-                if (bac.getFootnoteState() == 0) {
-                    Area ar = bac.getMainReferenceArea();
-                    decreaseMaxHeight(ar, footArea.getHeight() - oldHeight);
-                    footArea.setYPosition(basePos + footArea.getHeight());
-                }
-            }
-        } catch (FOPException fope) {
-            return false;
-        }
-        return true;
-    }
-
-    protected static void decreaseMaxHeight(Area ar, int change) {
-        ar.setMaxHeight(ar.getMaxHeight() - change);
-        Vector childs = ar.getChildren();
-        for (Enumeration en = childs.elements(); en.hasMoreElements(); ) {
-            Object obj = en.nextElement();
-            if (obj instanceof Area) {
-                Area childArea = (Area)obj;
-                decreaseMaxHeight(childArea, change);
-            }
-        }
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/FootnoteBody.java b/src/org/apache/fop/fo/flow/FootnoteBody.java
deleted file mode 100644 (file)
index 029ea5b..0000000
+++ /dev/null
@@ -1,84 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.layout.Area;
-import org.apache.fop.layout.AreaClass;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-
-// Java
-import java.util.Enumeration;
-
-public class FootnoteBody extends FObj {
-
-    int align;
-    int alignLast;
-    int lineHeight;
-    int startIndent;
-    int endIndent;
-    int textIndent;
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new FootnoteBody(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new FootnoteBody.Maker();
-    }
-
-    public FootnoteBody(FObj parent,
-                        PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:footnote-body";
-        this.areaClass = AreaClass.setAreaClass(AreaClass.XSL_FOOTNOTE);
-    }
-
-    public Status layout(Area area) throws FOPException {
-        if (this.marker == START) {
-            this.marker = 0;
-        }
-        BlockArea blockArea =
-            new BlockArea(propMgr.getFontState(area.getFontInfo()),
-                          area.getAllocationWidth(), area.spaceLeft(),
-                          startIndent, endIndent, textIndent, align,
-                          alignLast, lineHeight);
-        blockArea.setGeneratedBy(this);
-        blockArea.isFirst(true);
-        blockArea.setPage(area.getPage());
-        blockArea.start();
-
-        blockArea.setAbsoluteHeight(area.getAbsoluteHeight());
-        blockArea.setIDReferences(area.getIDReferences());
-
-        blockArea.setTableCellXOffset(area.getTableCellXOffset());
-
-        int numChildren = this.children.size();
-        for (int i = this.marker; i < numChildren; i++) {
-            FONode fo = (FONode)children.elementAt(i);
-            Status status;
-            if ((status = fo.layout(blockArea)).isIncomplete()) {
-                this.resetMarker();
-                return status;
-            }
-        }
-        blockArea.end();
-        area.addChild(blockArea);
-        area.increaseHeight(blockArea.getHeight());
-        blockArea.isLast(true);
-        return new Status(Status.OK);
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/InitialPropertySet.java b/src/org/apache/fop/fo/flow/InitialPropertySet.java
deleted file mode 100644 (file)
index 7406146..0000000
+++ /dev/null
@@ -1,72 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.flow.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.AreaTree;
-import org.apache.fop.apps.FOPException;
-
-/**
- */
-public class InitialPropertySet extends ToBeImplementedElement {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new InitialPropertySet(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new InitialPropertySet.Maker();
-    }
-
-    protected InitialPropertySet(FObj parent, PropertyList propertyList)
-            throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:initial-property-set";
-    }
-
-    public Status layout(Area area) throws FOPException {
-
-        // Common Accessibility Properties
-        AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-        // Common Aural Properties
-        AuralProps mAurProps = propMgr.getAuralProps();
-
-        // Common Border, Padding, and Background Properties
-        BorderAndPadding bap = propMgr.getBorderAndPadding();
-        BackgroundProps bProps = propMgr.getBackgroundProps();
-
-        // Common Font Properties
-        //this.fontState = propMgr.getFontState(area.getFontInfo());
-
-        // Common Relative Position Properties
-        RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
-        // this.properties.get("color");
-        // this.properties.get("id");
-        // this.properties.get("letter-spacing");
-        // this.properties.get("line-height");
-        // this.properties.get("line-height-shift-adjustment");
-        // this.properties.get("score-spaces");
-        // this.properties.get("text-decoration");
-        // this.properties.get("text-shadow");
-        // this.properties.get("text-transform");
-        // this.properties.get("word-spacing");
-
-        return super.layout(area);
-    }
-}
diff --git a/src/org/apache/fop/fo/flow/Inline.java b/src/org/apache/fop/fo/flow/Inline.java
deleted file mode 100644 (file)
index 100bb49..0000000
+++ /dev/null
@@ -1,107 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.fo.properties.*;
-
-// Java
-import java.util.Enumeration;
-
-public class Inline extends FObjMixed {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new Inline(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new Inline.Maker();
-    }
-
-    // Textdecoration
-    protected boolean underlined = false;
-    protected boolean overlined = false;
-    protected boolean lineThrough = false;
-
-
-    public Inline(FObj parent,
-                  PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:inline";
-
-        // Common Accessibility Properties
-        AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-                    
-        // Common Aural Properties   
-        AuralProps mAurProps = propMgr.getAuralProps();
-
-        // Common Border, Padding, and Background Properties
-        BorderAndPadding bap = propMgr.getBorderAndPadding();
-        BackgroundProps bProps = propMgr.getBackgroundProps();
-     
-        // Common Font Properties
-        //this.fontState = propMgr.getFontState(area.getFontInfo());
-
-        // Common Margin Properties-Inline
-        MarginInlineProps mProps = propMgr.getMarginInlineProps();
-            
-        // Common Relative Position Properties
-        RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-            
-        // this.properties.get("alignment-adjust");
-        // this.properties.get("alignment-baseline");
-        // this.properties.get("baseline-shift");
-        // this.properties.get("color");
-        // this.properties.get("dominant-baseline");
-        // this.properties.get("id");
-        // this.properties.get("keep-together");
-        // this.properties.get("keep-with-next");
-        // this.properties.get("keep-with-previous");
-        // this.properties.get("line-height");
-        // this.properties.get("line-height-shift-adjustment");
-        // this.properties.get("text-devoration");
-        // this.properties.get("visibility");
-        // this.properties.get("z-index");
-
-        int textDecoration = this.properties.get("text-decoration").getEnum();
-
-        if (textDecoration == TextDecoration.UNDERLINE) {
-            this.underlined = true;
-        }
-
-        if (textDecoration == TextDecoration.OVERLINE) {
-            this.overlined = true;
-        }
-
-        if (textDecoration == TextDecoration.LINE_THROUGH) {
-            this.lineThrough = true;
-        }
-
-        if (parent.getName().equals("fo:flow")) {
-            throw new FOPException("fo:inline can't be directly"
-                                   + " under flow");
-        }
-
-    }
-
-    protected void addCharacters(char data[], int start, int length) {
-        FOText ft = new FOText(data, start, length, this);
-        ft.setUnderlined(underlined);
-        ft.setOverlined(overlined);
-        ft.setLineThrough(lineThrough);
-        children.addElement(ft);
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/InlineContainer.java b/src/org/apache/fop/fo/flow/InlineContainer.java
deleted file mode 100644 (file)
index 5332a2d..0000000
+++ /dev/null
@@ -1,70 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.flow.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-
-/**
- */
-public class InlineContainer extends ToBeImplementedElement {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new InlineContainer(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new InlineContainer.Maker();
-    }
-
-    protected InlineContainer(FObj parent,
-                              PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:inline-container";
-
-        // Common Border, Padding, and Background Properties
-        BorderAndPadding bap = propMgr.getBorderAndPadding();
-        BackgroundProps bProps = propMgr.getBackgroundProps();
-
-        // Common Margin Properties-Inline
-        MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
-        // Common Relative Position Properties
-        RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
-        // this.properties.get("alignment-adjust");
-        // this.properties.get("alignment-baseline");
-        // this.properties.get("baseline-shift");
-        // this.properties.get("block-progression-dimension");
-        // this.properties.get("clip");
-        // this.properties.get("display-align");
-        // this.properties.get("dominant-baseline");
-        // this.properties.get("height");
-        // this.properties.get("id");
-        // this.properties.get("inline-progression-dimension");
-        // this.properties.get("keep-together");
-        // this.properties.get("keep-with-next");
-        // this.properties.get("keep-with-previous");
-        // this.properties.get("line-height");
-        // this.properties.get("line-height-shift-adjustment");
-        // this.properties.get("overflow");
-        // this.properties.get("reference-orientation");
-        // this.properties.get("width");
-        // this.properties.get("writing-mode");
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/InstreamForeignObject.java b/src/org/apache/fop/fo/flow/InstreamForeignObject.java
deleted file mode 100644 (file)
index 27f9dc1..0000000
+++ /dev/null
@@ -1,299 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.layout.inline.*;
-import org.apache.fop.layout.BlockArea;
-import org.apache.fop.layout.FontState;
-import org.apache.fop.apps.FOPException;
-
-// Java
-import java.util.Enumeration;
-
-public class InstreamForeignObject extends FObj {
-
-    /**
-     * inner class for making SVG objects.
-     */
-    public static class Maker extends FObj.Maker {
-
-        /**
-         * make an SVG object.
-         *
-         * @param parent the parent formatting object
-         * @param propertyList the explicit properties of this object
-         *
-         * @return the SVG object
-         */
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new InstreamForeignObject(parent, propertyList);
-        }
-
-    }
-
-    /**
-     * returns the maker for this object.
-     *
-     * @return the maker for SVG objects
-     */
-    public static FObj.Maker maker() {
-        return new InstreamForeignObject.Maker();
-    }
-
-    int breakBefore;
-    int breakAfter;
-    int scaling;
-    int width;
-    int height;
-    int contwidth;
-    int contheight;
-    boolean wauto;
-    boolean hauto;
-    boolean cwauto;
-    boolean chauto;
-    int spaceBefore;
-    int spaceAfter;
-    int startIndent;
-    int endIndent;
-
-    ForeignObjectArea areaCurrent;
-
-    /**
-     * constructs an instream-foreign-object object (called by Maker).
-     *
-     * @param parent the parent formatting object
-     * @param propertyList the explicit properties of this object
-     */
-    public InstreamForeignObject(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:instream-foreign-object";
-    }
-
-    /**
-     * layout this formatting object.
-     *
-     * @param area the area to layout the object into
-     *
-     * @return the status of the layout
-     */
-    public Status layout(Area area) throws FOPException {
-
-        if (this.marker == BREAK_AFTER) {
-            return new Status(Status.OK);
-        }
-
-        if (this.marker == START) {
-
-            // Common Accessibility Properties
-            AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-        
-            // Common Aural Properties
-            AuralProps mAurProps = propMgr.getAuralProps();
-
-            // Common Border, Padding, and Background Properties
-            BorderAndPadding bap = propMgr.getBorderAndPadding();
-            BackgroundProps bProps = propMgr.getBackgroundProps();
-
-            // Common Margin Properties-Inline
-            MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
-            // Common Relative Position Properties
-            RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
-            // this.properties.get("alignment-adjust");
-            // this.properties.get("alignment-baseline");
-            // this.properties.get("baseline-shift");
-            // this.properties.get("block-progression-dimension");
-            // this.properties.get("content-height");
-            // this.properties.get("content-type");
-            // this.properties.get("content-width");
-            // this.properties.get("display-align");
-            // this.properties.get("dominant-baseline");
-            // this.properties.get("height");  
-            // this.properties.get("id");
-            // this.properties.get("inline-progression-dimension");
-            // this.properties.get("keep-with-next");
-            // this.properties.get("keep-with-previous");
-            // this.properties.get("line-height");
-            // this.properties.get("line-height-shift-adjustment");
-            // this.properties.get("overflow");
-            // this.properties.get("scaling");
-            // this.properties.get("scaling-method");
-            // this.properties.get("text-align");
-            // this.properties.get("width");
-
-            /* retrieve properties */
-            String id = this.properties.get("id").getString();
-            int align = this.properties.get("text-align").getEnum();
-            int valign = this.properties.get("vertical-align").getEnum();
-            int overflow = this.properties.get("overflow").getEnum();
-
-            this.breakBefore = this.properties.get("break-before").getEnum();
-            this.breakAfter = this.properties.get("break-after").getEnum();
-            this.width = this.properties.get("width").getLength().mvalue();
-            this.height = this.properties.get("height").getLength().mvalue();
-            this.contwidth =
-                this.properties.get("content-width").getLength().mvalue();
-            this.contheight =
-                this.properties.get("content-height").getLength().mvalue();
-            this.wauto = this.properties.get("width").getLength().isAuto();
-            this.hauto = this.properties.get("height").getLength().isAuto();
-            this.cwauto =
-                this.properties.get("content-width").getLength().isAuto();
-            this.chauto =
-                this.properties.get("content-height").getLength().isAuto();
-
-            this.startIndent =
-                this.properties.get("start-indent").getLength().mvalue();
-            this.endIndent =
-                this.properties.get("end-indent").getLength().mvalue();
-            this.spaceBefore =
-                this.properties.get("space-before.optimum").getLength().mvalue();
-            this.spaceAfter =
-                this.properties.get("space-after.optimum").getLength().mvalue();
-
-            this.scaling = this.properties.get("scaling").getEnum();
-
-            area.getIDReferences().createID(id);
-            if (this.areaCurrent == null) {
-                this.areaCurrent =
-                    new ForeignObjectArea(propMgr.getFontState(area.getFontInfo()),
-                                          area.getAllocationWidth());
-
-                this.areaCurrent.start();
-                areaCurrent.setWidth(this.width);
-                areaCurrent.setHeight(this.height);
-                areaCurrent.setContentWidth(this.contwidth);
-                areaCurrent.setContentHeight(this.contheight);
-                areaCurrent.setScaling(this.scaling);
-                areaCurrent.setAlign(align);
-                areaCurrent.setVerticalAlign(valign);
-                areaCurrent.setOverflow(overflow);
-                areaCurrent.setSizeAuto(wauto, hauto);
-                areaCurrent.setContentSizeAuto(cwauto, chauto);
-
-                // this means that children can get the fontstate
-                areaCurrent.setPage(area.getPage());
-
-                int numChildren = this.children.size();
-                if (numChildren > 1) {
-                    throw new FOPException("Only one child element is allowed in an instream-foreign-object");
-                }
-                /* layout foreign object */
-                if (this.children.size() > 0) {
-                    FONode fo = (FONode)children.elementAt(0);
-                    Status status;
-                    // currently FONode must be an SVG
-                    if ((status =
-                            fo.layout(this.areaCurrent)).isIncomplete()) {
-                        return status;
-                    }
-
-                    /* finish off the foreign object area */
-                    this.areaCurrent.end();
-                }
-            }
-
-            this.marker = 0;
-
-            if (breakBefore == BreakBefore.PAGE
-                    || ((spaceBefore + areaCurrent.getEffectiveHeight())
-                        > area.spaceLeft())) {
-                return new Status(Status.FORCE_PAGE_BREAK);
-            }
-
-            if (breakBefore == BreakBefore.ODD_PAGE) {
-                return new Status(Status.FORCE_PAGE_BREAK_ODD);
-            }
-
-            if (breakBefore == BreakBefore.EVEN_PAGE) {
-                return new Status(Status.FORCE_PAGE_BREAK_EVEN);
-            }
-        }
-
-        if (this.areaCurrent == null) {
-            return new Status(Status.OK);
-        }
-
-        if (area instanceof BlockArea) {
-            BlockArea ba = (BlockArea)area;
-            LineArea la = ba.getCurrentLineArea();
-            if (la == null) {
-                return new Status(Status.AREA_FULL_NONE);
-            }
-            la.addPending();
-            if (areaCurrent.getEffectiveWidth() > la.getRemainingWidth()) {
-                la = ba.createNextLineArea();
-                if (la == null) {
-                    return new Status(Status.AREA_FULL_NONE);
-                }
-            }
-            la.addInlineArea(areaCurrent);
-        } else {
-            area.addChild(areaCurrent);
-            area.increaseHeight(areaCurrent.getEffectiveHeight());
-        }
-
-        if (this.isInTableCell) {
-            startIndent += forcedStartOffset;
-            /*
-             * endIndent = areaCurrent.getEffectiveWidth() - forcedWidth -
-             * forcedStartOffset;
-             */
-        }
-
-        areaCurrent.setStartIndent(startIndent);
-        // areaCurrent.setEndIndent(endIndent);
-
-        /* if there is a space-before */
-        if (spaceBefore != 0) {
-            /* add a display space */
-            // area.addDisplaySpace(spaceBefore);
-        }
-
-        /* add the SVG area to the containing area */
-        // area.addChild(areaCurrent);
-
-        areaCurrent.setPage(area.getPage());
-
-        /* increase the height of the containing area accordingly */
-        // area.increaseHeight(areaCurrent.getEffectiveHeight());
-
-        /* if there is a space-after */
-        if (spaceAfter != 0) {
-            /* add a display space */
-            // area.addDisplaySpace(spaceAfter);
-        }
-
-
-        if (breakAfter == BreakAfter.PAGE) {
-            this.marker = BREAK_AFTER;
-            return new Status(Status.FORCE_PAGE_BREAK);
-        }
-
-        if (breakAfter == BreakAfter.ODD_PAGE) {
-            this.marker = BREAK_AFTER;
-            return new Status(Status.FORCE_PAGE_BREAK_ODD);
-        }
-
-        if (breakAfter == BreakAfter.EVEN_PAGE) {
-            this.marker = BREAK_AFTER;
-            return new Status(Status.FORCE_PAGE_BREAK_EVEN);
-        }
-
-        areaCurrent = null;
-        /* return status */
-        return new Status(Status.OK);
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/Leader.java b/src/org/apache/fop/fo/flow/Leader.java
deleted file mode 100644 (file)
index 97d1e00..0000000
+++ /dev/null
@@ -1,212 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.datatypes.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.layout.BlockArea;
-import org.apache.fop.layout.inline.LeaderArea;
-import org.apache.fop.layout.LineArea;
-import org.apache.fop.layout.FontState;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.messaging.MessageHandler;
-
-/**
- * Implements fo:leader; main property of leader leader-pattern.
- * The following patterns are treated: rule, space, dots.
- * The pattern use-content is ignored, i.e. it still must be implemented.
- */
-
-public class Leader extends FObjMixed {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new Leader(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new Leader.Maker();
-    }
-
-    public Leader(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:leader";
-    }
-
-    public Status layout(Area area) throws FOPException {
-        BlockArea blockArea;
-        // restriction in this version
-        if (!(area instanceof BlockArea)) {
-            MessageHandler.errorln("WARNING: in this version of Fop fo:leader must be a direct child of fo:block ");
-            return new Status(Status.OK);
-        } else {
-            blockArea = (BlockArea)area;
-        }
-
-        // Common Accessibility Properties
-        AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-        // Common Aural Properties
-        AuralProps mAurProps = propMgr.getAuralProps();
-
-        // Common Border, Padding, and Background Properties
-        BorderAndPadding bap = propMgr.getBorderAndPadding();
-        BackgroundProps bProps = propMgr.getBackgroundProps();
-
-        // Common Font Properties
-        //this.fontState = propMgr.getFontState(area.getFontInfo());
-
-        // Common Margin Properties-Inline
-        MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
-        // Common Relative Position Properties
-        RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
-        // this.properties.get("alignment-adjust");
-        // this.properties.get("alignment-baseline");
-        // this.properties.get("baseline-shift");
-        // this.properties.get("color");
-        // this.properties.get("dominant-baseline");
-        // this.properties.get("text-depth");
-        // this.properties.get("text-altitude");
-        // this.properties.get("id");
-        // this.properties.get("leader-alignment");
-        // this.properties.get("leader-length");
-        // this.properties.get("leader-pattern");
-        // this.properties.get("leader-pattern-width");
-        // this.properties.get("rule-style");
-        // this.properties.get("rule-thickness");
-        // this.properties.get("letter-spacing");
-        // this.properties.get("line-height");
-        // this.properties.get("line-height-shift-adjustment");
-        // this.properties.get("text-shadow");
-        // this.properties.get("visibility");
-        // this.properties.get("word-spacing");
-        // this.properties.get("z-index");
-
-        // color properties
-        ColorType c = this.properties.get("color").getColorType();
-        float red = c.red();
-        float green = c.green();
-        float blue = c.blue();
-
-        // fo:leader specific properties
-        // determines the pattern of leader; allowed values: space, rule,dots, use-content
-        int leaderPattern = this.properties.get("leader-pattern").getEnum();
-        // length of the leader
-        int leaderLengthOptimum =
-            this.properties.get("leader-length.optimum").getLength().mvalue();
-        int leaderLengthMinimum =
-            this.properties.get("leader-length.minimum").getLength().mvalue();
-        int leaderLengthMaximum =
-            this.properties.get("leader-length.maximum").getLength().mvalue();
-        // the following properties only apply for leader-pattern = "rule"
-        int ruleThickness =
-            this.properties.get("rule-thickness").getLength().mvalue();
-        int ruleStyle = this.properties.get("rule-style").getEnum();
-        // if leaderPatternWidth = 0 = default = use-font-metric
-        int leaderPatternWidth =
-            this.properties.get("leader-pattern-width").getLength().mvalue();
-        int leaderAlignment =
-            this.properties.get("leader-alignment").getEnum();
-
-        // initialize id
-        String id = this.properties.get("id").getString();
-        blockArea.getIDReferences().initializeID(id, blockArea);
-
-        // adds leader to blockarea, there the leaderArea is generated
-        int succeeded = addLeader(blockArea,
-                                  propMgr.getFontState(area.getFontInfo()),
-                                  red, green, blue, leaderPattern,
-                                  leaderLengthMinimum, leaderLengthOptimum,
-                                  leaderLengthMaximum, ruleThickness,
-                                  ruleStyle, leaderPatternWidth,
-                                  leaderAlignment);
-        if (succeeded == 1) {
-            return new Status(Status.OK);
-        } else {
-            // not sure that this is the correct Status here
-            return new Status(Status.AREA_FULL_SOME);
-        }
-    }
-
-    /*
-     * //should only be necessary for use-content
-     * protected void addCharacters(char data[], int start, int length) {
-     * FOText textNode = new FOText(data,start,length, this);
-     * children.addElement(textNode);
-     * }
-     */
-
-
-    /**
-     * adds a leader to current line area of containing block area
-     * the actual leader area is created in the line area
-     *
-     * @return int +1 for success and -1 for none
-     */
-    public int addLeader(BlockArea ba, FontState fontState, float red,
-                         float green, float blue, int leaderPattern,
-                         int leaderLengthMinimum, int leaderLengthOptimum,
-                         int leaderLengthMaximum, int ruleThickness,
-                         int ruleStyle, int leaderPatternWidth,
-                         int leaderAlignment) {
-
-        LineArea la = ba.getCurrentLineArea();
-        // this should start a new page
-        if (la == null) {
-            return -1;
-        }
-
-        la.changeFont(fontState);
-        la.changeColor(red, green, blue);
-
-        // check whether leader fits into the (rest of the) line
-        // using length.optimum to determine where to break the line as defined
-        // in the xsl:fo spec: "User agents may choose to use the value of 'leader-length.optimum'
-        // to determine where to break the line" (7.20.4)
-        // if leader is longer then create a new LineArea and put leader there
-        if (leaderLengthOptimum <= (la.getRemainingWidth())) {
-            la.addLeader(leaderPattern, leaderLengthMinimum,
-                         leaderLengthOptimum, leaderLengthMaximum, ruleStyle,
-                         ruleThickness, leaderPatternWidth, leaderAlignment);
-        } else {
-            la = ba.createNextLineArea();
-            if (la == null) {
-                // not enough room
-                return -1;
-            }
-            la.changeFont(fontState);
-            la.changeColor(red, green, blue);
-
-            // check whether leader fits into LineArea at all, otherwise
-            // clip it (should honor the clip option of containing area)
-            if (leaderLengthMinimum <= la.getContentWidth()) {
-                la.addLeader(leaderPattern, leaderLengthMinimum,
-                             leaderLengthOptimum, leaderLengthMaximum,
-                             ruleStyle, ruleThickness, leaderPatternWidth,
-                             leaderAlignment);
-            } else {
-                MessageHandler.errorln("Leader doesn't fit into line, it will be clipped to fit.");
-                la.addLeader(leaderPattern, la.getRemainingWidth(),
-                             leaderLengthOptimum, leaderLengthMaximum,
-                             ruleStyle, ruleThickness, leaderPatternWidth,
-                             leaderAlignment);
-            }
-        }
-        // this.hasLines = true;
-        return 1;
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/ListBlock.java b/src/org/apache/fop/fo/flow/ListBlock.java
deleted file mode 100644 (file)
index 3b93659..0000000
+++ /dev/null
@@ -1,181 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.datatypes.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.layout.BlockArea;
-import org.apache.fop.layout.FontState;
-import org.apache.fop.apps.FOPException;
-
-// Java
-import java.util.Enumeration;
-
-public class ListBlock extends FObj {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new ListBlock(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new ListBlock.Maker();
-    }
-
-    int align;
-    int alignLast;
-    int breakBefore;
-    int breakAfter;
-    int lineHeight;
-    int startIndent;
-    int endIndent;
-    int spaceBefore;
-    int spaceAfter;
-    int spaceBetweenListRows = 0;
-    ColorType backgroundColor;
-
-    public ListBlock(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:list-block";
-    }
-
-    public Status layout(Area area) throws FOPException {
-        if (this.marker == START) {
-
-            // Common Accessibility Properties
-            AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-        
-            // Common Aural Properties
-            AuralProps mAurProps = propMgr.getAuralProps();
-
-            // Common Border, Padding, and Background Properties
-            BorderAndPadding bap = propMgr.getBorderAndPadding();
-            BackgroundProps bProps = propMgr.getBackgroundProps();
-
-            // Common Margin Properties-Block
-            MarginProps mProps = propMgr.getMarginProps();
-
-            // Common Relative Position Properties
-            RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
-            // this.properties.get("break-after");
-            // this.properties.get("break-before");
-            // this.properties.get("id");
-            // this.properties.get("keep-together");
-            // this.properties.get("keep-with-next");
-            // this.properties.get("keep-with-previous");
-            // this.properties.get("provisional-distance-between-starts");
-            // this.properties.get("provisional-label-separation");
-
-            this.align = this.properties.get("text-align").getEnum();
-            this.alignLast = this.properties.get("text-align-last").getEnum();
-            this.lineHeight =
-                this.properties.get("line-height").getLength().mvalue();
-            this.startIndent =
-                this.properties.get("start-indent").getLength().mvalue();
-            this.endIndent =
-                this.properties.get("end-indent").getLength().mvalue();
-            this.spaceBefore =
-                this.properties.get("space-before.optimum").getLength().mvalue();
-            this.spaceAfter =
-                this.properties.get("space-after.optimum").getLength().mvalue();
-            this.spaceBetweenListRows = 0;    // not used at present
-            this.backgroundColor =
-                this.properties.get("background-color").getColorType();
-
-            this.marker = 0;
-
-            if (area instanceof BlockArea) {
-                area.end();
-            }
-
-            if (spaceBefore != 0) {
-                area.addDisplaySpace(spaceBefore);
-            }
-
-            if (this.isInTableCell) {
-                startIndent += forcedStartOffset;
-                endIndent += area.getAllocationWidth() - forcedWidth
-                             - forcedStartOffset;
-            }
-
-            // initialize id
-            String id = this.properties.get("id").getString();
-            area.getIDReferences().initializeID(id, area);
-        }
-
-        BlockArea blockArea =
-            new BlockArea(propMgr.getFontState(area.getFontInfo()),
-                          area.getAllocationWidth(), area.spaceLeft(),
-                          startIndent, endIndent, 0, align, alignLast,
-                          lineHeight);
-        blockArea.setGeneratedBy(this);
-        this.areasGenerated++;
-        if (this.areasGenerated == 1)
-            blockArea.isFirst(true);
-            // for normal areas this should be the only pair
-        blockArea.addLineagePair(this, this.areasGenerated);
-
-        // markers
-        if (this.hasMarkers())
-            blockArea.addMarkers(this.getMarkers());
-
-
-        blockArea.setPage(area.getPage());
-        blockArea.setBackgroundColor(backgroundColor);
-        blockArea.start();
-
-        blockArea.setAbsoluteHeight(area.getAbsoluteHeight());
-        blockArea.setIDReferences(area.getIDReferences());
-
-        int numChildren = this.children.size();
-        for (int i = this.marker; i < numChildren; i++) {
-            if (!(children.elementAt(i) instanceof ListItem)) {
-                MessageHandler.errorln("children of list-blocks must be list-items");
-                return new Status(Status.OK);
-            }
-            ListItem listItem = (ListItem)children.elementAt(i);
-            Status status;
-            if ((status = listItem.layout(blockArea)).isIncomplete()) {
-                if (status.getCode() == Status.AREA_FULL_NONE && i > 0) {
-                    status = new Status(Status.AREA_FULL_SOME);
-                }
-                this.marker = i;
-                blockArea.end();
-                area.addChild(blockArea);
-                area.increaseHeight(blockArea.getHeight());
-                area.setAbsoluteHeight(blockArea.getAbsoluteHeight());
-                return status;
-            }
-        }
-
-        blockArea.end();
-        area.addChild(blockArea);
-        area.increaseHeight(blockArea.getHeight());
-        area.setAbsoluteHeight(blockArea.getAbsoluteHeight());
-
-        if (spaceAfter != 0) {
-            area.addDisplaySpace(spaceAfter);
-        }
-
-        if (area instanceof BlockArea) {
-            area.start();
-        }
-
-        blockArea.isLast(true);
-        return new Status(Status.OK);
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/ListItem.java b/src/org/apache/fop/fo/flow/ListItem.java
deleted file mode 100644 (file)
index 683a2b0..0000000
+++ /dev/null
@@ -1,183 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.layout.BlockArea;
-import org.apache.fop.layout.FontState;
-import org.apache.fop.apps.FOPException;
-
-// Java
-import java.util.Enumeration;
-
-public class ListItem extends FObj {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new ListItem(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new ListItem.Maker();
-    }
-
-    int align;
-    int alignLast;
-    int breakBefore;
-    int breakAfter;
-    int lineHeight;
-    int startIndent;
-    int endIndent;
-    int spaceBefore;
-    int spaceAfter;
-    String id;
-    BlockArea blockArea;
-
-    public ListItem(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:list-item";
-    }
-
-    public Status layout(Area area) throws FOPException {
-        if (this.marker == START) {
-
-            // Common Accessibility Properties
-            AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-            // Common Aural Properties
-            AuralProps mAurProps = propMgr.getAuralProps();
-
-            // Common Border, Padding, and Background Properties
-            BorderAndPadding bap = propMgr.getBorderAndPadding();
-            BackgroundProps bProps = propMgr.getBackgroundProps();
-
-            // Common Margin Properties-Block
-            MarginProps mProps = propMgr.getMarginProps();
-
-            // Common Relative Position Properties
-            RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
-            // this.properties.get("break-after");
-            // this.properties.get("break-before");
-            // this.properties.get("id");
-            // this.properties.get("keep-together");
-            // this.properties.get("keep-with-next");
-            // this.properties.get("keep-with-previous");
-            // this.properties.get("relative-align");
-
-            this.align = this.properties.get("text-align").getEnum();
-            this.alignLast = this.properties.get("text-align-last").getEnum();
-            this.lineHeight =
-                this.properties.get("line-height").getLength().mvalue();
-            this.spaceBefore =
-                this.properties.get("space-before.optimum").getLength().mvalue();
-            this.spaceAfter =
-                this.properties.get("space-after.optimum").getLength().mvalue();
-            this.id = this.properties.get("id").getString();
-
-            area.getIDReferences().createID(id);
-
-            this.marker = 0;
-        }
-
-        /* not sure this is needed given we know area is from list block */
-        if (area instanceof BlockArea) {
-            area.end();
-        }
-
-        if (spaceBefore != 0) {
-            area.addDisplaySpace(spaceBefore);
-        }
-
-        this.blockArea =
-            new BlockArea(propMgr.getFontState(area.getFontInfo()),
-                          area.getAllocationWidth(), area.spaceLeft(), 0, 0,
-                          0, align, alignLast, lineHeight);
-        this.blockArea.setGeneratedBy(this);
-        this.areasGenerated++;
-        if (this.areasGenerated == 1)
-            this.blockArea.isFirst(true);
-            // for normal areas this should be the only pair
-        this.blockArea.addLineagePair(this, this.areasGenerated);
-
-        // markers
-        if (this.hasMarkers())
-            this.blockArea.addMarkers(this.getMarkers());
-
-        blockArea.setPage(area.getPage());
-        blockArea.start();
-
-        blockArea.setAbsoluteHeight(area.getAbsoluteHeight());
-        blockArea.setIDReferences(area.getIDReferences());
-
-        int numChildren = this.children.size();
-        if (numChildren != 2) {
-            throw new FOPException("list-item must have exactly two children");
-        }
-        ListItemLabel label = (ListItemLabel)children.elementAt(0);
-        ListItemBody body = (ListItemBody)children.elementAt(1);
-
-        Status status;
-
-        // what follows doesn't yet take into account whether the
-        // body failed completely or only got some text in
-
-        if (this.marker == 0) {
-            // configure id
-            area.getIDReferences().configureID(id, area);
-
-            status = label.layout(blockArea);
-            if (status.isIncomplete()) {
-                return status;
-            }
-        }
-
-        status = body.layout(blockArea);
-        if (status.isIncomplete()) {
-            blockArea.end();
-            area.addChild(blockArea);
-            area.increaseHeight(blockArea.getHeight());
-            area.setAbsoluteHeight(blockArea.getAbsoluteHeight());
-            this.marker = 1;
-            return status;
-        }
-
-        blockArea.end();
-        area.addChild(blockArea);
-        area.increaseHeight(blockArea.getHeight());
-        area.setAbsoluteHeight(blockArea.getAbsoluteHeight());
-
-        if (spaceAfter != 0) {
-            area.addDisplaySpace(spaceAfter);
-        }
-
-        /* not sure this is needed given we know area is from list block */
-        if (area instanceof BlockArea) {
-            area.start();
-        }
-        this.blockArea.isLast(true);
-        return new Status(Status.OK);
-    }
-
-    /**
-     * Return the content width of the boxes generated by this FO.
-     */
-    public int getContentWidth() {
-        if (blockArea != null)
-            return blockArea.getContentWidth();    // getAllocationWidth()??
-        else
-            return 0;                              // not laid out yet
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/ListItemBody.java b/src/org/apache/fop/fo/flow/ListItemBody.java
deleted file mode 100644 (file)
index fa00c4b..0000000
+++ /dev/null
@@ -1,78 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.layout.FontState;
-import org.apache.fop.apps.FOPException;
-
-// Java
-import java.util.Enumeration;
-
-public class ListItemBody extends FObj {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new ListItemBody(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new ListItemBody.Maker();
-    }
-
-    public ListItemBody(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:list-item-body";
-    }
-
-    public Status layout(Area area) throws FOPException {
-        if (this.marker == START) {
-
-            // Common Accessibility Properties
-            AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-            // this.properties.get("id");
-            // this.properties.get("keep-together");
-
-            this.marker = 0;
-            // initialize id
-            String id = this.properties.get("id").getString();
-            area.getIDReferences().initializeID(id, area);
-        }
-
-        /*
-         * For calculating the lineage - The fo:list-item-body formatting object
-         * does not generate any areas. The fo:list-item-body formatting object
-         * returns the sequence of areas created by concatenating the sequences
-         * of areas returned by each of the children of the fo:list-item-body.
-         */
-
-        int numChildren = this.children.size();
-        for (int i = this.marker; i < numChildren; i++) {
-            FObj fo = (FObj)children.elementAt(i);
-
-            Status status;
-            if ((status = fo.layout(area)).isIncomplete()) {
-                this.marker = i;
-                if ((i == 0) && (status.getCode() == Status.AREA_FULL_NONE)) {
-                    return new Status(Status.AREA_FULL_NONE);
-                } else {
-                    return new Status(Status.AREA_FULL_SOME);
-                }
-            }
-        }
-        return new Status(Status.OK);
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/ListItemLabel.java b/src/org/apache/fop/fo/flow/ListItemLabel.java
deleted file mode 100644 (file)
index a649459..0000000
+++ /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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.layout.FontState;
-import org.apache.fop.apps.FOPException;
-
-// Java
-import java.util.Enumeration;
-
-public class ListItemLabel extends FObj {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new ListItemLabel(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new ListItemLabel.Maker();
-    }
-
-    public ListItemLabel(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:list-item-label";
-    }
-
-    public Status layout(Area area) throws FOPException {
-        int numChildren = this.children.size();
-
-        if (numChildren != 1) {
-            throw new FOPException("list-item-label must have exactly one block in this version of FOP");
-        }
-
-        // Common Accessibility Properties
-        AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-     
-        // this.properties.get("id");
-        // this.properties.get("keep-together");
-
-        // initialize id
-        String id = this.properties.get("id").getString();
-        area.getIDReferences().initializeID(id, area);
-
-        Block block = (Block)children.elementAt(0);
-
-        /*
-         * For calculating the lineage - The fo:list-item-label formatting object
-         * does not generate any areas. The fo:list-item-label formatting object
-         * returns the sequence of areas created by concatenating the sequences
-         * of areas returned by each of the children of the fo:list-item-label.
-         */
-
-        Status status;
-        status = block.layout(area);
-        area.addDisplaySpace(-block.getAreaHeight());
-        return status;
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/Marker.java b/src/org/apache/fop/fo/flow/Marker.java
deleted file mode 100644 (file)
index aba8b54..0000000
+++ /dev/null
@@ -1,89 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.datatypes.*;
-import org.apache.fop.apps.FOPException;
-
-public class Marker extends FObjMixed {
-
-    private String markerClassName;
-    private Area registryArea;
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new Marker(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new Marker.Maker();
-    }
-
-    public Marker(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:marker";
-
-        // do check to see that 'this' is under fo:flow
-
-        this.markerClassName =
-            this.properties.get("marker-class-name").getString();
-
-        // check to ensure that no other marker with same parent
-        // has this 'marker-class-name' is in addMarker() method
-        try {
-            parent.addMarker(this);
-        } catch (FOPException fopex) {
-            MessageHandler.error("marker cannot be added to '" + parent
-                                 + "'");
-        }
-    }
-
-    public Status layout(Area area) throws FOPException {
-        // no layout action desired
-        this.registryArea = area;
-        area.addMarker(this);
-        area.getPage().registerMarker(this);
-        // System.out.println("Marker being registered in area '" + area + "'");
-        return new Status(Status.OK);
-    }
-
-    public Status layoutMarker(Area area) throws FOPException {
-        if (this.marker == START)
-            this.marker = 0;
-
-        int numChildren = this.children.size();
-        for (int i = this.marker; i < numChildren; i++) {
-            FONode fo = (FONode)children.elementAt(i);
-
-            Status status;
-            if ((status = fo.layout(area)).isIncomplete()) {
-                this.marker = i;
-                return status;
-            }
-        }
-
-        return new Status(Status.OK);
-    }
-
-    public String getMarkerClassName() {
-        return markerClassName;
-    }
-
-    public Area getRegistryArea() {
-        return registryArea;
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/MultiCase.java b/src/org/apache/fop/fo/flow/MultiCase.java
deleted file mode 100644 (file)
index 9cd7a10..0000000
+++ /dev/null
@@ -1,52 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.flow.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-
-/**
- */
-public class MultiCase extends ToBeImplementedElement {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new MultiCase(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new MultiCase.Maker();
-    }
-
-    protected MultiCase(FObj parent,
-                        PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:multi-case";
-    }
-
-    public Status layout(Area area) throws FOPException {
-
-        // Common Accessibility Properties
-        AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-        // this.properties.get("id");
-        // this.properties.get("starting-state");
-        // this.properties.get("case-name");
-        // this.properties.get("case-title");
-
-        return super.layout(area);
-    }
-}
diff --git a/src/org/apache/fop/fo/flow/MultiProperties.java b/src/org/apache/fop/fo/flow/MultiProperties.java
deleted file mode 100644 (file)
index 03a42b2..0000000
+++ /dev/null
@@ -1,49 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.flow.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-
-/**
- */
-public class MultiProperties extends ToBeImplementedElement {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new MultiProperties(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new MultiProperties.Maker();
-    }
-
-    protected MultiProperties(FObj parent,
-                              PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:multi-properties";
-    }
-
-    public Status layout(Area area) throws FOPException {
-
-        // Common Accessibility Properties
-        AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-        // this.properties.get("id");
-
-        return super.layout(area);
-    }
-}
diff --git a/src/org/apache/fop/fo/flow/MultiPropertySet.java b/src/org/apache/fop/fo/flow/MultiPropertySet.java
deleted file mode 100644 (file)
index 7263f70..0000000
+++ /dev/null
@@ -1,47 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.flow.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-
-/**
- */
-public class MultiPropertySet extends ToBeImplementedElement {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new MultiPropertySet(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new MultiPropertySet.Maker();
-    }
-
-    protected MultiPropertySet(FObj parent, PropertyList propertyList)
-            throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:multi-property-set";
-    }
-
-    public Status layout(Area area) throws FOPException {
-
-        // this.properties.get("id");
-        // this.properties.get("active-state");
-
-        return super.layout(area);
-    }
-}
diff --git a/src/org/apache/fop/fo/flow/MultiSwitch.java b/src/org/apache/fop/fo/flow/MultiSwitch.java
deleted file mode 100644 (file)
index 42e6e18..0000000
+++ /dev/null
@@ -1,50 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.flow.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-
-/**
- */
-public class MultiSwitch extends ToBeImplementedElement {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new MultiSwitch(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new MultiSwitch.Maker();
-    }
-
-    protected MultiSwitch(FObj parent,
-                          PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:multi-switch";
-    }
-
-    public Status layout(Area area) throws FOPException {
-
-        // Common Accessibility Properties
-        AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-        // this.properties.get("auto-restore");
-        // this.properties.get("id");
-
-        return super.layout(area);
-    }
-}
diff --git a/src/org/apache/fop/fo/flow/MultiToggle.java b/src/org/apache/fop/fo/flow/MultiToggle.java
deleted file mode 100644 (file)
index 8fce89f..0000000
+++ /dev/null
@@ -1,50 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.flow.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-
-/**
- */
-public class MultiToggle extends ToBeImplementedElement {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new MultiToggle(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new MultiToggle.Maker();
-    }
-
-    protected MultiToggle(FObj parent,
-                          PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:multi-toggle";
-    }
-
-    public Status layout(Area area) throws FOPException {
-
-        // Common Accessibility Properties
-        AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-        // this.properties.get("id");
-        // this.properties.get("switch-to");
-
-        return super.layout(area);
-    }
-}
diff --git a/src/org/apache/fop/fo/flow/PageNumber.java b/src/org/apache/fop/fo/flow/PageNumber.java
deleted file mode 100644 (file)
index ddfb604..0000000
+++ /dev/null
@@ -1,115 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.datatypes.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-
-// Java
-import java.util.Enumeration;
-
-public class PageNumber extends FObj {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new PageNumber(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new PageNumber.Maker();
-    }
-
-    float red;
-    float green;
-    float blue;
-    int wrapOption;
-    int whiteSpaceCollapse;
-    TextState ts;
-
-    public PageNumber(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:page-number";
-    }
-
-    public Status layout(Area area) throws FOPException {
-        if (!(area instanceof BlockArea)) {
-            MessageHandler.errorln("WARNING: page-number outside block area");
-            return new Status(Status.OK);
-        }
-        if (this.marker == START) {
-
-            // Common Accessibility Properties
-            AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-        
-            // Common Aural Properties
-            AuralProps mAurProps = propMgr.getAuralProps();
-
-            // Common Border, Padding, and Background Properties
-            BorderAndPadding bap = propMgr.getBorderAndPadding();
-            BackgroundProps bProps = propMgr.getBackgroundProps();
-
-            // Common Font Properties
-            //this.fontState = propMgr.getFontState(area.getFontInfo());
-            // Common Margin Properties-Inline
-            MarginInlineProps mProps = propMgr.getMarginInlineProps();
-
-            // Common Relative Position Properties
-            RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-        
-            // this.properties.get("alignment-adjust");
-            // this.properties.get("alignment-baseline");
-            // this.properties.get("baseline-shift");
-            // this.properties.get("dominant-baseline");
-            // this.properties.get("id");
-            // this.properties.get("keep-with-next");
-            // this.properties.get("keep-with-previous");
-            // this.properties.get("letter-spacing");
-            // this.properties.get("line-height");
-            // this.properties.get("line-height-shift-adjustment");
-            // this.properties.get("score-spaces");
-            // this.properties.get("text-decoration");
-            // this.properties.get("text-shadow");
-            // this.properties.get("text-transform");
-            // this.properties.get("word-spacing");
-
-            ColorType c = this.properties.get("color").getColorType();
-            this.red = c.red();
-            this.green = c.green();
-            this.blue = c.blue();
-
-            this.wrapOption = this.properties.get("wrap-option").getEnum();
-            this.whiteSpaceCollapse =
-                this.properties.get("white-space-collapse").getEnum();
-            ts = new TextState();
-            this.marker = 0;
-
-            // initialize id
-            String id = this.properties.get("id").getString();
-            area.getIDReferences().initializeID(id, area);
-        }
-
-        String p = area.getPage().getFormattedNumber();
-        this.marker = FOText.addText((BlockArea)area,
-                                     propMgr.getFontState(area.getFontInfo()),
-                                     red, green, blue, wrapOption, null,
-                                     whiteSpaceCollapse, p.toCharArray(), 0,
-                                     p.length(), ts, VerticalAlign.BASELINE);
-        return new Status(Status.OK);
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/PageNumberCitation.java b/src/org/apache/fop/fo/flow/PageNumberCitation.java
deleted file mode 100644 (file)
index 95d93b6..0000000
+++ /dev/null
@@ -1,221 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.pagination.*;
-import org.apache.fop.datatypes.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-
-
-/**
- * 6.6.11 fo:page-number-citation
- *
- * Common Usage:
- * The fo:page-number-citation is used to reference the page-number for the page containing the first normal area returned by
- * the cited formatting object.
- *
- * NOTE:
- * It may be used to provide the page-numbers in the table of contents, cross-references, and index entries.
- *
- * Areas:
- * The fo:page-number-citation formatting object generates and returns a single normal inline-area.
- * Constraints:
- *
- * The cited page-number is the number of the page containing, as a descendant, the first normal area returned by the
- * formatting object with an id trait matching the ref-id trait of the fo:page-number-citation (the referenced formatting
- * object).
- *
- * The cited page-number string is obtained by converting the cited page-number in accordance with the number to string
- * conversion properties specified on the ancestor fo:page-sequence of the referenced formatting object.
- *
- * The child areas of the generated inline-area are the same as the result of formatting a result-tree fragment consisting of
- * fo:character flow objects; one for each character in the cited page-number string and with only the "character" property
- * specified.
- *
- * Contents:
- *
- * EMPTY
- *
- * The following properties apply to this formatting object:
- *
- * [7.3 Common Accessibility Properties]
- * [7.5 Common Aural Properties]
- * [7.6 Common Border, Padding, and Background Properties]
- * [7.7 Common Font Properties]
- * [7.10 Common Margin Properties-Inline]
- * [7.11.1 "alignment-adjust"]
- * [7.11.2 "baseline-identifier"]
- * [7.11.3 "baseline-shift"]
- * [7.11.5 "dominant-baseline"]
- * [7.36.2 "id"]
- * [7.17.4 "keep-with-next"]
- * [7.17.5 "keep-with-previous"]
- * [7.14.2 "letter-spacing"]
- * [7.13.4 "line-height"]
- * [7.13.5 "line-height-shift-adjustment"]
- * [7.36.5 "ref-id"]
- * [7.18.4 "relative-position"]
- * [7.36.6 "score-spaces"]
- * [7.14.4 "text-decoration"]
- * [7.14.5 "text-shadow"]
- * [7.14.6 "text-transform"]
- * [7.14.8 "word-spacing"]
- */
-public class PageNumberCitation extends FObj {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new PageNumberCitation(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new PageNumberCitation.Maker();
-    }
-
-    float red;
-    float green;
-    float blue;
-    int wrapOption;
-    int whiteSpaceCollapse;
-    Area area;
-    String pageNumber;
-    String refId;
-    String id;
-    TextState ts;
-
-
-    public PageNumberCitation(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:page-number-citation";
-    }
-
-
-    public Status layout(Area area) throws FOPException {
-        if (!(area instanceof BlockArea)) {
-            MessageHandler.errorln("WARNING: page-number-citation outside block area");
-            return new Status(Status.OK);
-        }
-
-        IDReferences idReferences = area.getIDReferences();
-        this.area = area;
-        if (this.marker == START) {
-
-            // Common Accessibility Properties            
-            AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-            // Common Aural Properties            
-            AuralProps mAurProps = propMgr.getAuralProps();            
-
-            // Common Border, Padding, and Background Properties            
-            BorderAndPadding bap = propMgr.getBorderAndPadding();            
-            BackgroundProps bProps = propMgr.getBackgroundProps();            
-
-            // Common Font Properties            
-            //this.fontState = propMgr.getFontState(area.getFontInfo());  
-
-            // Common Margin Properties-Inline            
-            MarginInlineProps mProps = propMgr.getMarginInlineProps();    
-
-            // Common Relative Position Properties            
-            RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
-            // this.properties.get("alignment-adjust");            
-            // this.properties.get("alignment-baseline");            
-            // this.properties.get("baseline-shift");            
-            // this.properties.get("dominant-baseline");            
-            // this.properties.get("id");            
-            // this.properties.get("keep-with-next");            
-            // this.properties.get("keep-with-previous");
-            // this.properties.get("letter-spacing");
-            // this.properties.get("line-height");
-            // this.properties.get("line-height-shift-adjustment");            
-            // this.properties.get("ref-id");                        
-            // this.properties.get("score-spaces");           
-            // this.properties.get("text-decoration");
-            // this.properties.get("text-shadow");
-            // this.properties.get("text-transform");
-            // this.properties.get("word-spacing");
-
-            ColorType c = this.properties.get("color").getColorType();
-            this.red = c.red();
-            this.green = c.green();
-            this.blue = c.blue();
-
-            this.wrapOption = this.properties.get("wrap-option").getEnum();
-            this.whiteSpaceCollapse =
-                this.properties.get("white-space-collapse").getEnum();
-
-            this.refId = this.properties.get("ref-id").getString();
-
-            if (this.refId.equals("")) {
-                throw new FOPException("page-number-citation must contain \"ref-id\"");
-            }
-
-            // create id
-            this.id = this.properties.get("id").getString();
-            idReferences.createID(id);
-            ts = new TextState();
-
-            this.marker = 0;
-        }
-
-        if (marker == 0) {
-            idReferences.configureID(id, area);
-        }
-
-
-        pageNumber = idReferences.getPageNumber(refId);
-
-        if (pageNumber != null) {    // if we already know the page number
-            this.marker =
-                FOText.addText((BlockArea)area,
-                               propMgr.getFontState(area.getFontInfo()), red,
-                               green, blue, wrapOption, null,
-                               whiteSpaceCollapse, pageNumber.toCharArray(),
-                               0, pageNumber.length(), ts,
-                               VerticalAlign.BASELINE);
-        } else {    // add pageNumberCitation to area to be resolved during rendering
-            BlockArea blockArea = (BlockArea)area;
-            LineArea la = blockArea.getCurrentLineArea();
-            if (la == null) {
-                return new Status(Status.AREA_FULL_NONE);
-            }
-            la.changeFont(propMgr.getFontState(area.getFontInfo()));
-            la.changeColor(red, green, blue);
-            la.changeWrapOption(wrapOption);
-            la.changeWhiteSpaceCollapse(whiteSpaceCollapse);
-            /*
-             * la.changeHyphenation(language, country, hyphenate,
-             * hyphenationChar, hyphenationPushCharacterCount,
-             * hyphenationRemainCharacterCount);
-             */
-
-            // blockArea.setupLinkSet(null);
-            la.addPageNumberCitation(refId, null);
-            this.marker = -1;
-        }
-
-
-        if (this.marker == -1) {
-            return new Status(Status.OK);
-        } else {
-            return new Status(Status.AREA_FULL_NONE);
-        }
-
-    }
-
-}
-
diff --git a/src/org/apache/fop/fo/flow/RetrieveMarker.java b/src/org/apache/fop/fo/flow/RetrieveMarker.java
deleted file mode 100644 (file)
index 55376ac..0000000
+++ /dev/null
@@ -1,162 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.datatypes.*;
-import org.apache.fop.apps.FOPException;
-
-// Java
-import java.util.Vector;
-
-public class RetrieveMarker extends FObjMixed {
-
-    private String retrieveClassName;
-    private int retrievePosition;
-    private int retrieveBoundary;
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new RetrieveMarker(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new RetrieveMarker.Maker();
-    }
-
-    public RetrieveMarker(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:retrieve-marker";
-
-        this.retrieveClassName =
-            this.properties.get("retrieve-class-name").getString();
-        this.retrievePosition =
-            this.properties.get("retrieve-position").getEnum();
-        this.retrieveBoundary =
-            this.properties.get("retrieve-boundary").getEnum();
-    }
-
-    public Status layout(Area area) throws FOPException {
-        // locate qualifying areas by 'marker-class-name' and
-        // 'retrieve-boundary'. Initially we will always check
-        // the containing page
-        Page containingPage = area.getPage();
-        Marker bestMarker = searchPage(containingPage, true);
-
-        // if marker not yet found, and 'retrieve-boundary' permits,
-        // search forward by Page
-        if ((null == bestMarker)
-                && (retrieveBoundary != RetrieveBoundary.PAGE)) {
-            // System.out.println("Null bestMarker and searching...");
-            Page currentPage = containingPage;
-            boolean isFirstCall = true;
-            while (bestMarker == null) {
-                Page previousPage = locatePreviousPage(currentPage,
-                                                       retrieveBoundary,
-                                                       isFirstCall);
-                isFirstCall = false;
-                // System.out.println("Previous page = '" + previousPage + "'");
-                bestMarker = searchPage(previousPage, false);
-                currentPage = previousPage;
-            }
-        }
-
-        Status status = new Status(Status.AREA_FULL_NONE);
-        if (null != bestMarker) {
-            // System.out.println("Laying out marker '" + bestMarker + "' in area '" + area + "'");
-            // the 'markers' referred to in this method are internal; they have
-            // nothing to do with fo:marker
-            bestMarker.resetMarker();
-            status = bestMarker.layoutMarker(area);
-        }
-
-        return status;
-    }
-
-    private Marker searchPage(Page page,
-                              boolean isContainingPage) throws FOPException {
-        Vector pageMarkers = page.getMarkers();
-        if (pageMarkers.isEmpty()) {
-            // System.out.println("No markers on page");
-            return null;
-        }
-
-        // if no longer the containing page (fo:retrieve-marker, or the page
-        // being processed), grab the last qualifying marker on this one
-        if (!isContainingPage) {
-            for (int c = pageMarkers.size(); c > 0; c--) {
-                Marker currentMarker = (Marker)pageMarkers.elementAt(c - 1);
-                if (currentMarker.getMarkerClassName().equals(retrieveClassName)) {
-                    return currentMarker;
-                }
-            }
-        }
-
-        // search forward if 'first-starting-within-page' or
-        // 'first-including-carryover'
-        if (retrievePosition == RetrievePosition.FIC) {
-            for (int c = 0; c < pageMarkers.size(); c++) {
-                Marker currentMarker = (Marker)pageMarkers.elementAt(c);
-                if (currentMarker.getMarkerClassName().equals(retrieveClassName)) {
-                    return currentMarker;
-                }
-            }
-
-        } else if (retrievePosition == RetrievePosition.FSWP) {
-            for (int c = 0; c < pageMarkers.size(); c++) {
-                Marker currentMarker = (Marker)pageMarkers.elementAt(c);
-                if (currentMarker.getMarkerClassName().equals(retrieveClassName)) {
-                    if (currentMarker.getRegistryArea().isFirst()) {
-                        return currentMarker;
-                    }
-                }
-            }
-
-        } else if (retrievePosition == RetrievePosition.LSWP) {
-            for (int c = pageMarkers.size(); c > 0; c--) {
-                Marker currentMarker = (Marker)pageMarkers.elementAt(c - 1);
-                if (currentMarker.getMarkerClassName().equals(retrieveClassName)) {
-                    if (currentMarker.getRegistryArea().isFirst()) {
-                        return currentMarker;
-                    }
-                }
-            }
-
-        } else if (retrievePosition == RetrievePosition.LEWP) {
-            for (int c = pageMarkers.size(); c > 0; c--) {
-                Marker currentMarker = (Marker)pageMarkers.elementAt(c - 1);
-                if (currentMarker.getMarkerClassName().equals(retrieveClassName)) {
-                    if (currentMarker.getRegistryArea().isLast()) {
-                        return currentMarker;
-                    }
-                }
-            }
-
-        } else {
-            throw new FOPException("Illegal 'retrieve-position' value");
-        }
-        return null;
-    }
-
-    private Page locatePreviousPage(Page page, int retrieveBoundary,
-                                    boolean isFirstCall) {
-        boolean pageWithinSequence = true;
-        if (retrieveBoundary == RetrieveBoundary.DOCUMENT)
-            pageWithinSequence = false;
-        return page.getAreaTree().getPreviousPage(page, pageWithinSequence,
-        isFirstCall);
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/RowSpanMgr.java b/src/org/apache/fop/fo/flow/RowSpanMgr.java
deleted file mode 100644 (file)
index 363963b..0000000
+++ /dev/null
@@ -1,128 +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.fo.flow;
-
-import org.apache.fop.layout.Area;
-import java.util.Enumeration;
-
-public class RowSpanMgr {
-    class SpanInfo {
-        int cellHeight;
-        int totalRowHeight;
-        int rowsRemaining;
-        // int numCols; // both V and H span
-        TableCell cell;
-
-        SpanInfo(TableCell cell, int cellHeight, int rowsSpanned) {
-            this.cell = cell;
-            this.cellHeight = cellHeight;
-            this.totalRowHeight = 0;
-            this.rowsRemaining = rowsSpanned;
-        }
-
-        /**
-         * Return the height remaining in the span.
-         */
-        int heightRemaining() {
-            int hl = cellHeight - totalRowHeight;
-            return (hl > 0) ? hl : 0;
-        }
-
-        boolean isInLastRow() {
-            return (rowsRemaining == 1);
-        }
-
-        boolean finishRow(int rowHeight) {
-            totalRowHeight += rowHeight;
-            if (--rowsRemaining == 0) {
-                if (cell != null) {
-                    cell.setRowHeight(totalRowHeight);
-                }
-                return true;
-            } else
-                return false;
-        }
-
-    }
-
-    private SpanInfo spanInfo[];
-
-    public RowSpanMgr(int numCols) {
-        this.spanInfo = new SpanInfo[numCols];
-    }
-
-    public void addRowSpan(TableCell cell, int firstCol, int numCols,
-                           int cellHeight, int rowsSpanned) {
-        spanInfo[firstCol - 1] = new SpanInfo(cell, cellHeight, rowsSpanned);
-        for (int i = 0; i < numCols - 1; i++) {
-            spanInfo[firstCol + i] = new SpanInfo(null, cellHeight,
-                                                  rowsSpanned);    // copy!
-        }
-    }
-
-    public boolean isSpanned(int colNum) {
-        return (spanInfo[colNum - 1] != null);
-    }
-
-
-    public TableCell getSpanningCell(int colNum) {
-        if (spanInfo[colNum - 1] != null) {
-            return spanInfo[colNum - 1].cell;
-        } else
-            return null;
-    }
-
-
-    /**
-     * Return true if any column has an unfinished vertical span.
-     */
-    public boolean hasUnfinishedSpans() {
-        for (int i = 0; i < spanInfo.length; i++) {
-            if (spanInfo[i] != null)
-                return true;
-        }
-        return false;
-    }
-
-    /**
-     * Done with a row.
-     * Any spans with only one row left are done
-     * This means that we can now set the total height for this cell box
-     * Loop over all cells with spans and find number of rows remaining
-     * if rows remaining  = 1, set the height on the cell area and
-     * then remove the cell from the list of spanned cells. For other
-     * spans, add the rowHeight to the spanHeight.
-     */
-    public void finishRow(int rowHeight) {
-        for (int i = 0; i < spanInfo.length; i++) {
-            if (spanInfo[i] != null && spanInfo[i].finishRow(rowHeight))
-                spanInfo[i] = null;
-        }
-    }
-
-    /**
-     * If the cell in this column is in the last row of its vertical
-     * span, return the height left. If it's not in the last row, or if
-     * the content height <= the content height of the previous rows
-     * of the span, return 0.
-     */
-    public int getRemainingHeight(int colNum) {
-        if (spanInfo[colNum - 1] != null) {
-            return spanInfo[colNum - 1].heightRemaining();
-        } else
-            return 0;
-    }
-
-    public boolean isInLastRow(int colNum) {
-        if (spanInfo[colNum - 1] != null) {
-            return spanInfo[colNum - 1].isInLastRow();
-        } else
-            return false;
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/StaticContent.java b/src/org/apache/fop/fo/flow/StaticContent.java
deleted file mode 100644 (file)
index e433ef8..0000000
+++ /dev/null
@@ -1,108 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.fo.pagination.*;
-import org.apache.fop.layout.Area;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.messaging.MessageHandler;
-
-// Java
-import java.util.Enumeration;
-
-public class StaticContent extends Flow {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new StaticContent(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new StaticContent.Maker();
-    }
-
-    protected StaticContent(FObj parent,
-                            PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        ((PageSequence)parent).setIsFlowSet(false);    // hacquery of sorts
-    }
-
-    public Status layout(Area area) throws FOPException {
-        return layout(area, null);
-    }
-
-
-    public Status layout(Area area, Region region) throws FOPException {
-
-        int numChildren = this.children.size();
-        // Set area absolute height so that link rectangles will be drawn correctly in xsl-before and xsl-after
-        String regionClass = "none";
-        if (region != null) {
-            regionClass = region.getRegionClass();
-        } else {
-            if (getFlowName().equals("xsl-region-before")) {
-                regionClass = RegionBefore.REGION_CLASS;
-            } else if (getFlowName().equals("xsl-region-after")) {
-                regionClass = RegionAfter.REGION_CLASS;
-            } else if (getFlowName().equals("xsl-region-start")) {
-                regionClass = RegionStart.REGION_CLASS;
-            } else if (getFlowName().equals("xsl-region-end")) {
-                regionClass = RegionEnd.REGION_CLASS;
-            }
-
-        }
-
-        if (area instanceof org.apache.fop.layout.AreaContainer)
-            ((org.apache.fop.layout.AreaContainer)area).setAreaName(regionClass);
-
-        if (regionClass.equals(RegionBefore.REGION_CLASS)) {
-            area.setAbsoluteHeight(-area.getMaxHeight());
-        } else if (regionClass.equals(RegionAfter.REGION_CLASS)) {
-            area.setAbsoluteHeight(area.getPage().getBody().getMaxHeight());
-        }
-
-        for (int i = 0; i < numChildren; i++) {
-            FObj fo = (FObj)children.elementAt(i);
-
-            Status status;
-            if ((status = fo.layout(area)).isIncomplete()) {
-                // in fact all should be laid out and clip, error etc depending on 'overflow'
-                MessageHandler.logln("Warning: Some static content could not fit in the area.");
-                this.marker = i;
-                if ((i != 0) && (status.getCode() == Status.AREA_FULL_NONE)) {
-                    status = new Status(Status.AREA_FULL_SOME);
-                }
-                return (status);
-            }
-        }
-        resetMarker();
-        return new Status(Status.OK);
-    }
-
-    protected String getElementName() {
-        return "fo:static-content";
-    }
-
-    // flowname checking is more stringient for static content currently
-    protected void setFlowName(String name) throws FOPException {
-        if (name == null || name.equals("")) {
-            throw new FOPException("A 'flow-name' is required for "
-                                   + getElementName() + ".");
-        } else {
-            super.setFlowName(name);
-        }
-
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/Table.java b/src/org/apache/fop/fo/flow/Table.java
deleted file mode 100644 (file)
index 4f67da5..0000000
+++ /dev/null
@@ -1,412 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.datatypes.*;
-import org.apache.fop.apps.FOPException;
-
-// Java
-import java.util.Vector;
-
-public class Table extends FObj {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new Table(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new Table.Maker();
-    }
-
-    int breakBefore;
-    int breakAfter;
-    int spaceBefore;
-    int spaceAfter;
-    ColorType backgroundColor;
-    int width;
-    int height;
-    String id;
-    TableHeader tableHeader = null;
-    TableFooter tableFooter = null;
-    boolean omitHeaderAtBreak = false;
-    boolean omitFooterAtBreak = false;
-
-    Vector columns = new Vector();
-    int currentColumnNumber = 0;
-    int bodyCount = 0;
-
-    AreaContainer areaContainer;
-
-    public Table(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:table";
-    }
-
-    public Status layout(Area area) throws FOPException {
-        if (this.marker == BREAK_AFTER) {
-            return new Status(Status.OK);
-        }
-
-        if (this.marker == START) {
-            // Common Accessibility Properties
-            AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-            // Common Aural Properties
-            AuralProps mAurProps = propMgr.getAuralProps();
-
-            // Common Border, Padding, and Background Properties
-            BorderAndPadding bap = propMgr.getBorderAndPadding();
-            BackgroundProps bProps = propMgr.getBackgroundProps();
-
-            // Common Margin Properties-Block
-            MarginProps mProps = propMgr.getMarginProps();
-
-            // Common Relative Position Properties 
-            RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-        
-            // this.properties.get("block-progression-dimension");
-            // this.properties.get("border-after-precendence");              
-            // this.properties.get("border-before-precedence");
-            // this.properties.get("border-collapse");
-            // this.properties.get("border-end-precendence");
-            // this.properties.get("border-separation");
-            // this.properties.get("border-start-precendence");
-            // this.properties.get("break-after");
-            // this.properties.get("break-before");
-            // this.properties.get("id");
-            // this.properties.get("inline-progression-dimension");
-            // this.properties.get("height");
-            // this.properties.get("keep-together");
-            // this.properties.get("keep-with-next");
-            // this.properties.get("keep-with-previous");
-            // this.properties.get("table-layout");              
-            // this.properties.get("table-omit-footer-at-break");              
-            // this.properties.get("table-omit-header-at-break");
-            // this.properties.get("width");              
-            // this.properties.get("writing-mode");              
-
-            this.breakBefore = this.properties.get("break-before").getEnum();
-            this.breakAfter = this.properties.get("break-after").getEnum();
-            this.spaceBefore =
-                this.properties.get("space-before.optimum").getLength().mvalue();
-            this.spaceAfter =
-                this.properties.get("space-after.optimum").getLength().mvalue();
-            this.backgroundColor =
-                this.properties.get("background-color").getColorType();
-            this.width = this.properties.get("width").getLength().mvalue();
-            this.height = this.properties.get("height").getLength().mvalue();
-
-            this.id = this.properties.get("id").getString();
-
-            this.omitHeaderAtBreak =
-                this.properties.get("table-omit-header-at-break").getEnum()
-                == TableOmitHeaderAtBreak.TRUE;
-            this.omitFooterAtBreak =
-                this.properties.get("table-omit-footer-at-break").getEnum()
-                == TableOmitFooterAtBreak.TRUE;
-
-            if (area instanceof BlockArea) {
-                area.end();
-            }
-            if (this.areaContainer
-                    == null) {    // check if anything was previously laid out
-                area.getIDReferences().createID(id);
-            }
-
-
-            this.marker = 0;
-
-            if (breakBefore == BreakBefore.PAGE) {
-                return new Status(Status.FORCE_PAGE_BREAK);
-            }
-
-            if (breakBefore == BreakBefore.ODD_PAGE) {
-                return new Status(Status.FORCE_PAGE_BREAK_ODD);
-            }
-
-            if (breakBefore == BreakBefore.EVEN_PAGE) {
-                return new Status(Status.FORCE_PAGE_BREAK_EVEN);
-            }
-        }
-
-        if ((spaceBefore != 0) && (this.marker == 0)) {
-            area.addDisplaySpace(spaceBefore);
-        }
-
-        if (marker == 0 && areaContainer == null) {
-            // configure id
-            area.getIDReferences().configureID(id, area);
-        }
-
-        int spaceLeft = area.spaceLeft();
-        this.areaContainer =
-            new AreaContainer(propMgr.getFontState(area.getFontInfo()), 0, 0,
-                              area.getAllocationWidth(), area.spaceLeft(),
-                              Position.STATIC);
-        areaContainer.foCreator = this;    // G Seshadri
-        areaContainer.setPage(area.getPage());
-        areaContainer.setBackgroundColor(backgroundColor);
-        areaContainer.setBorderAndPadding(propMgr.getBorderAndPadding());
-        areaContainer.start();
-
-        areaContainer.setAbsoluteHeight(area.getAbsoluteHeight());
-        areaContainer.setIDReferences(area.getIDReferences());
-
-        // added by Eric Schaeffer
-        currentColumnNumber = 0;
-        int offset = 0;
-
-        boolean addedHeader = false;
-        boolean addedFooter = false;
-        int numChildren = this.children.size();
-        for (int i = 0; i < numChildren; i++) {
-            FONode fo = (FONode)children.elementAt(i);
-            if (fo instanceof TableColumn) {
-                TableColumn c = (TableColumn)fo;
-                c.doSetup(areaContainer);
-                int numColumnsRepeated = c.getNumColumnsRepeated();
-                // int currentColumnNumber = c.getColumnNumber();
-
-                for (int j = 0; j < numColumnsRepeated; j++) {
-                    currentColumnNumber++;
-                    if (currentColumnNumber > columns.size()) {
-                        columns.setSize(currentColumnNumber);
-                    }
-                    columns.setElementAt(c, currentColumnNumber - 1);
-                    c.setColumnOffset(offset);
-                    c.layout(areaContainer);
-                    offset += c.getColumnWidth();
-                }
-            }
-        }
-        areaContainer.setAllocationWidth(offset);
-
-        for (int i = this.marker; i < numChildren; i++) {
-            FONode fo = (FONode)children.elementAt(i);
-            if (fo instanceof TableHeader) {
-                if (columns.size() == 0) {
-                    MessageHandler.errorln("WARNING: current implementation of tables requires a table-column for each column, indicating column-width");
-                    return new Status(Status.OK);
-                }
-                tableHeader = (TableHeader)fo;
-                tableHeader.setColumns(columns);
-            } else if (fo instanceof TableFooter) {
-                if (columns.size() == 0) {
-                    MessageHandler.errorln("WARNING: current implementation of tables requires a table-column for each column, indicating column-width");
-                    return new Status(Status.OK);
-                }
-                tableFooter = (TableFooter)fo;
-                tableFooter.setColumns(columns);
-            } else if (fo instanceof TableBody) {
-                if (columns.size() == 0) {
-                    MessageHandler.errorln("WARNING: current implementation of tables requires a table-column for each column, indicating column-width");
-                    return new Status(Status.OK);
-                }
-                Status status;
-                if (tableHeader != null &&!addedHeader) {
-                    if ((status =
-                            tableHeader.layout(areaContainer)).isIncomplete()) {
-                        return new Status(Status.AREA_FULL_NONE);
-                    }
-                    addedHeader = true;
-                    tableHeader.resetMarker();
-                    area.setMaxHeight(area.getMaxHeight() - spaceLeft
-                                      + this.areaContainer.getMaxHeight());
-                }
-                if (tableFooter != null &&!this.omitFooterAtBreak
-                        &&!addedFooter) {
-                    if ((status =
-                            tableFooter.layout(areaContainer)).isIncomplete()) {
-                        return new Status(Status.AREA_FULL_NONE);
-                    }
-                    addedFooter = true;
-                    tableFooter.resetMarker();
-                }
-                fo.setWidows(widows);
-                fo.setOrphans(orphans);
-                ((TableBody)fo).setColumns(columns);
-
-                if ((status = fo.layout(areaContainer)).isIncomplete()) {
-                    this.marker = i;
-                    if (bodyCount == 0
-                            && status.getCode() == Status.AREA_FULL_NONE) {
-                        if (tableHeader != null)
-                            tableHeader.removeLayout(areaContainer);
-                        if (tableFooter != null)
-                            tableFooter.removeLayout(areaContainer);
-                        resetMarker();
-                        // status = new Status(Status.AREA_FULL_SOME);
-                    }
-                    // areaContainer.end();
-                    if (areaContainer.getContentHeight() > 0) {
-                        area.addChild(areaContainer);
-                        area.increaseHeight(areaContainer.getHeight());
-                        area.setAbsoluteHeight(areaContainer.getAbsoluteHeight());
-                        if (this.omitHeaderAtBreak) {
-                            // remove header, no longer needed
-                            tableHeader = null;
-                        }
-                        if (tableFooter != null &&!this.omitFooterAtBreak) {
-                            // move footer to bottom of area and move up body
-                            ((TableBody)fo).setYPosition(tableFooter.getYPosition());
-                            tableFooter.setYPosition(tableFooter.getYPosition()
-                                                     + ((TableBody)fo).getHeight());
-                        }
-                        setupColumnHeights();
-                        status = new Status(Status.AREA_FULL_SOME);
-                    }
-                    return status;
-                } else {
-                    bodyCount++;
-                }
-                area.setMaxHeight(area.getMaxHeight() - spaceLeft
-                                  + this.areaContainer.getMaxHeight());
-                if (tableFooter != null &&!this.omitFooterAtBreak) {
-                    // move footer to bottom of area and move up body
-                    // space before and after footer will make this wrong
-                    ((TableBody)fo).setYPosition(tableFooter.getYPosition());
-                    tableFooter.setYPosition(tableFooter.getYPosition()
-                                             + ((TableBody)fo).getHeight());
-                }
-            }
-        }
-
-        if (tableFooter != null && this.omitFooterAtBreak) {
-            if (tableFooter.layout(areaContainer).isIncomplete()) {
-                // this is a problem since we need to remove a row
-                // from the last table body and place it on the
-                // next page so that it can have a footer at
-                // the end of the table.
-                MessageHandler.errorln("WARNING: footer could not fit on page, moving last body row to next page");
-                area.addChild(areaContainer);
-                area.increaseHeight(areaContainer.getHeight());
-                area.setAbsoluteHeight(areaContainer.getAbsoluteHeight());
-                if (this.omitHeaderAtBreak) {
-                    // remove header, no longer needed
-                    tableHeader = null;
-                }
-                tableFooter.removeLayout(areaContainer);
-                tableFooter.resetMarker();
-                return new Status(Status.AREA_FULL_SOME);
-            }
-        }
-
-        if (height != 0)
-            areaContainer.setHeight(height);
-
-        setupColumnHeights();
-
-        areaContainer.end();
-        area.addChild(areaContainer);
-
-        /* should this be combined into above? */
-        area.increaseHeight(areaContainer.getHeight());
-
-        area.setAbsoluteHeight(areaContainer.getAbsoluteHeight());
-
-        if (spaceAfter != 0) {
-            area.addDisplaySpace(spaceAfter);
-        }
-
-        if (area instanceof BlockArea) {
-            area.start();
-        }
-
-        if (breakAfter == BreakAfter.PAGE) {
-            this.marker = BREAK_AFTER;
-            return new Status(Status.FORCE_PAGE_BREAK);
-        }
-
-        if (breakAfter == BreakAfter.ODD_PAGE) {
-            this.marker = BREAK_AFTER;
-            return new Status(Status.FORCE_PAGE_BREAK_ODD);
-        }
-
-        if (breakAfter == BreakAfter.EVEN_PAGE) {
-            this.marker = BREAK_AFTER;
-            return new Status(Status.FORCE_PAGE_BREAK_EVEN);
-        }
-
-        return new Status(Status.OK);
-    }
-
-    protected void setupColumnHeights() {
-        int numChildren = this.children.size();
-        for (int i = 0; i < numChildren; i++) {
-            FONode fo = (FONode)children.elementAt(i);
-            if (fo instanceof TableColumn) {
-                ((TableColumn)fo).setHeight(areaContainer.getContentHeight());
-            }
-        }
-    }
-
-    public int getAreaHeight() {
-        return areaContainer.getHeight();
-    }
-
-    /**
-     * Return the content width of the boxes generated by this table FO.
-     */
-    public int getContentWidth() {
-        if (areaContainer != null)
-            return areaContainer.getContentWidth();    // getAllocationWidth()??
-        else
-            return 0;    // not laid out yet
-    }
-
-    // /**
-    // * Return the last TableRow in the header or null if no header or
-    // * no header in non-first areas.
-    // * @param bForInitialArea If true, return the header row for the
-    // * initial table area, else for a continuation area, taking into
-    // * account the omit-header-at-break property.
-    // */
-    // TableRow getLastHeaderRow(boolean bForInitialArea) {
-    // // Check omit...
-    // if ((tableHeader != null)  &&
-    // (bForInitialArea || omitHeaderAtBreak == false)) {
-    // return tableHeader.children.lastElement();
-    // }
-    // return null;
-    // }
-
-    // /**
-    // * Return the first TableRow in the footer or null if no footer or
-    // * no footer in non-last areas.
-    // * @param bForFinalArea If true, return the footer row for the
-    // * final table area, else for a non-final area, taking into
-    // * account the omit-footer-at-break property.
-    // */
-    // TableRow getLastFooterRow(boolean bForFinalArea) {
-    // if ((tableFooter != null) &&
-    // (bForFinalArea || omitFooterAtBreak == false)) {
-    // return tableFooter.children.firstElement();
-    // }
-    // return null;
-    // }
-
-
-    // /**
-    // * Return border information for the side (start/end) of the column
-    // * whose number is iColNumber (first column = 1).
-    // * ATTENTION: for now we assume columns are in order in the array!
-    // */
-    // BorderInfo getColumnBorder(BorderInfo.Side side, int iColNumber) {
-    // TableColumn col = (TableColumn)columns.elementAt(iColNumber);
-    // return col.getBorderInfo(side);
-    // }
-}
diff --git a/src/org/apache/fop/fo/flow/TableAndCaption.java b/src/org/apache/fop/fo/flow/TableAndCaption.java
deleted file mode 100644 (file)
index b9243ae..0000000
+++ /dev/null
@@ -1,66 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.flow.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-
-/**
- */
-public class TableAndCaption extends ToBeImplementedElement {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new TableAndCaption(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new TableAndCaption.Maker();
-    }
-
-    protected TableAndCaption(FObj parent,
-                              PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:table-and-caption";
-    }
-
-    public Status layout(Area area) throws FOPException {
-
-        // Common Accessibility Properties
-        AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-        // Common Aural Properties
-        AuralProps mAurProps = propMgr.getAuralProps();
-
-        // Common Border, Padding, and Background Properties
-        BorderAndPadding bap = propMgr.getBorderAndPadding();
-        BackgroundProps bProps = propMgr.getBackgroundProps();
-
-        // Common Margin Properties-Block
-        MarginProps mProps = propMgr.getMarginProps();
-
-        // Common Relative Position Properties
-        RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
-        // this.properties.get("caption-side");
-        // this.properties.get("id");
-        // this.properties.get("keep-together");
-        // this.properties.get("keep-with-next");
-        // this.properties.get("keep-with-previous");
-
-        return super.layout(area);
-    }
-}
diff --git a/src/org/apache/fop/fo/flow/TableBody.java b/src/org/apache/fop/fo/flow/TableBody.java
deleted file mode 100644 (file)
index 7ca06d1..0000000
+++ /dev/null
@@ -1,261 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.datatypes.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-
-// Java
-import java.util.Vector;
-import java.util.Enumeration;
-
-public class TableBody extends FObj {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new TableBody(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new TableBody.Maker();
-    }
-
-    int spaceBefore;
-    int spaceAfter;
-    ColorType backgroundColor;
-    String id;
-
-    Vector columns;
-    RowSpanMgr rowSpanMgr;    // manage information about spanning rows
-
-    AreaContainer areaContainer;
-
-    public TableBody(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:table-body";
-    }
-
-    public void setColumns(Vector columns) {
-        this.columns = columns;
-    }
-
-    public void setYPosition(int value) {
-        areaContainer.setYPosition(value);
-    }
-
-    public int getYPosition() {
-        return areaContainer.getCurrentYPosition();
-    }
-
-    public int getHeight() {
-        return areaContainer.getHeight() + spaceBefore + spaceAfter;
-    }
-
-    public Status layout(Area area) throws FOPException {
-        if (this.marker == BREAK_AFTER) {
-            return new Status(Status.OK);
-        }
-
-        if (this.marker == START) {
-
-            // Common Accessibility Properties
-            AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-            // Common Aural Properties
-            AuralProps mAurProps = propMgr.getAuralProps();
-
-            // Common Border, Padding, and Background Properties
-            BorderAndPadding bap = propMgr.getBorderAndPadding();
-            BackgroundProps bProps = propMgr.getBackgroundProps();
-
-            // Common Relative Position Properties        
-            RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-        
-            // this.properties.get("id");
-
-            this.spaceBefore =
-                this.properties.get("space-before.optimum").getLength().mvalue();
-            this.spaceAfter =
-                this.properties.get("space-after.optimum").getLength().mvalue();
-            this.backgroundColor =
-                this.properties.get("background-color").getColorType();
-            this.id = this.properties.get("id").getString();
-
-            area.getIDReferences().createID(id);
-
-            if (area instanceof BlockArea) {
-                area.end();
-            }
-
-            if (rowSpanMgr == null) {
-                rowSpanMgr = new RowSpanMgr(columns.size());
-            }
-
-            // if (this.isInListBody) {
-            // startIndent += bodyIndent + distanceBetweenStarts;
-            // }
-
-            this.marker = 0;
-
-        }
-
-        if ((spaceBefore != 0) && (this.marker == 0)) {
-            area.increaseHeight(spaceBefore);
-        }
-
-        if (marker == 0) {
-            // configure id
-            area.getIDReferences().configureID(id, area);
-        }
-
-        int spaceLeft = area.spaceLeft();
-
-        /*
-         * Note: the parent FO must be a Table. The parent Area is the Block
-         * type area created by the Table, which is also a reference area.
-         * The content "width" (IPD) of the TableBody is the same as that
-         * of the containing table area, and its relative position is 0,0.
-         * Strictly speaking (CR), this FO should generate no areas!
-         */
-        this.areaContainer =
-            new AreaContainer(propMgr.getFontState(area.getFontInfo()), 0,
-                              area.getContentHeight(),
-                              area.getContentWidth(),    // IPD
-        area.spaceLeft(), Position.RELATIVE);
-        areaContainer.foCreator = this;                  // G Seshadri
-        areaContainer.setPage(area.getPage());
-        areaContainer.setBackgroundColor(backgroundColor);
-        areaContainer.setBorderAndPadding(propMgr.getBorderAndPadding());
-        areaContainer.start();
-
-        areaContainer.setAbsoluteHeight(area.getAbsoluteHeight());
-        areaContainer.setIDReferences(area.getIDReferences());
-
-        Vector keepWith = new Vector();
-        int numChildren = this.children.size();
-        TableRow lastRow = null;
-        boolean endKeepGroup = true;
-        for (int i = this.marker; i < numChildren; i++) {
-            Object child = children.elementAt(i);
-            if (!(child instanceof TableRow)) {
-                throw new FOPException("Currently only Table Rows are supported in table body, header and footer");
-            }
-            TableRow row = (TableRow)child;
-
-            row.setRowSpanMgr(rowSpanMgr);
-            row.setColumns(columns);
-            row.doSetup(areaContainer);
-            if (row.getKeepWithPrevious().getType()
-                    != KeepValue.KEEP_WITH_AUTO && lastRow != null
-                                                && keepWith.indexOf(lastRow)
-                                                   == -1) {
-                keepWith.addElement(lastRow);
-            } else {
-                if (endKeepGroup && keepWith.size() > 0) {
-                    keepWith = new Vector();
-                }
-            }
-
-            Status status;
-            if ((status = row.layout(areaContainer)).isIncomplete()) {
-                // BUG!!! don't distinguish between break-before and after!
-                if (status.isPageBreak()) {
-                    this.marker = i;
-                    area.addChild(areaContainer);
-                    // areaContainer.end();
-
-                    area.increaseHeight(areaContainer.getHeight());
-                    area.setAbsoluteHeight(areaContainer.getAbsoluteHeight());
-                    if (i == numChildren - 1) {
-                        this.marker = BREAK_AFTER;
-                        if (spaceAfter != 0) {
-                            area.increaseHeight(spaceAfter);
-                        }
-                    }
-                    return status;
-                }
-                if (keepWith.size()
-                        > 0) {    // && status.getCode() == Status.AREA_FULL_NONE
-                    // FIXME!!! Handle rows spans!!!
-                    row.removeLayout(areaContainer);
-                    for (Enumeration e = keepWith.elements();
-                            e.hasMoreElements(); ) {
-                        TableRow tr = (TableRow)e.nextElement();
-                        tr.removeLayout(areaContainer);
-                        i--;
-                    }
-                    if (i == 0) {
-                        resetMarker();
-                        return new Status(Status.AREA_FULL_NONE);
-                    }
-                }
-                this.marker = i;
-                if ((i != 0) && (status.getCode() == Status.AREA_FULL_NONE)) {
-                    status = new Status(Status.AREA_FULL_SOME);
-                }
-                if (!((i == 0) && (areaContainer.getContentHeight() <= 0))) {
-                    area.addChild(areaContainer);
-                    // areaContainer.end();
-
-                    area.increaseHeight(areaContainer.getHeight());
-                    area.setAbsoluteHeight(areaContainer.getAbsoluteHeight());
-                }
-                return status;
-            } else if (status.getCode() == Status.KEEP_WITH_NEXT
-                       || rowSpanMgr.hasUnfinishedSpans()) {
-                keepWith.addElement(row);
-                endKeepGroup = false;
-            } else {
-                endKeepGroup = true;
-            }
-            lastRow = row;
-            area.setMaxHeight(area.getMaxHeight() - spaceLeft
-                              + this.areaContainer.getMaxHeight());
-            spaceLeft = area.spaceLeft();
-        }
-        area.addChild(areaContainer);
-        areaContainer.end();
-
-        area.increaseHeight(areaContainer.getHeight());
-
-        area.setAbsoluteHeight(areaContainer.getAbsoluteHeight());
-
-        if (spaceAfter != 0) {
-            area.increaseHeight(spaceAfter);
-            area.setMaxHeight(area.getMaxHeight() - spaceAfter);
-        }
-
-        if (area instanceof BlockArea) {
-            area.start();
-        }
-
-        return new Status(Status.OK);
-    }
-
-    public void removeLayout(Area area) {
-        if (areaContainer != null) {
-            area.removeChild(areaContainer);
-        }
-        if (spaceBefore != 0) {
-            area.increaseHeight(-spaceBefore);
-        }
-        if (spaceAfter != 0) {
-            area.increaseHeight(-spaceAfter);
-        }
-        this.resetMarker();
-        this.removeID(area.getIDReferences());
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/TableCaption.java b/src/org/apache/fop/fo/flow/TableCaption.java
deleted file mode 100644 (file)
index 93712f3..0000000
+++ /dev/null
@@ -1,64 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.flow.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-
-/**
- */
-public class TableCaption extends ToBeImplementedElement {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new TableCaption(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new TableCaption.Maker();
-    }
-
-    protected TableCaption(FObj parent,
-                           PropertyList propertyList) throws FOPException {
-        super(parent, propertyList);
-        this.name = "fo:table-caption";
-    }
-
-    public Status layout(Area area) throws FOPException {
-
-        // Common Accessibility Properties
-        AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-        // Common Aural Properties
-        AuralProps mAurProps = propMgr.getAuralProps();
-
-        // Common Border, Padding, and Background Properties
-        BorderAndPadding bap = propMgr.getBorderAndPadding();
-        BackgroundProps bProps = propMgr.getBackgroundProps();
-
-        // Common Relative Position Properties
-        RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
-        // this.properties.get("block-progression-dimension");
-        // this.properties.get("height");
-        // this.properties.get("id");
-        // this.properties.get("inline-progression-dimension");
-        // this.properties.get("keep-togethe");
-        // this.properties.get("width");
-
-        return super.layout(area);
-    }
-}
diff --git a/src/org/apache/fop/fo/flow/TableCell.java b/src/org/apache/fop/fo/flow/TableCell.java
deleted file mode 100644 (file)
index 24d5d12..0000000
+++ /dev/null
@@ -1,462 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.datatypes.*;
-
-public class TableCell extends FObj {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new TableCell(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new TableCell.Maker();
-    }
-
-    // int spaceBefore;
-    // int spaceAfter;
-    ColorType backgroundColor;
-
-    String id;
-    int numColumnsSpanned;
-    int numRowsSpanned;
-    int iColNumber = -1;    // uninitialized
-
-    /**
-     * Offset of content rectangle in inline-progression-direction,
-     * relative to table.
-     */
-    protected int startOffset;
-
-    /**
-     * Dimension of allocation rectangle in inline-progression-direction,
-     * determined by the width of the column(s) occupied by the cell
-     */
-    protected int width;
-
-    /**
-     * Offset of content rectangle, in block-progression-direction,
-     * relative to the row.
-     */
-    protected int beforeOffset = 0;
-
-    /**
-     * Offset of content rectangle, in inline-progression-direction,
-     * relative to the column start edge.
-     */
-    protected int startAdjust = 0;
-
-    /**
-     * Adjust to theoretical column width to obtain content width
-     * relative to the column start edge.
-     */
-    protected int widthAdjust = 0;
-
-    /* For collapsed border style */
-    protected int borderHeight = 0;
-
-    /**
-     * Minimum ontent height of cell.
-     */
-    protected int minCellHeight = 0;
-
-    protected int height = 0;
-    protected int top;      // Ypos of cell ???
-    protected int verticalAlign;
-    protected boolean bRelativeAlign = false;
-
-    // boolean setup = false;
-    boolean bSepBorders = true;
-
-    /**
-     * Border separation value in the block-progression dimension.
-     * Used in calculating cells height.
-     */
-    int m_borderSeparation = 0;
-
-    AreaContainer cellArea;
-
-    public TableCell(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:table-cell";
-        doSetup();    // init some basic property values
-    }
-
-    // Set position relative to table (set by body?)
-    public void setStartOffset(int offset) {
-        startOffset = offset;
-    }
-
-    // Initially same as the column width containg this cell or the
-    // sum of the spanned columns if numColumnsSpanned > 1
-    public void setWidth(int width) {
-        this.width = width;
-    }
-
-    public int getColumnNumber() {
-        return iColNumber;
-    }
-
-    public int getNumColumnsSpanned() {
-        return numColumnsSpanned;
-    }
-
-    public int getNumRowsSpanned() {
-        return numRowsSpanned;
-    }
-
-    public void doSetup()    // throws FOPException
-     {
-        // Common Accessibility Properties
-        AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-
-        // Common Aural Properties
-        AuralProps mAurProps = propMgr.getAuralProps();
-
-        // Common Border, Padding, and Background Properties
-        BorderAndPadding bap = propMgr.getBorderAndPadding();
-        BackgroundProps bProps = propMgr.getBackgroundProps();
-
-        // Common Relative Position Properties
-        RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-
-        // this.properties.get("border-after-precedence");
-        // this.properties.get("border-before-precendence");
-        // this.properties.get("border-end-precendence");
-        // this.properties.get("border-start-precendence");
-        // this.properties.get("block-progression-dimension");
-        // this.properties.get("column-number");
-        // this.properties.get("display-align");
-        // this.properties.get("relative-align");
-        // this.properties.get("empty-cells");
-        // this.properties.get("ends-row");
-        // this.properties.get("height");
-        // this.properties.get("id");
-        // this.properties.get("number-columns-spanned");
-        // this.properties.get("number-rows-spanned");
-        // this.properties.get("starts-row");
-        // this.properties.get("width");
-
-        this.iColNumber =
-            properties.get("column-number").getNumber().intValue();
-        if (iColNumber < 0) {
-            iColNumber = 0;
-        }
-        this.numColumnsSpanned =
-            this.properties.get("number-columns-spanned").getNumber().intValue();
-        if (numColumnsSpanned < 1) {
-            numColumnsSpanned = 1;
-        }
-        this.numRowsSpanned =
-            this.properties.get("number-rows-spanned").getNumber().intValue();
-        if (numRowsSpanned < 1) {
-            numRowsSpanned = 1;
-        }
-
-        this.backgroundColor =
-            this.properties.get("background-color").getColorType();
-
-        this.id = this.properties.get("id").getString();
-
-        bSepBorders = (this.properties.get("border-collapse").getEnum()
-                       == BorderCollapse.SEPARATE);
-
-        calcBorders(propMgr.getBorderAndPadding());
-
-        // Vertical cell alignment
-        verticalAlign = this.properties.get("display-align").getEnum();
-        if (verticalAlign == DisplayAlign.AUTO) {
-            // Depends on all cells starting in row
-            bRelativeAlign = true;
-            verticalAlign = this.properties.get("relative-align").getEnum();
-        } else
-            bRelativeAlign = false;    // Align on a per-cell basis
-
-        this.minCellHeight =
-            this.properties.get("height").getLength().mvalue();
-    }
-
-
-    public Status layout(Area area) throws FOPException {
-        int originalAbsoluteHeight = area.getAbsoluteHeight();
-        if (this.marker == BREAK_AFTER) {
-            return new Status(Status.OK);
-        }
-
-        if (this.marker == START) {
-            // if (!setup) {
-            // doSetup(area);
-            // }
-
-            // Calculate cell borders
-            // calcBorders(propMgr.getBorderAndPadding());
-
-            area.getIDReferences().createID(id);
-
-            this.marker = 0;
-        }
-
-        /*
-         * if ((spaceBefore != 0) && (this.marker ==0)) {
-         * area.increaseHeight(spaceBefore);
-         * }
-         */
-
-        if (marker == 0) {
-            // configure id
-            area.getIDReferences().configureID(id, area);
-        }
-
-        // int spaceLeft = area.spaceLeft() - m_borderSeparation/2 + borderHeight/2 ;
-        int spaceLeft = area.spaceLeft() - m_borderSeparation;
-        // The Area position defines the content rectangle! Borders
-        // and padding are outside of this rectangle.
-        this.cellArea =
-            new AreaContainer(propMgr.getFontState(area.getFontInfo()),
-                              startOffset + startAdjust, beforeOffset,
-                              width - widthAdjust, spaceLeft,
-                              Position.RELATIVE);
-
-        cellArea.foCreator = this;    // G Seshadri
-        cellArea.setPage(area.getPage());
-       try {
-           cellArea.setBorderAndPadding((BorderAndPadding)
-                                     propMgr.getBorderAndPadding().clone());
-       } catch (CloneNotSupportedException e) {
-            System.err.println("Can't clone BorderAndPadding: " + e) ;
-            cellArea.setBorderAndPadding(propMgr.getBorderAndPadding());
-        }
-        cellArea.setBackgroundColor(this.backgroundColor);
-        cellArea.start();
-
-        cellArea.setAbsoluteHeight(area.getAbsoluteHeight());    // ???
-        cellArea.setIDReferences(area.getIDReferences());
-        // ******** CHECK THIS: we've changed startOffset (KL)
-        cellArea.setTableCellXOffset(startOffset);
-
-        int numChildren = this.children.size();
-        for (int i = this.marker; i < numChildren; i++) {
-            FObj fo = (FObj)children.elementAt(i);
-            fo.setIsInTableCell();
-            fo.forceWidth(width);    // ???
-
-            // Overflows may cause a row to be re-layedout,
-            // need to pass already processed content.
-            this.marker = i;
-
-            Status status;
-            if ((status = fo.layout(cellArea)).isIncomplete()) {
-                // this.marker = i;
-                if ((i == 0) && (status.getCode() == Status.AREA_FULL_NONE)) {
-                    return new Status(Status.AREA_FULL_NONE);
-                } else {
-                    // hani Elabed 11/21/2000
-                    area.addChild(cellArea);
-                    // area.setAbsoluteHeight(cellArea.getAbsoluteHeight());
-                    return new Status(Status.AREA_FULL_SOME);
-                }
-            }
-
-            area.setMaxHeight(area.getMaxHeight() - spaceLeft
-                              + this.cellArea.getMaxHeight());
-        }
-        cellArea.end();
-        area.addChild(cellArea);
-
-        // Adjust for minimum cell content height
-        if (minCellHeight > cellArea.getContentHeight()) {
-            cellArea.setHeight(minCellHeight);
-        }
-
-        // This is the allocation height of the cell (including borders
-        // and padding
-        // ALSO need to include offsets if using "separate borders"
-        height = cellArea.getHeight();
-        top = cellArea.getCurrentYPosition();    // CHECK THIS!!!
-
-        // reset absoluteHeight to beginning of row
-        // area.setHeight(cellArea.getHeight() + spaceBefore + spaceAfter);
-        // I don't think we should do this here (KL) !!!
-        // area.setHeight(cellArea.getHeight());
-        // area.setAbsoluteHeight(originalAbsoluteHeight);
-
-        return new Status(Status.OK);
-    }
-
-    /**
-     * Return the allocation height of the cell area.
-     * Note: called by TableRow.
-     * We adjust the actual allocation height of the area by the value
-     * of border separation (for separate borders) or border height
-     * adjustment for collapse style (because current scheme makes cell
-     * overestimate the allocation height).
-     */
-    public int getHeight() {
-        return cellArea.getHeight() + m_borderSeparation - borderHeight;
-    }
-
-    /**
-     * Set the final size of cell content rectangles to the actual row height
-     * and to vertically align the actual content within the cell rectangle.
-     * @param h Height of this row in the grid  which is based on
-     * the allocation height of all the cells in the row, including any
-     * border separation values.
-     */
-    public void setRowHeight(int h) {
-        int delta = h - getHeight();
-        // cellArea.increaseHeight(h + borderHeight/2 - cellArea.getHeight());
-        if (bRelativeAlign) {
-            // Must get info for all cells starting in row!
-            // verticalAlign can be BEFORE or BASELINE
-            // For now just treat like "before"
-            cellArea.increaseHeight(delta);
-        } else if (delta > 0) {
-            BorderAndPadding cellBP = cellArea.getBorderAndPadding();
-            switch (verticalAlign) {
-            case DisplayAlign.CENTER:
-                // Increase cell padding before and after and change
-                // "Y" position of content rectangle
-                cellArea.shiftYPosition(delta / 2);
-                cellBP.setPaddingLength(BorderAndPadding.TOP,
-                                        cellBP.getPaddingTop(false)
-                                        + delta / 2);
-                cellBP.setPaddingLength(BorderAndPadding.BOTTOM,
-                                        cellBP.getPaddingBottom(false)
-                                        + delta - delta / 2);
-                break;
-            case DisplayAlign.AFTER:
-                // Increase cell padding before and change
-                // "Y" position of content rectangle
-                cellBP.setPaddingLength(BorderAndPadding.TOP,
-                                        cellBP.getPaddingTop(false) + delta);
-                cellArea.shiftYPosition(delta);
-                break;
-            case DisplayAlign.BEFORE:
-                // cellArea.increaseHeight(delta);
-                cellBP.setPaddingLength(BorderAndPadding.BOTTOM,
-                                        cellBP.getPaddingBottom(false)
-                                        + delta);
-
-            default:    // OK
-                break;
-            }
-        }
-    }
-
-    /**
-     * Calculate cell border and padding, including offset of content
-     * rectangle from the theoretical grid position.
-     */
-    private void calcBorders(BorderAndPadding bp) {
-        if (this.bSepBorders) {
-            /*
-             * Easy case.
-             * Cell border is the property specified directly on cell.
-             * Offset content rect by half the border-separation value,
-             * in addition to the border and padding values. Note:
-             * border-separate should only be specified on the table object,
-             * but it inherits.
-             */
-            int iSep =
-                properties.get("border-separation.inline-progression-direction").getLength().mvalue();
-            this.startAdjust = iSep / 2 + bp.getBorderLeftWidth(false)
-                               + bp.getPaddingLeft(false);
-            /*
-             * int contentOffset = iSep + bp.getBorderStartWidth(false) +
-             * bp.getPaddingStart(false);
-             */
-            this.widthAdjust = startAdjust + iSep - iSep / 2
-                               + bp.getBorderRightWidth(false)
-                               + bp.getPaddingRight(false);
-            // bp.getBorderEndWidth(false) + bp.getPaddingEnd(false);
-            // Offset of content rectangle in the block-progression direction
-            m_borderSeparation =
-                properties.get("border-separation.block-progression-direction").getLength().mvalue();
-            this.beforeOffset = m_borderSeparation / 2
-                                + bp.getBorderTopWidth(false)
-                                + bp.getPaddingTop(false);
-            // bp.getBorderBeforeWidth(false) +        bp.getPaddingBefore(false);
-
-        } else {
-            // System.err.println("Collapse borders");
-            /*
-             * Hard case.
-             * Cell border is combination of other cell borders, or table
-             * border for edge cells. Also seems to border values specified
-             * on row and column FO in the table (if I read CR correclty.)
-             */
-
-            // Set up before and after borders, taking into account row
-            // and table border properties.
-            // ??? What about table-body, header,footer
-
-            /*
-             * We can't calculate before and after because we aren't sure
-             * whether this row will be the first or last in its area, due
-             * to redoing break decisions (at least in the "new" architecture.)
-             * So in the general case, we will calculate two possible values:
-             * the first/last one and the "middle" one.
-             * Example: border-before
-             * 1. If the cell is in the first row in the first table body, it
-             * will combine with the last row of the header, or with the
-             * top (before) table border if there is no header.
-             * 2. Otherwise there are two cases:
-             * a. the row is first in its (non-first) Area.
-             * The border can combine with either:
-             * i.  the last row of table-header and its cells, or
-             * ii. the table before border (no table-header or it is
-             * omitted on non-first Areas).
-             * b. the row isn't first in its Area.
-             * The border combines with the border of the previous
-             * row and the cells which end in that row.
-             */
-
-            /*
-             * if-first
-             * Calculate the effective border of the cell before-border,
-             * it's parent row before-border, the last header row after-border,
-             * the after border of the cell(s) which end in the last header
-             * row.
-             */
-            /*
-             * if-not-first
-             * Calculate the effective border of the cell before-border,
-             * it's parent row before-border, the previous row after-border,
-             * the after border of the cell(s) which end in the previous
-             * row.
-             */
-
-
-            /* ivan demakov */
-            int borderStart = bp.getBorderLeftWidth(false);
-            int borderEnd = bp.getBorderRightWidth(false);
-            int borderBefore = bp.getBorderTopWidth(false);
-            int borderAfter = bp.getBorderBottomWidth(false);
-
-            this.startAdjust = borderStart / 2 + bp.getPaddingLeft(false);
-
-            this.widthAdjust = startAdjust + borderEnd / 2
-                               + bp.getPaddingRight(false);
-            this.beforeOffset = borderBefore / 2 + bp.getPaddingTop(false);
-            // Half border height to fix overestimate of area size!
-            this.borderHeight = (borderBefore + borderAfter) / 2;
-        }
-    }
-
-
-}
diff --git a/src/org/apache/fop/fo/flow/TableColumn.java b/src/org/apache/fop/fo/flow/TableColumn.java
deleted file mode 100644 (file)
index 2afe6ca..0000000
+++ /dev/null
@@ -1,126 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.datatypes.*;
-
-public class TableColumn extends FObj {
-
-    ColorType backgroundColor;
-
-    int columnWidth;
-    int columnOffset;
-    int numColumnsRepeated;
-
-    boolean setup = false;
-
-    AreaContainer areaContainer;
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new TableColumn(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new TableColumn.Maker();
-    }
-
-    public TableColumn(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:table-column";
-    }
-
-    public int getColumnWidth() {
-        return columnWidth;
-    }
-
-    public int getColumnNumber() {
-        return 0;    // not implemented yet
-    }
-
-    public int getNumColumnsRepeated() {
-        return numColumnsRepeated;
-    }
-
-    public void doSetup(Area area) throws FOPException {
-
-        // Common Border, Padding, and Background Properties
-        // only background apply, border apply if border-collapse
-        // is collapse.
-        BorderAndPadding bap = propMgr.getBorderAndPadding();
-        BackgroundProps bProps = propMgr.getBackgroundProps();
-
-        // this.properties.get("column-number");
-        // this.properties.get("column-width");
-        // this.properties.get("number-columns-repeated");
-        // this.properties.get("number-columns-spanned");
-        // this.properties.get("visibility");
-
-
-        this.numColumnsRepeated =
-            this.properties.get("number-columns-repeated").getNumber().intValue();
-
-        this.backgroundColor =
-            this.properties.get("background-color").getColorType();
-
-        this.columnWidth =
-            this.properties.get("column-width").getLength().mvalue();
-
-        // initialize id
-        String id = this.properties.get("id").getString();
-        area.getIDReferences().initializeID(id, area);
-
-        setup = true;
-    }
-
-    public Status layout(Area area) throws FOPException {
-        if (this.marker == BREAK_AFTER) {
-            return new Status(Status.OK);
-        }
-
-        if (this.marker == START) {
-            if (!setup) {
-                doSetup(area);
-            }
-        }
-
-        // KL: don't take table borders into account!
-        this.areaContainer =
-            new AreaContainer(propMgr.getFontState(area.getFontInfo()),
-                              columnOffset /* - area.getBorderLeftWidth() */,
-                              /* -area.getBorderTopWidth() */
-        0, columnWidth, area.getContentHeight(), Position.RELATIVE);
-        // area.getHeight(), Position.RELATIVE);
-        areaContainer.foCreator = this;    // G Seshadri
-        areaContainer.setPage(area.getPage());
-        areaContainer.setBorderAndPadding(propMgr.getBorderAndPadding());
-        areaContainer.setBackgroundColor(this.backgroundColor);
-        areaContainer.setHeight(area.getHeight());
-        area.addChild(areaContainer);
-
-        return new Status(Status.OK);
-    }
-
-    public void setColumnOffset(int columnOffset) {
-        this.columnOffset = columnOffset;
-    }
-
-    public void setHeight(int height) {
-        areaContainer.setMaxHeight(height);
-        areaContainer.setHeight(height);
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/TableFooter.java b/src/org/apache/fop/fo/flow/TableFooter.java
deleted file mode 100644 (file)
index 0a6ebe0..0000000
+++ /dev/null
@@ -1,48 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.datatypes.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-
-// Java
-import java.util.Vector;
-import java.util.Enumeration;
-
-public class TableFooter extends TableBody {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new TableFooter(parent, propertyList);
-        }
-
-    }
-
-    public int getYPosition() {
-        return areaContainer.getCurrentYPosition() - spaceBefore;
-    }
-
-    public void setYPosition(int value) {
-        areaContainer.setYPosition(value + 2 * spaceBefore);
-    }
-
-    public static FObj.Maker maker() {
-        return new TableFooter.Maker();
-    }
-
-    public TableFooter(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:table-footer";
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/TableHeader.java b/src/org/apache/fop/fo/flow/TableHeader.java
deleted file mode 100644 (file)
index 81fd7a6..0000000
+++ /dev/null
@@ -1,40 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.datatypes.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-
-// Java
-import java.util.Vector;
-import java.util.Enumeration;
-
-public class TableHeader extends TableBody {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new TableHeader(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new TableHeader.Maker();
-    }
-
-    public TableHeader(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:table-header";
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/TableRow.java b/src/org/apache/fop/fo/flow/TableRow.java
deleted file mode 100644 (file)
index d2d879c..0000000
+++ /dev/null
@@ -1,545 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.messaging.MessageHandler;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.datatypes.*;
-import org.apache.fop.layout.*;
-import org.apache.fop.apps.FOPException;
-
-// Java
-import java.util.Vector;
-import java.util.Enumeration;
-
-public class TableRow extends FObj {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new TableRow(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new TableRow.Maker();
-    }
-
-    boolean setup = false;
-
-    int breakAfter;
-    ColorType backgroundColor;
-    String id;
-
-    KeepValue keepWithNext;
-    KeepValue keepWithPrevious;
-    KeepValue keepTogether;
-
-    int widthOfCellsSoFar = 0;
-    int largestCellHeight = 0;
-    int minHeight = 0;    // force row height
-    Vector columns;
-
-    AreaContainer areaContainer;
-
-    boolean areaAdded = false;
-
-    private RowSpanMgr rowSpanMgr = null;
-    private CellArray cellArray = null;
-
-    private static class CellArray {
-        public static final byte EMPTY = 0;
-        public static final byte CELLSTART = 1;
-        public static final byte CELLSPAN = 2;
-
-        private TableCell[] cells;
-        private byte[] states;
-
-        public CellArray(RowSpanMgr rsi, int numColumns) {
-            // Initialize the cell array by marking any cell positions
-            // occupied by spans from previous rows
-            cells = new TableCell[numColumns];
-            states = new byte[numColumns];
-            for (int i = 0; i < numColumns; i++) {
-                if (rsi.isSpanned(i + 1)) {
-                    cells[i] = rsi.getSpanningCell(i + 1);
-                    states[i] = CELLSPAN;
-                } else
-                    states[i] = EMPTY;
-            }
-        }
-
-        /**
-         * Return column which doesn't already contain a span or a cell
-         * If past the end or no free cells after colNum, return -1
-         * Otherwise return value >= input value.
-         */
-        int getNextFreeCell(int colNum) {
-            for (int i = colNum - 1; i < states.length; i++) {
-                if (states[i] == EMPTY)
-                    return i + 1;
-            }
-            return -1;
-        }
-
-
-        /**
-         * Return type of cell in colNum (1 based)
-         */
-        int getCellType(int colNum) {
-            if (colNum > 0 && colNum <= cells.length) {
-                return states[colNum - 1];
-            } else
-                return -1;    // probably should throw exception
-        }
-
-        /**
-         * Return cell in colNum (1 based)
-         */
-        TableCell getCell(int colNum) {
-            if (colNum > 0 && colNum <= cells.length) {
-                return cells[colNum - 1];
-            } else
-                return null;    // probably should throw exception
-        }
-
-        /**
-         * Store cell starting at cellColNum (1 based) and spanning numCols
-         * If any of the columns is already occupied, return false, else true
-         */
-        boolean storeCell(TableCell cell, int colNum, int numCols) {
-            boolean rslt = true;
-            int index = colNum - 1;
-            for (int count = 0; index < cells.length && count < numCols;
-                    count++, index++) {
-                if (cells[index] == null) {
-                    cells[index] = cell;
-                    states[index] = (count == 0) ? CELLSTART : CELLSPAN;
-                } else {
-                    rslt = false;
-                    // print a message but continue!!!
-                }
-            }
-            return rslt;
-        }
-
-        // private class EnumCells implements Enumeration {
-        // private int iNextIndex=0;
-        // private Object nextCell = null;
-        // EnumCells() {
-        // findNextCell();
-        // }
-
-        // private void findNextCell() {
-        // for (; iNextIndex < cells.length; iNextIndex++) {
-        // if (states[iNextIndex] == CELLSTART) {
-        // nextCell = cells[iNextIndex];
-        // return;
-        // }
-        // }
-        // nextCell = null;
-        // }
-
-        // public boolean hasMoreElements() {
-        // return (nextCell != null);
-        // }
-
-        // public Object nextElement() {
-        // if (nextCell != null) {
-        // Object cell = nextCell;
-        // findNextCell();
-        // return cell;
-        // }
-        // else throw new java.util.NoSuchElementException("No more cells");
-        // }
-        // }
-
-        // /**
-        // * Return an enumeration over all cells in this row
-        // * Return each element in cells whose state is CELLSTART or EMPTY?
-        // * Skip spanning elements.
-        // */
-        // Enumeration getCells() {
-        // return new EnumCells();
-        // }
-    }
-
-
-    public TableRow(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        this.name = "fo:table-row";
-    }
-
-    public void setColumns(Vector columns) {
-        this.columns = columns;
-    }
-
-    public KeepValue getKeepWithPrevious() {
-        return keepWithPrevious;
-    }
-
-    public void doSetup(Area area) throws FOPException {
-
-        // Common Accessibility Properties
-        AccessibilityProps mAccProps = propMgr.getAccessibilityProps();
-            
-        // this.properties.get("block-progression-dimension");
-
-        // Common Aural Properties
-        AuralProps mAurProps = propMgr.getAuralProps();
-
-        // Common Border, Padding, and Background Properties
-        // only background apply, border apply if border-collapse
-        // is collapse.
-        BorderAndPadding bap = propMgr.getBorderAndPadding();
-        BackgroundProps bProps = propMgr.getBackgroundProps();
-
-        // Common Relative Position Properties
-        RelativePositionProps mRelProps = propMgr.getRelativePositionProps();
-                    
-        // this.properties.get("break-before");
-        // this.properties.get("break-after");
-        // this.properties.get("id");
-        // this.properties.get("height");
-        // this.properties.get("keep-together");
-        // this.properties.get("keep-with-next");
-        // this.properties.get("keep-with-previous");
-
-
-        this.breakAfter = this.properties.get("break-after").getEnum();
-        this.backgroundColor =
-            this.properties.get("background-color").getColorType();
-
-        this.keepTogether = getKeepValue("keep-together.within-column");
-        this.keepWithNext = getKeepValue("keep-with-next.within-column");
-        this.keepWithPrevious =
-            getKeepValue("keep-with-previous.within-column");
-
-        this.id = this.properties.get("id").getString();
-        this.minHeight = this.properties.get("height").getLength().mvalue();
-        setup = true;
-    }
-
-    private KeepValue getKeepValue(String sPropName) {
-        Property p = this.properties.get(sPropName);
-        Number n = p.getNumber();
-        if (n != null)
-            return new KeepValue(KeepValue.KEEP_WITH_VALUE, n.intValue());
-        switch (p.getEnum()) {
-        case Constants.ALWAYS:
-            return new KeepValue(KeepValue.KEEP_WITH_ALWAYS, 0);
-        // break;
-        case Constants.AUTO:
-        default:
-            return new KeepValue(KeepValue.KEEP_WITH_AUTO, 0);
-        // break;
-        }
-    }
-
-    public Status layout(Area area) throws FOPException {
-        boolean configID = false;
-
-        if (this.marker == BREAK_AFTER) {
-            return new Status(Status.OK);
-        }
-
-        // Layout the first area for this FO
-        if (this.marker == START) {
-            if (!setup)
-                doSetup(area);
-
-                // Only do this once. If the row is "thrown" and we start
-                // layout over again, we can skip this.
-            if (cellArray == null) {
-                initCellArray();
-                // check to make sure this row hasn't been partially
-                // laid out yet (with an id created already)
-                area.getIDReferences().createID(id);
-                configID = true;
-            }
-
-            this.marker = 0;
-            int breakStatus = propMgr.checkBreakBefore(area);
-            if (breakStatus != Status.OK)
-                return new Status(breakStatus);
-        }
-
-        // if (marker == 0 && configID) {
-        if (marker == 0) {    // KDL: need to do this if thrown or if split?
-            // configure id
-            area.getIDReferences().configureID(id, area);
-        }
-
-        int spaceLeft = area.spaceLeft();
-
-        this.areaContainer =
-            new AreaContainer(propMgr.getFontState(area.getFontInfo()), 0, 0,
-                              area.getContentWidth(), spaceLeft,
-                              Position.RELATIVE);
-        areaContainer.foCreator = this;    // G Seshadri
-        areaContainer.setPage(area.getPage());
-
-        areaContainer.setBackgroundColor(backgroundColor);
-        areaContainer.start();
-
-        areaContainer.setAbsoluteHeight(area.getAbsoluteHeight());
-        areaContainer.setIDReferences(area.getIDReferences());
-
-        largestCellHeight = minHeight;
-
-        // Flag indicaing whether any cell didn't fit in available space
-        boolean someCellDidNotLayoutCompletely = false;
-
-        /*
-         * If it takes multiple calls to completely layout the row,
-         * we need to process all of the children (cells)
-         * not just those from the marker so that the borders
-         * will be drawn properly.
-         */
-        int offset = 0;       // Offset of each cell from table start edge
-        int iColIndex = 0;    // 1-based column index
-        Enumeration eCols = columns.elements();
-        /*
-         * Ideas: set offset on each column when they are initialized
-         * no need to calculate for each row.
-         * Pass column object to cell to get offset and width and border
-         * info if borders are "collapsed".
-         */
-
-        while (eCols.hasMoreElements()) {
-            TableCell cell;
-            ++iColIndex;
-            TableColumn tcol = (TableColumn)eCols.nextElement();
-            int colWidth = tcol.getColumnWidth();
-            if (cellArray.getCellType(iColIndex) == CellArray.CELLSTART) {
-                cell = cellArray.getCell(iColIndex);
-            } else {
-                /*
-                 * If this cell is spanned from a previous row,
-                 * and this is the last row, get the remaining height
-                 * and use it to increase maxCellHeight if necessary
-                 */
-                if (rowSpanMgr.isInLastRow(iColIndex)) {
-                    int h = rowSpanMgr.getRemainingHeight(iColIndex);
-                    if (h > largestCellHeight)
-                        largestCellHeight = h;
-                }
-                offset += colWidth;
-                continue;
-            }
-            // cell.setTableColumn(tcol);
-            cell.setStartOffset(offset);
-            offset += colWidth;
-
-
-            int rowSpan = cell.getNumRowsSpanned();
-            Status status;
-            if ((status = cell.layout(areaContainer)).isIncomplete()) {
-                if ((keepTogether.getType() == KeepValue.KEEP_WITH_ALWAYS)
-                        || (status.getCode() == Status.AREA_FULL_NONE)
-                        || rowSpan > 1) {
-                    // We will put this row into the next column/page
-                    // Note: the only time this shouldn't be honored is
-                    // if this row is at the top of the column area.
-                    // Remove spanning cells from RowSpanMgr?
-                    this.resetMarker();
-                    this.removeID(area.getIDReferences());
-                    return new Status(Status.AREA_FULL_NONE);
-                } else if (status.getCode() == Status.AREA_FULL_SOME) {
-                    /*
-                     * Row is not keep-together, cell isn't spanning
-                     * and part of it fits. We can break the cell and
-                     * the row.
-                     */
-                    someCellDidNotLayoutCompletely = true;
-                }
-            }                            // else {
-             // layout was complete for a particular cell
-            int h = cell.getHeight();    // allocation height of cell
-            if (rowSpan > 1) {           // pass cell fo or area???
-                rowSpanMgr.addRowSpan(cell, iColIndex,
-                                      cell.getNumColumnsSpanned(), h,
-                                      rowSpan);
-            } else if (h > largestCellHeight) {
-                largestCellHeight = h;
-            }
-            // }
-        }                                // end of loop over all columns/cells
-
-        // This is in case a float was composed in the cells
-        area.setMaxHeight(area.getMaxHeight() - spaceLeft
-                          + this.areaContainer.getMaxHeight());
-
-        // Only do this for "STARTCELL", ending spans are handled separately
-        // What about empty cells? Yes, we should set their height too!
-        for (int iCol = 1; iCol <= columns.size(); iCol++) {
-            if (cellArray.getCellType(iCol) == CellArray.CELLSTART
-                    && rowSpanMgr.isSpanned(iCol) == false) {
-                cellArray.getCell(iCol).setRowHeight(largestCellHeight);
-            }
-        }
-
-        // Adjust spanning row information
-        // ??? what if some cells are broken???
-        rowSpanMgr.finishRow(largestCellHeight);
-
-        area.addChild(areaContainer);
-        areaContainer.setHeight(largestCellHeight);
-        areaAdded = true;
-        areaContainer.end();
-
-        /*
-         * The method addDisplaySpace increases both the content
-         * height of the parent area (table body, head or footer) and
-         * also its "absolute height". So we don't need to do this
-         * explicitly.
-         *
-         * Note: it doesn't look from the CR as though we should take
-         * into account borders and padding on rows, only background.
-         * The exception is perhaps if the borders are "collapsed", but
-         * they should still be rendered only on cells and not on the
-         * rows themselves. (Karen Lease - 01may2001)
-         */
-        area.addDisplaySpace(largestCellHeight
-                             + areaContainer.getPaddingTop()
-                             + areaContainer.getBorderTopWidth()
-                             + areaContainer.getPaddingBottom()
-                             + areaContainer.getBorderBottomWidth());
-
-
-        // replaced by Hani Elabed 11/27/2000
-        // return new Status(Status.OK);
-
-        if (someCellDidNotLayoutCompletely) {
-            return new Status(Status.AREA_FULL_SOME);
-        } else {
-            if (rowSpanMgr.hasUnfinishedSpans()) {
-                // Ignore break after if row span!
-                return new Status(Status.KEEP_WITH_NEXT);
-            }
-            if (breakAfter == BreakAfter.PAGE) {
-                this.marker = BREAK_AFTER;
-                return new Status(Status.FORCE_PAGE_BREAK);
-            }
-
-            if (breakAfter == BreakAfter.ODD_PAGE) {
-                this.marker = BREAK_AFTER;
-                return new Status(Status.FORCE_PAGE_BREAK_ODD);
-            }
-
-            if (breakAfter == BreakAfter.EVEN_PAGE) {
-                this.marker = BREAK_AFTER;
-                return new Status(Status.FORCE_PAGE_BREAK_EVEN);
-            }
-
-            if (breakAfter == BreakAfter.COLUMN) {
-                this.marker = BREAK_AFTER;
-                return new Status(Status.FORCE_COLUMN_BREAK);
-            }
-            if (keepWithNext.getType() != KeepValue.KEEP_WITH_AUTO) {
-                return new Status(Status.KEEP_WITH_NEXT);
-            }
-            return new Status(Status.OK);
-        }
-
-    }
-
-    public int getAreaHeight() {
-        return areaContainer.getHeight();
-    }
-
-    public void removeLayout(Area area) {
-        if (areaAdded)
-            area.removeChild(areaContainer);
-        areaAdded = false;
-        this.resetMarker();
-        this.removeID(area.getIDReferences());
-    }
-
-    public void resetMarker() {
-        super.resetMarker();
-        // Just reset all the states to not laid out and fix up row spans
-    }
-
-    /**
-     * Called by parent FO to initialize information about
-     * cells started in previous rows which span into this row.
-     * The layout operation modifies rowSpanMgr
-     */
-    public void setRowSpanMgr(RowSpanMgr rowSpanMgr) {
-        this.rowSpanMgr = rowSpanMgr;
-    }
-
-    /**
-     * Before starting layout for the first time, initialize information
-     * about spanning rows, empty cells and spanning columns.
-     */
-    private void initCellArray() {
-        cellArray = new CellArray(rowSpanMgr, columns.size());
-        int colNum = 1;
-        Enumeration eCells = children.elements();
-        while (eCells.hasMoreElements()) {
-            colNum = cellArray.getNextFreeCell(colNum);
-            // If off the end, the rest of the cells had better be
-            // explicitly positioned!!! (returns -1)
-
-            TableCell cell = (TableCell)eCells.nextElement();
-            int numCols = cell.getNumColumnsSpanned();
-            int numRows = cell.getNumRowsSpanned();
-            int cellColNum = cell.getColumnNumber();
-
-            if (cellColNum == 0) {
-                // Not explicitly specified, so put in next available colummn
-                // cell.setColumnNumber(colNum);
-                // If cellColNum "off the end", this cell is in limbo!
-                if (colNum < 1) {
-                    // ERROR!!!
-                    continue;
-                } else
-                    cellColNum = colNum;
-            } else if (cellColNum > columns.size()) {
-                // Explicit specification out of range!
-                // Skip it and print an ERROR MESSAGE
-                continue;
-            }
-            // see if it fits and doesn't overwrite anything
-            if (cellColNum + numCols - 1 > columns.size()) {
-                // MESSAGE: TOO MANY COLUMNS SPANNED!
-                numCols = columns.size() - cellColNum + 1;
-            }
-            // Check for overwriting other cells (returns false)
-            if (cellArray.storeCell(cell, cellColNum, numCols) == false) {
-                // Print out some kind of warning message.
-            }
-            if (cellColNum > colNum) {
-                // Cells are initialized as empty already
-                colNum = cellColNum;
-            } else if (cellColNum < colNum) {
-                // MESSAGE ? cells out of order?
-                colNum = cellColNum;    // CR "to the letter"!
-            }
-            int cellWidth = getCellWidth(cellColNum, numCols);
-            cell.setWidth(cellWidth);
-            colNum += numCols;          // next cell in this column
-        }
-    }
-
-    // ATTENTION if startCol + numCols > number of columns in table!
-    private int getCellWidth(int startCol, int numCols) {
-        int width = 0;
-        for (int count = 0; count < numCols; count++) {
-            width += ((TableColumn)columns.elementAt(startCol + count
-                                                     - 1)).getColumnWidth();
-        }
-        return width;
-    }
-
-}
diff --git a/src/org/apache/fop/fo/flow/Wrapper.java b/src/org/apache/fop/fo/flow/Wrapper.java
deleted file mode 100644 (file)
index 9e93439..0000000
+++ /dev/null
@@ -1,48 +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.fo.flow;
-
-// FOP
-import org.apache.fop.fo.*;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.fo.properties.*;
-import org.apache.fop.layout.*;
-
-/**
- * Implementation for fo:wrapper formatting object.
- * The wrapper object serves as
- * a property holder for it's children objects.
- *
- * Content: (#PCDATA|%inline;|%block;)*
- * Properties: id
- */
-public class Wrapper extends FObjMixed {
-
-    public static class Maker extends FObj.Maker {
-        public FObj make(FObj parent,
-                         PropertyList propertyList) throws FOPException {
-            return new Wrapper(parent, propertyList);
-        }
-
-    }
-
-    public static FObj.Maker maker() {
-        return new Wrapper.Maker();
-    }
-
-    public Wrapper(FObj parent, PropertyList propertyList) {
-        super(parent, propertyList);
-        // check that this occurs inside an fo:flow
-    }
-
-    protected void addCharacters(char data[], int start, int length) {
-        FOText ft = new FOText(data, start, length, this);
-        children.addElement(ft);
-    }
-
-}