diff --git a/source/org/thdl/tib/text/TibetanQTText.java b/source/org/thdl/tib/text/TibetanQTText.java index 325b122..4c539f6 100644 --- a/source/org/thdl/tib/text/TibetanQTText.java +++ b/source/org/thdl/tib/text/TibetanQTText.java @@ -1,171 +1,189 @@ -package org.thdl.tib.text; - -import java.util.*; -import org.w3c.dom.*; - -public class TibetanQTText { - private static String tibFontSize = "28"; - private Map lines; - private Map times; - int id; - - public TibetanQTText() { - lines = new HashMap(); - times = new TreeMap(); - id = 0; - } - - public void addLine(String wylie, String t1, String t2) { - id++; - String lineID = String.valueOf(id); - lines.put(lineID, wylie); - - try { - Float startTime = new Float(t1); - if (!times.containsKey(startTime)) - times.put(startTime, lineID+","); - else { - String val = (String)times.get(startTime); - val += lineID+","; - times.put(startTime, val); - } - - Float stopTime = new Float(t2); - if (!times.containsKey(stopTime)) - times.put(stopTime, lineID+","); - else { - String val = (String)times.get(stopTime); - val += lineID+","; - times.put(stopTime, val); - } - } - catch (NumberFormatException nfe) { - } - - } - - public void organizeLines() { - List line_list = new ArrayList(); - - Iterator iter = times.keySet().iterator(); - while (iter.hasNext()) { - Float this_time = (Float)iter.next(); - String these_lines = (String)times.get(this_time); - - StringTokenizer sTok = new StringTokenizer(these_lines,","); - while (sTok.hasMoreTokens()) { - String lineID = sTok.nextToken(); - if (line_list.contains(lineID)) - line_list.remove(lineID); - else - line_list.add(lineID); - } - - StringBuffer sb = new StringBuffer(); - Iterator line_list_iter = line_list.iterator(); - while (line_list_iter.hasNext()) { - String lineID = (String)line_list_iter.next(); - sb.append(lineID); - sb.append(','); - } - - times.put(this_time, sb.toString()); - } - } - - public String getQTTextForLines() { - StringBuffer sb = new StringBuffer(); - - Iterator iter = times.keySet().iterator(); - while (iter.hasNext()) { - Float this_time = (Float)iter.next(); - sb.append(getQTTimeTag(String.valueOf(this_time))); - String these_lines = (String)times.get(this_time); - - StringTokenizer sTok = new StringTokenizer(these_lines,","); - while (sTok.hasMoreTokens()) { - String lineID = sTok.nextToken(); - String wylie = (String)lines.get(lineID); - sb.append(getQTText(wylie)); - sb.append('\n'); - } - } - - return sb.toString(); - } - - public static String getQTHeader() { - return "{QTtext}{plain}{anti-alias:off}{size:28}{justify:left}{timeScale:1000}{width:320}{height:120}{timeStamps:absolute}{language:0}{textEncoding:0}\n"; - } - - public static String getQTTimeTag(String t) { - StringBuffer sb = new StringBuffer(); - sb.append('['); - sb.append(t); - sb.append(']'); - return sb.toString(); - } - - public static String getQTText(String wylie) { - try { - return getQTText(TibetanDocument.getTibetanMachineWeb(wylie)); - } - catch (InvalidWylieException ive) { - return null; - } - } - - public static String getQTText(TibetanDocument.DuffData[] duffData) { - StringBuffer qtBuffer = new StringBuffer(); - qtBuffer.append("{size:" + tibFontSize + "}"); - - for (int i=0; i