Added the initial version of Tibbibl, which Nathaniel Garson of UVa
e-mailed to me. Tibbibl is an editor for XML-based bibliographies of Tibetan texts. All I did was change the package from org.thdl.xml to org.thdl.tib.bibl and add boilerplate; no changes to Than's code were made. Tibbibl features a diacritic input tool which Jskad might want to swipe.
This commit is contained in:
parent
32a08c06c3
commit
72ee4fc7d2
28 changed files with 10248 additions and 3 deletions
103
source/org/thdl/tib/bibl/TTFileView.java
Normal file
103
source/org/thdl/tib/bibl/TTFileView.java
Normal file
|
@ -0,0 +1,103 @@
|
|||
/*
|
||||
The contents of this file are subject to the THDL Open Community License
|
||||
Version 1.0 (the "License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License on the THDL web site
|
||||
(http://www.thdl.org/).
|
||||
|
||||
Software distributed under the License is distributed on an "AS IS" basis,
|
||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
License for the specific terms governing rights and limitations under the
|
||||
License.
|
||||
|
||||
The Initial Developer of this software is the Tibetan and Himalayan Digital
|
||||
Library (THDL). Portions created by the THDL are Copyright 2001-2003 THDL.
|
||||
All Rights Reserved.
|
||||
|
||||
Contributor(s): ______________________________________.
|
||||
*/
|
||||
|
||||
package org.thdl.tib.bibl;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
import javax.swing.*;
|
||||
import javax.swing.filechooser.*;
|
||||
import org.jdom.*;
|
||||
import org.jdom.input.*;
|
||||
import org.jdom.output.*;
|
||||
//import org.thdl.tib.bibl.shared.*;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* TTFileView test to see if a file is an .xml file and if so, assumes it's a Tibbibl
|
||||
* and searches for the first <title> element and sets the file's description to that.
|
||||
* It then uses this description for the name of the text by overriding the {@link #getName} function.
|
||||
* This is used in for the {@link javax.swing.JFileChooser} in <code>FileAction</code> so that
|
||||
* when the open-file window appears it lists the text names instead of the file names.
|
||||
* </p>
|
||||
*
|
||||
* @author Than Garson, Tibetan and Himalayan Digital Library
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class TTFileView extends FileView implements TibConstants
|
||||
{
|
||||
private Hashtable fileDescs = new Hashtable(5);
|
||||
private XMLReader docHandler = new XMLReader();
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Overrides the ancestor's--{@link javax.swing.JFileChooser.FileView}--getName() function
|
||||
* so that it returns the text title as the name, if it is an XML file. This has the
|
||||
* effect of presenting a list of text names in the open dialog rather than their less
|
||||
* comprehensible file names.
|
||||
* </p>
|
||||
*
|
||||
* @param fl <code>File</code> whose name is requested.
|
||||
* @return <code>String</code> the description of the file which has been set to
|
||||
* the text title if it is an XML file.
|
||||
*
|
||||
*/
|
||||
public String getName(File fl) {
|
||||
if(getDescription(fl) == null && fl.getName().indexOf(".xml")>-1)
|
||||
putDescription(fl);
|
||||
return getDescription(fl);
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Adds a description to the file, if the file is an XML file and the <code>docHandler</code>,
|
||||
* that is an {@link XMLReader}, successfully processes the document and returns a {@link TibDoc}.
|
||||
* Furthermore, it must find a <title> element (the first in the document) with some text.
|
||||
* If all these conditions are met, the description of the file is set to the text of the title
|
||||
* element. Otherwise, the description is set to <code>null</code>.
|
||||
* </p>
|
||||
*/
|
||||
public void putDescription(File fl) {
|
||||
String fileDescription;
|
||||
if(docHandler.setDoc(fl))
|
||||
{
|
||||
try {
|
||||
org.jdom.Element td = docHandler.getRoot();
|
||||
org.jdom.Element th = td.getChild(HEAD).getChild(TITLE);
|
||||
fileDescription = th.getText();
|
||||
} catch (NullPointerException npe) {
|
||||
fileDescription = null;}
|
||||
} else {
|
||||
fileDescription = null;
|
||||
}
|
||||
if(fileDescription != null)
|
||||
fileDescs.put(fl,fileDescription.trim());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a human readable description of the file.
|
||||
*
|
||||
* @see FileView#getDescription
|
||||
*/
|
||||
public String getDescription(File f) {
|
||||
return (String) fileDescs.get(f);
|
||||
};
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue