/* Create the tree model with a root node. The latter is
* invisible but it must be present because a tree model
* always needs a root. */
- rootNode = new DefaultMutableTreeNode("POIFS");
+ rootNode = new DefaultMutableTreeNode("POI Filesystems");
DefaultTreeModel treeModel = new DefaultTreeModel(rootNode);
/* Create the tree UI element. */
getContentPane().add(new JScrollPane(treeUI));
/* Add the POI filesystems to the tree. */
+ int displayedFiles = 0;
for (int i = 0; i < args.length; i++)
{
final String filename = args[i];
POIFSReader r = new POIFSReader();
r.registerListener(new TreeReaderListener(filename, rootNode));
r.read(new FileInputStream(filename));
+ displayedFiles++;
}
catch (IOException ex)
{
}
}
+ /* Exit if there is no file to display (none specified or only
+ * files with problems). */
+ if (displayedFiles == 0)
+ {
+ System.out.println("No POI filesystem(s) to display.");
+ System.exit(0);
+ }
+
/* Make the tree UI element visible. */
treeUI.setRootVisible(true);
treeUI.setShowsRootHandles(true);
new PropertySetDescriptorRenderer());
treeUI.setCellRenderer(etcr);
setSize(600, 450);
- setTitle("POI Browser 0.10");
+ setTitle("POI Browser 0.06");
setVisible(true);
}
{
this.filename = filename;
this.rootNode = rootNode;
- pathToNode = new HashMap(15);
+ pathToNode = new HashMap(15); // Should be a reasonable guess.
}
<menu-item label="POIFS" href="poifs/index.html"/>
<menu-item label="HSSF" href="hssf/index.html"/>
<menu-item label="HDF" href="hdf/index.html"/>
+ <menu-item label="HPSF" href="hpsf/index.html"/>
<menu-item label="POI-Utils" href="utils/index.html"/>
</menu>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE book PUBLIC "-//APACHE//DTD Cocoon Documentation Book V1.0//EN" "../dtd/book-cocoon-v10.dtd">
+
+<book software="POI Project"
+ title="HPSF"
+ copyright="@year@ POI Project">
+
+ <menu label="Navigation">
+ <menu-item label="Main" href="../index.html"/>
+ <menu-item label="How To" href="how-to.html"/>
+ <menu-item label="Internals" href="internals.html"/>
+ </menu>
+
+</book>
+
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.0//EN" "../dtd/document-v10.dtd">
+<document>
+ <header>
+ <title>HPSF HOW-TO</title>
+ <authors>
+ <person name="Rainer Klute" email="klute@rainer-klute.de"/>
+ </authors>
+ </header>
+ <body>
+ <s1 title="How To Use the HPSF APIs">
+ <p class="todo">TODO: This documentation is still to be written. For the
+ time being, please see the API documentation (javadocs) of the
+ <code>org.apache.poi.hpsf</code> package.</p>
+ </s1>
+ </body>
+</document>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.0//EN" "../dtd/document-v10.dtd">
+<document>
+ <header>
+ <title>HPSF (Horrible Property Set Format)</title>
+ <subtitle>Overview</subtitle>
+ <authors>
+ <person name="Rainer Klute" email="klute@rainer-klute.de"/>
+ </authors>
+ </header>
+ <body>
+ <s1 title="Overview">
+ <p class="todo">TODO: This documentation is still to be written.</p>
+ </s1>
+ </body>
+</document>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.0//EN" "../dtd/document-v10.dtd">
+<document>
+ <header>
+ <title>HPSF Internals</title>
+ <authors>
+ <person name="Rainer Klute" email="klute@rainer-klute.de"/>
+ </authors>
+ </header>
+ <body>
+ <s1 title="HPSF Internals">
+ <p class="todo">TODO: This documentation is still to be written. For the
+ time being, please see <link
+ href="http://www.rainer-klute.de/~klute/Software/poibrowser/doc/HPSF-Description.html">http://www.rainer-klute.de/~klute/Software/poibrowser/doc/HPSF-Description.html</link>.</p>
+ </s1>
+ </body>
+</document>
XLS format; and <link href="http://jakarta.apache.org/lucene">Lucene</link> for which we'll soon have file
format interpretors. When practical, we donate components directly to those projects for POI-enabling them.
</p>
- <s2 title="Why/when would I use POI">
+ <s2 title="Why/when would I use POI?">
<p>
We'll tackle this on a component level. POI refers to the whole project.
</p>
<s1 title="Components To Date">
<s2 title="Overview">
- A common misconception is that POI writes Excel files. POI is the name of the project. POI contains several
+ <p>A common misconception is that POI writes Excel files. POI is the name of the project. POI contains several
components, one of which, HSSF, writes Excel files. The following are components of the entire POI project
- and a brief summary of their purpose.
+ and a brief summary of their purpose.</p>
</s2>
- <s2 title="POIFS">
- POIFS is the oldest and most stable part of the project. It is our port of the OLE 2 Compound Document Format to
+ <s2 title="POIFS (POI Filesystem)">
+ <p>POIFS is the oldest and most stable part of the project. It is our port of the OLE 2 Compound Document Format to
pure Java. It supports both read and write functionality. All of our components ultimately rely on it by
- definition. Please see <link href="./poifs/index.html">the POIFS project page</link> for more information.
+ definition. Please see <link href="./poifs/index.html">the POIFS project page</link> for more information.</p>
</s2>
- <s2 title="HSSF">
- HSSF is our port of the Microsoft Excel 97(-2002) file format (BIFF8) to pure Java. It supports read and write
- capability. Please see <link href="./hssf/index.html">the HSSF project page</link> for more information.
+ <s2 title="HSSF (Horrible Spreadsheet Format)">
+ <p>HSSF is our port of the Microsoft Excel 97(-2002) file format (BIFF8) to pure Java. It supports read and write
+ capability. Please see <link href="./hssf/index.html">the HSSF project page</link> for more information.</p>
</s2>
- <s2 title="HDF">
- HDF is our port of the Microsoft Word 97 file format to pure Java. It supports read and write capability.
+ <s2 title="HDF (Horrible Document Format)">
+ <p>HDF is our port of the Microsoft Word 97 file format to pure Java. It supports read and write capability.
Please see <link href="./hdf/index.html">the HDF project page for more information</link>. This component is
- in the early stages of design. Jump in!
+ in the early stages of design. Jump in!</p>
+ </s2>
+ <s2 title="HPSF (Horrible Property Set Format)">
+ <p>HPSF is our port of the OLE 2 property set format to pure
+ Java. Property sets are mostly use to store a document's properties
+ (title, author, date of last modification etc.), but they can be used
+ for application-specific purposes as well. Currently HPSF supports
+ read functionality only. Please see <link
+ href="./hpsf/index.html">the HPSF project page</link> for more
+ information.</p>
</s2>
</s1>
<s1 title="What happened to the HSSF Serializer?">
- The HSSF Serializer, which was part of our 1.0 release and last builds on
+ <p>The HSSF Serializer, which was part of our 1.0 release and last builds on
<link href="http://www.sourceforge.net/projects/poi">Sourceforge</link>, has been donated to the Cocoon project. We're
- currently in the process of porting it over.
- </s1>
+ currently in the process of porting it over.</p>
+ </s1>
<s1 title="Contributing ">
<p>
</p>
</s2>
+ <s2 title="HPSF">
+ <p>
+ <link href="hpsf/index.html">HPSF</link> is the set of APIs
+ for reading property sets using (only) Java.
+ </p>
+ </s2>
+
<s2 title="POI-Utils">
<p>
<link href="utils/index.html">POI-Utils</link> are general purpose artifacts
<ul>
<li>Glen Stampoultzis (glens at apache.org)</li>
<li>Nicola Ken Barozzi (barozzi at nicolaken dot com)</li>
+ <li>Rainer Klute (klute at rainer-klute dot de)</li>
</ul>
</s2>
</s1>