1   /**
2   This package contains the BookDataDisplay interface which is designed to
3   allow GUI components to choose between the methods they use to display BookData
4   objects.
5   
6   <br/>
7   There are several implementation of this interface in sub-packages.
8   <ul>
9   <li>textpane - A simple unscrolled implementation that uses a JDK HTML widget.</li>
10  <li>proxy - A handy base class to simplify adding features to another
11      implementation of BookDataDisplay</li>
12  <li>scrolled - Builds on proxy to scroll child BookDataDisplays. Generally the
13      child will be a textpane implementation.</li>
14  <li>tab - Splits a display into a number of tabs so arbitarily large pasasges
15      can be viewed without scrolling or memory problems.</li>
16  <li>splitlist - presents the parts of a passage as a list from which individual
17      keys can be selected for viewing.</li>
18  </ul>
19  
20  
21  <br/>
22  We have spent some time investigating alternatives to the JDK HTML widget.
23  The requirements were:
24  <ul>
25  <li>work using OSIS input</li>
26  <li>be easily understood for the developer (which fairly much means HTML)</li>
27  <li>work over webstart</li>
28  <li>be freely re-distributable</li>
29  <li>allow some DHTML like flexibility</li>
30  </ul>
31  
32  <p>
33  <b>JRex (Embed Mozilla)</b><br/>
34  Very good html displayer, but probably very complex to get working and
35  installed, especially over WebStart. JNI+webstart anyone?
36  See <a href="http://jrex.mozdev.org/index.html">mozdev</a>.
37  </p>
38  
39  <p>
40  <b>Jazilla (Mozilla re-write in Java)</b><br/>
41  Interesting project, but one that seems more interested in XUL than the Java
42  renderer, proceeding slowly.
43  See <a href="http://jazilla.mcbridematt.sniperhq.net/">their home page</a>.
44  </p>
45  
46  <p>
47  <b>JXWB (OSS Java Browser)</b><br/>
48  Commercial software made free. Works well with Swing (includes customized
49  implementations of javax.swing.text.Document and javax.swing.text.EditorKit)
50  Things have moved on quite a bit recently.
51  See <a href="http://sourceforge.net/projects/jxwb">JXWB on SourceForge</a>
52  </p>
53  
54  <p>
55  <b>SWT Browser Component</b><br/>
56  Don't think we could easily embed an SWT component in swing (since SWT is
57  heavyweight in AWT speak) and I don't particularly want to re-write the whole
58  app in SWT. However there are 2 projects to allow use of SWT from a swing API.
59  <a ref="http://swingwt.sourceforge.net/">SwingWT</a> is a swing-like proxy to
60  SWT and <a href="http://chrriis.brainlex.com/projects/mastercl/">MasterCL</a>
61  will allow you to dynamically swap package names to make the whole of swing use
62  SWT dynamically.
63  It is possible to use SWT from webstart -
64  <a href="http://irate.sf.net/">irate radio</a> does it although their build
65  scripts are not very helpful.
66  </p>
67  
68  <p>
69  <b>FOP -&gt; PNG</b><br/>
70  FOP is XSL:FO renderer that can create PDFs and various graphics files.
71  Could give very slick output, but not at all dynamic, quite slow and FO is not
72  easy to use. Probably not one of the best ideas for normal rendering.
73  See <a href="http://xml.apache.org/fop/index.html">FOP at Apache</a>.
74  </p>
75  
76  <p>
77  <b>Dynamic Swing GUI</b><br/>
78  There are plenty of XML-&gt;Swing converters. JDK 1.4 even includes one.
79  Maybe we could write a OSIS-&gt;SwingXML converter in XSL and then render OSIS
80  text in swing components. Could be very fancy. XSL could be complex.
81  </p>
82   * 
83   */
84  package org.crosswire.bibledesktop.display;
85