diff options
Diffstat (limited to 'src/org/apache/fop/mif/MIFFile.java')
-rw-r--r-- | src/org/apache/fop/mif/MIFFile.java | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/src/org/apache/fop/mif/MIFFile.java b/src/org/apache/fop/mif/MIFFile.java new file mode 100644 index 000000000..19cbc9cc0 --- /dev/null +++ b/src/org/apache/fop/mif/MIFFile.java @@ -0,0 +1,124 @@ +/* + * $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.mif; + +// Java +import java.io.*; +import java.util.*; + +/** + * The MIF File. + * This organises the MIF File and the corresponding elements. + * The catalog elements are used to setup the resources that + * are referenced. + */ +public class MIFFile extends MIFElement { + + protected MIFElement colorCatalog = null; + protected PGFElement pgfCatalog = null; + protected MIFElement fontCatalog = null; + protected RulingElement rulingCatalog = null; + protected MIFElement tblCatalog = null; + protected MIFElement views = null; + protected MIFElement variableFormats = null; + protected MIFElement xRefFormats = null; + protected MIFElement document = null; + protected MIFElement bookComponent = null; + protected MIFElement initialAutoNums = null; + protected MIFElement aFrames = null; + protected MIFElement tbls = null; + protected ArrayList pages = new ArrayList(); + protected ArrayList textFlows = null; + + + /** + */ + public MIFFile() { + super(""); + valueElements = new ArrayList(); + setup(); + } + + /** + * Do some setup. + * Currently adds some dummy values to the resources. + */ + protected void setup() { + MIFElement unit = new MIFElement("Units"); + unit.setValue("Ucm"); + addElement(unit); + + colorCatalog = new MIFElement("ColorCatalog"); + MIFElement color = new MIFElement("Color"); + MIFElement prop = new MIFElement("ColorTag"); + prop.setValue("`Black'"); + color.addElement(prop); + prop = new MIFElement("ColorCyan"); + prop.setValue("0.000000"); + color.addElement(prop); + + prop = new MIFElement("ColorMagenta"); + prop.setValue("0.000000"); + color.addElement(prop); + prop = new MIFElement("ColorYellow"); + prop.setValue("0.000000"); + color.addElement(prop); + prop = new MIFElement("ColorBlack"); + prop.setValue("100.000000"); + color.addElement(prop); + prop = new MIFElement("ColorAttribute"); + prop.setValue("ColorIsBlack"); + color.addElement(prop); + prop = new MIFElement("ColorAttribute"); + prop.setValue("ColorIsReserved"); + color.addElement(prop); + color.finish(true); + + colorCatalog.addElement(color); + addElement(colorCatalog); + + pgfCatalog = new PGFElement(); + pgfCatalog.lookupElement(null); + addElement(pgfCatalog); + + rulingCatalog = new RulingElement(); + rulingCatalog.lookupElement(null); + addElement(rulingCatalog); + + } + + public void output(OutputStream os) throws IOException { + if(finished) return; + + if(!started) { + os.write(("<MIFFile 5.00> # Generated by FOP\n"/* + getVersion()*/).getBytes()); + started = true; + } + boolean done = true; + + for(Iterator iter = valueElements.iterator(); iter.hasNext(); ) { + MIFElement el = (MIFElement)iter.next(); + boolean d = el.output(os, 0); + if(d) { + iter.remove(); + } else { + done = false; + break; + } + } + if(done && finish) { + os.write(("# end of MIFFile").getBytes()); + } + } + + public void addPage(MIFElement p) { + pages.add(p); + addElement(p); + } +} + |