Initial revision
This commit is contained in:
parent
d305d5ca8d
commit
3c82f0a24c
43 changed files with 6536 additions and 0 deletions
205
source/org/thdl/savant/tib/Tibetan.java
Normal file
205
source/org/thdl/savant/tib/Tibetan.java
Normal file
|
@ -0,0 +1,205 @@
|
|||
package org.thdl.savant.tib;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.io.Reader;
|
||||
import java.util.List;
|
||||
import java.util.Iterator;
|
||||
import javax.swing.JTextPane;
|
||||
import javax.swing.text.*;
|
||||
import org.jdom.Document;
|
||||
import org.jdom.Element;
|
||||
import org.jdom.JDOMException;
|
||||
import org.jdom.input.SAXBuilder;
|
||||
import org.thdl.tib.text.*;
|
||||
import org.thdl.tib.input.*;
|
||||
import org.thdl.savant.*;
|
||||
|
||||
public class Tibetan implements TranscriptView
|
||||
{
|
||||
private JTextPane text = null;
|
||||
private Document xmlDoc = null;
|
||||
private StringBuffer idBuffer = null;
|
||||
private StringBuffer t1Buffer = null;
|
||||
private StringBuffer t2Buffer = null;
|
||||
private StringBuffer startBuffer = null;
|
||||
private StringBuffer endBuffer = null;
|
||||
|
||||
public Tibetan(Document xml)
|
||||
{
|
||||
process(xml);
|
||||
xmlDoc = xml;
|
||||
}
|
||||
|
||||
public Tibetan(Reader source)
|
||||
{
|
||||
try
|
||||
{
|
||||
SAXBuilder builder = new SAXBuilder();
|
||||
Document xml = builder.build(source);
|
||||
process(xml);
|
||||
xmlDoc = xml;
|
||||
}
|
||||
catch (JDOMException jdome)
|
||||
{
|
||||
jdome.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public String getTitle()
|
||||
{
|
||||
return "Tibetan";
|
||||
}
|
||||
|
||||
public void process(Document xml)
|
||||
{
|
||||
try {
|
||||
Element root = xml.getRootElement();
|
||||
List elements = root.getChildren();
|
||||
Iterator iter = elements.iterator();
|
||||
Element current = null;
|
||||
idBuffer = new StringBuffer();
|
||||
startBuffer = new StringBuffer();
|
||||
endBuffer = new StringBuffer();
|
||||
t1Buffer = new StringBuffer();
|
||||
t2Buffer = new StringBuffer();
|
||||
String thisStart, thisEnd, thisId;
|
||||
Position endPos = null;
|
||||
TibetanDocument.DuffData[] dd;
|
||||
TibetanDocument doc = new TibetanDocument(new StyleContext());
|
||||
TibetanDocument.DuffData[] space = TibetanDocument.getTibetanMachineWeb("_");
|
||||
MutableAttributeSet mas = new SimpleAttributeSet();
|
||||
StyleConstants.setForeground(mas, Color.blue);
|
||||
|
||||
int counter = 0;
|
||||
int wherestart = 0;
|
||||
|
||||
if (iter.hasNext())
|
||||
current = (Element)iter.next();
|
||||
|
||||
while (current.getName().equals("spkr"))
|
||||
{
|
||||
dd = TibetanDocument.getTibetanMachineWeb(current.getAttributeValue("who"));
|
||||
if (endPos == null)
|
||||
{
|
||||
doc.insertDuff(0, dd);
|
||||
endPos = doc.createPosition(doc.getLength());
|
||||
doc.setCharacterAttributes(0, endPos.getOffset(), mas, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
wherestart = endPos.getOffset();
|
||||
doc.insertDuff(endPos.getOffset(), dd);
|
||||
doc.setCharacterAttributes(wherestart, endPos.getOffset()-wherestart, mas, false);
|
||||
}
|
||||
|
||||
if (iter.hasNext())
|
||||
current = (org.jdom.Element)iter.next();
|
||||
}
|
||||
|
||||
if (endPos == null)
|
||||
{
|
||||
doc.insertDuff(0, space);
|
||||
endPos = doc.createPosition(doc.getLength());
|
||||
} else {
|
||||
doc.insertDuff(endPos.getOffset(), space);
|
||||
}
|
||||
|
||||
wherestart = endPos.getOffset();
|
||||
dd = TibetanDocument.getTibetanMachineWeb(current.getText()); //from +"\n"
|
||||
doc.insertDuff(endPos.getOffset(), dd);
|
||||
startBuffer.append(String.valueOf(wherestart)+",");
|
||||
thisEnd = String.valueOf(endPos.getOffset());
|
||||
endBuffer.append(thisEnd);
|
||||
endBuffer.append(',');
|
||||
idBuffer.append("s0,");
|
||||
t1Buffer.append(current.getAttributeValue("start"));
|
||||
t1Buffer.append(',');
|
||||
t2Buffer.append(current.getAttributeValue("end"));
|
||||
t2Buffer.append(',');
|
||||
|
||||
while (iter.hasNext())
|
||||
{
|
||||
current = (Element)iter.next();
|
||||
|
||||
while (current.getName().equals("spkr"))
|
||||
{
|
||||
doc.insertString(endPos.getOffset(), "\n", null);
|
||||
dd = TibetanDocument.getTibetanMachineWeb(current.getAttributeValue("who")); //from +"\n"
|
||||
wherestart = endPos.getOffset();
|
||||
doc.insertDuff(endPos.getOffset(), dd);
|
||||
doc.setCharacterAttributes(wherestart, endPos.getOffset()-wherestart, mas, false);
|
||||
if (iter.hasNext())
|
||||
current = (org.jdom.Element)iter.next();
|
||||
}
|
||||
|
||||
doc.insertDuff(endPos.getOffset(), space);
|
||||
counter++;
|
||||
dd = TibetanDocument.getTibetanMachineWeb(current.getText()); //from "+\n"
|
||||
thisStart = String.valueOf(endPos.getOffset());
|
||||
startBuffer.append(thisStart);
|
||||
startBuffer.append(',');
|
||||
doc.insertDuff(endPos.getOffset(), dd);
|
||||
thisEnd = String.valueOf(endPos.getOffset());
|
||||
endBuffer.append(thisEnd);
|
||||
endBuffer.append(',');
|
||||
thisId = "s"+String.valueOf(counter);
|
||||
idBuffer.append(thisId);
|
||||
idBuffer.append(',');
|
||||
t1Buffer.append(current.getAttributeValue("start"));
|
||||
t1Buffer.append(',');
|
||||
t2Buffer.append(current.getAttributeValue("end"));
|
||||
t2Buffer.append(',');
|
||||
}
|
||||
|
||||
text = new JTextPane(doc);
|
||||
idBuffer.toString();
|
||||
t1Buffer.toString();
|
||||
t2Buffer.toString();
|
||||
startBuffer.toString();
|
||||
endBuffer.toString();
|
||||
}
|
||||
catch (BadLocationException ble)
|
||||
{
|
||||
ble.printStackTrace();
|
||||
}
|
||||
catch (InvalidWylieException iwe)
|
||||
{
|
||||
iwe.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public JTextComponent getTextComponent()
|
||||
{
|
||||
return text;
|
||||
}
|
||||
|
||||
public Document getDocument()
|
||||
{
|
||||
return xmlDoc;
|
||||
}
|
||||
|
||||
public String getIDs()
|
||||
{
|
||||
return idBuffer.toString();
|
||||
}
|
||||
|
||||
public String getT1s()
|
||||
{
|
||||
return t1Buffer.toString();
|
||||
}
|
||||
|
||||
public String getT2s()
|
||||
{
|
||||
return t2Buffer.toString();
|
||||
}
|
||||
|
||||
public String getStartOffsets()
|
||||
{
|
||||
return startBuffer.toString();
|
||||
}
|
||||
|
||||
public String getEndOffsets()
|
||||
{
|
||||
return endBuffer.toString();
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue