changed related to adding the ../dictionary branch

This commit is contained in:
micha3lp 2006-08-26 01:39:37 +00:00
parent 81dccdb317
commit 6f87bbd844
3 changed files with 106 additions and 78 deletions

View file

@ -18,6 +18,13 @@ import javax.swing.event.ListSelectionListener ;
import javax.swing.event.ListSelectionEvent ; import javax.swing.event.ListSelectionEvent ;
import java.util.concurrent.locks.ReentrantLock ; import java.util.concurrent.locks.ReentrantLock ;
import java.text.StringCharacterIterator ; import java.text.StringCharacterIterator ;
import org.thdl.tib.dictionary.TextBody ;
import org.thdl.tib.dictionary.DictionaryEntry ;
import org.thdl.tib.dictionary.DictionaryEntries ;
import org.thdl.tib.dictionary.DictionaryEntryDefinition ;
import org.thdl.tib.dictionary.DictionaryEntryDefinitions ;
import org.thdl.tib.dictionary.Phonetics ;
import java.util.Iterator ;
class DictionaryFrame extends JFrame implements ListSelectionListener class DictionaryFrame extends JFrame implements ListSelectionListener
{ {
@ -270,7 +277,7 @@ class DictionaryFrame extends JFrame implements ListSelectionListener
* @param startPos * @param startPos
* @param endPos - location of the text in the actual document being edited * @param endPos - location of the text in the actual document being edited
*/ */
public void setOriginal ( String text, DefaultStyledDocument realDoc, int startPos, int endPos ) private void setOriginal ( String text, DefaultStyledDocument realDoc, int startPos, int endPos )
{ {
AbstractDocument doc = (AbstractDocument)original.getDocument () ; AbstractDocument doc = (AbstractDocument)original.getDocument () ;
@ -305,7 +312,7 @@ class DictionaryFrame extends JFrame implements ListSelectionListener
/** /**
* set the pronounciation field * set the pronounciation field
*/ */
public void setPronounciation ( String text ) private void setPronounciation ( String text )
{ {
// //
// set the pronounciation field // set the pronounciation field
@ -318,19 +325,19 @@ class DictionaryFrame extends JFrame implements ListSelectionListener
* *
* @param text - description as retrieved form TibetanScanner derived objs * @param text - description as retrieved form TibetanScanner derived objs
*/ */
public void addDescription ( String text ) private void addDescription ( String key, String desc )
{ {
// //
// add the keyword to entryList. we assume the keyword is anything in the // add the keyword to entryList. we assume the keyword is anything in the
// dictionary entry that precedes the first dash // dictionary entry that precedes the first dash
// //
text = handleSanskrit ( text ) ; desc = handleSanskrit ( desc ) ;
listLock.lock () ; listLock.lock () ;
try try
{ {
Document doc = description.getDocument () ; Document doc = description.getDocument () ;
try try
@ -342,9 +349,8 @@ class DictionaryFrame extends JFrame implements ListSelectionListener
len = doc.getLength () ; len = doc.getLength () ;
} }
int dashIndex = text.indexOf ( "-" ) ; String keyword = key ;
String keyword = text.substring ( 0, dashIndex - 1 ) ; String entry = desc ;
String entry = text.substring ( dashIndex + 1 ) ;
// //
// add keyword to the list box // add keyword to the list box
@ -358,7 +364,7 @@ class DictionaryFrame extends JFrame implements ListSelectionListener
// //
// add entry to the list box // add entry to the list box
// //
doc.insertString ( len, keyword, attrSet ) ; doc.insertString ( len, keyword + "\n" , attrSet ) ;
len = doc.getLength () ; len = doc.getLength () ;
StyleConstants.setBold ( attrSet, true ) ; StyleConstants.setBold ( attrSet, true ) ;
@ -368,13 +374,12 @@ class DictionaryFrame extends JFrame implements ListSelectionListener
catch ( Exception e ) catch ( Exception e )
{ {
} }
} }
finally finally
{ {
listLock.unlock () ; listLock.unlock () ;
} }
} }
/** /**
* called when entryList selection changes * called when entryList selection changes
*/ */
@ -419,6 +424,50 @@ class DictionaryFrame extends JFrame implements ListSelectionListener
} }
} }
/**
* setData
*
*/
public void setData ( DictionaryEntries de, DefaultStyledDocument doc, int startPos, int endPos )
{
// TODO
String originalText = "" ;
String pronounciationText = "" ;
Iterator it = de.iterator () ;
while ( it.hasNext () )
{
DictionaryEntry entry = (DictionaryEntry)it.next () ;
if ( originalText.length () > 0 )
originalText += " " ;
if ( pronounciationText.length () > 0 )
pronounciationText += " " ;
originalText += entry.getKeyword ().getWylie () ;
pronounciationText += Phonetics.standardToLocalized ( Phonetics.THDL_ENGLISH, entry.getPhonetic () ) ;
String desc = entry.getKeyword () + "\n" ;
String defString = "" ;
DictionaryEntryDefinitions defs = entry.getDefinitions () ;
Iterator defIt = defs.iterator () ;
while ( defIt.hasNext () )
{
DictionaryEntryDefinition def = (DictionaryEntryDefinition) defIt.next () ;
defString += def.toString () ;
defString += "\n" ;
}
addDescription ( entry.getKeyword ().getWylie (), defString ) ;
}
setOriginal ( originalText, doc, startPos, endPos ) ;
setPronounciation ( pronounciationText ) ;
}
/** /**
* gotoList * gotoList
* force the focus to the entry list box * force the focus to the entry list box
@ -569,6 +618,7 @@ class DictionaryFrame extends JFrame implements ListSelectionListener
word = word.replaceAll ( "R", "r\u0323" ) ; word = word.replaceAll ( "R", "r\u0323" ) ;
word = word.replaceAll ( "L", "l\u0323" ) ; word = word.replaceAll ( "L", "l\u0323" ) ;
word = word.replaceAll ( "z", "s\u0301" ) ; word = word.replaceAll ( "z", "s\u0301" ) ;
word = word.replaceAll ( "G", "s\u0303" ) ;
} }
return word ; return word ;

View file

@ -85,6 +85,10 @@ import org.thdl.tib.input.SettingsServiceProvider;
import org.thdl.tib.input.DictionaryLoadState; import org.thdl.tib.input.DictionaryLoadState;
import java.util.Observable ; import java.util.Observable ;
import org.thdl.tib.input.GlobalResourceHolder ; import org.thdl.tib.input.GlobalResourceHolder ;
import org.thdl.tib.dictionary.TextBody ;
import org.thdl.tib.dictionary.SimpleTextBody ;
import org.thdl.tib.dictionary.DictionaryEntries ;
import org.thdl.tib.dictionary.DictionaryInterface ;
/** /**
@ -2048,45 +2052,19 @@ public void paste(int offset)
// //
// collect the text the good way // collect the text the good way
// //
boolean [] noSuch = new boolean [] { false } ; boolean [] noSuch = new boolean [] { false } ;
word = doc.getWylie ( startPos, endPos+1, noSuch ) ; word = doc.getWylie ( startPos, endPos+1, noSuch ) ;
word = word.replaceAll ( "[\\/\\_\\*]", " " ) ;
TextBody tb = SimpleTextBody.fromWylie ( word ) ;
DictionaryInterface dict = GlobalResourceHolder.getDictionary () ;
DictionaryEntries entries = dict.lookup ( tb ) ;
// dictFrame.reset () ;
// show dictionary data dictFrame.setData ( entries, doc, startPos, endPos ) ;
// dictFrame.setVisible ( true ) ;
if ( word.length () > 0 ) dictFrame.requestFocusInWindow () ;
{ dictFrame.gotoList () ;
try
{
dictFrame.reset () ;
dictFrame.setOriginal ( word, doc, startPos, endPos ) ;
dictFrame.setPronounciation ( pronounciation.process ( word ) ) ;
}
catch ( Exception e )
{
// TODO
}
TibetanScanner scanner = GlobalResourceHolder.getTibetanScanner () ;
if ( null != scanner )
{
scanner.scanBody ( word ) ;
scanner.finishUp () ;
Word [] words = scanner.getWordArray () ;
for ( int i = 0; i < words.length ; i++ )
{
dictFrame.addDescription ( words [i].toString () ) ;
}
scanner.clearTokens () ;
dictFrame.setVisible ( true ) ;
dictFrame.requestFocusInWindow () ;
dictFrame.gotoList () ;
}
}
} }
private void initDictionarySupport ( Object frame ) private void initDictionarySupport ( Object frame )

View file

@ -13,6 +13,8 @@ import org.thdl.tib.scanner.Word ;
import org.thdl.tib.input.SettingsServiceProvider ; import org.thdl.tib.input.SettingsServiceProvider ;
import org.thdl.tib.input.DictionaryLoadState ; import org.thdl.tib.input.DictionaryLoadState ;
import org.thdl.tib.input.DictionarySettings ; import org.thdl.tib.input.DictionarySettings ;
import org.thdl.tib.dictionary.DictionaryInterface ;
import org.thdl.tib.dictionary.ScannerBasedDictionary ;
import java.awt.GraphicsEnvironment ; import java.awt.GraphicsEnvironment ;
import java.awt.Font ; import java.awt.Font ;
@ -32,7 +34,6 @@ public class GlobalResourceHolder
private static Font baseTMWFont [] = null ; private static Font baseTMWFont [] = null ;
private static Font derivedTMWFont [] = null ; private static Font derivedTMWFont [] = null ;
private static HashMap nameToNumber = null ; private static HashMap nameToNumber = null ;
private static TibetanScanner tibetanScanner = null ;
private static SettingsServiceProvider settingsServiceProvider ; private static SettingsServiceProvider settingsServiceProvider ;
private static DictionarySettings dictionarySettings = null ; private static DictionarySettings dictionarySettings = null ;
@ -40,6 +41,8 @@ public class GlobalResourceHolder
private static int dictionaryLoadState = DictionaryLoadState.UNDEFINED ; private static int dictionaryLoadState = DictionaryLoadState.UNDEFINED ;
private static Object dictionaryLoadLock = null ; private static Object dictionaryLoadLock = null ;
private static DictionaryInterface dictionary = null ;
static class Listener implements Observer static class Listener implements Observer
{ {
public static final int DICTIONARY_SETTINGS = 1 ; public static final int DICTIONARY_SETTINGS = 1 ;
@ -80,7 +83,7 @@ public class GlobalResourceHolder
if ( ! newSettings.equal ( GlobalResourceHolder.dictionarySettings ) ) if ( ! newSettings.equal ( GlobalResourceHolder.dictionarySettings ) )
{ {
GlobalResourceHolder.dictionarySettings.set ( newSettings ) ; GlobalResourceHolder.dictionarySettings.set ( newSettings ) ;
GlobalResourceHolder.tibetanScanner = GlobalResourceHolder.loadDictionaryScanner () ; GlobalResourceHolder.dictionary = GlobalResourceHolder.loadDictionary () ;
} }
} }
} }
@ -115,8 +118,6 @@ public class GlobalResourceHolder
// //
// initialize the dictionary stuff // initialize the dictionary stuff
// //
tibetanScanner = null ;
dictionarySettings = new DictionarySettings () ; dictionarySettings = new DictionarySettings () ;
dictionaryLoadLock = new Object () ; dictionaryLoadLock = new Object () ;
} }
@ -150,13 +151,22 @@ public class GlobalResourceHolder
} }
} }
/** /**
* loadDictionaryScanner *
* *
*/ */
protected static TibetanScanner loadDictionaryScanner () public static DictionaryInterface getDictionary ()
{ {
TibetanScanner ts = null ; return dictionary ;
}
/**
* loadDictionary
*
*/
protected static DictionaryInterface loadDictionary ()
{
DictionaryInterface d = null ;
if ( ! dictionarySettings.isEnabled () ) if ( ! dictionarySettings.isEnabled () )
return null ; return null ;
@ -171,12 +181,12 @@ public class GlobalResourceHolder
{ {
if ( dictionarySettings.isLocal () ) if ( dictionarySettings.isLocal () )
{ {
ts = new LocalTibetanScanner ( dictionarySettings.getPathOrUrl () ) ; d = new ScannerBasedDictionary ( new LocalTibetanScanner ( dictionarySettings.getPathOrUrl () ) ) ;
dictionarySettings.setValid ( true ) ; dictionarySettings.setValid ( true ) ;
} }
else else
{ {
ts = new RemoteTibetanScanner ( dictionarySettings.getPathOrUrl () ) ; d = new ScannerBasedDictionary ( new RemoteTibetanScanner ( dictionarySettings.getPathOrUrl () ) ) ;
dictionarySettings.setValid ( true ) ; dictionarySettings.setValid ( true ) ;
} }
@ -189,8 +199,8 @@ public class GlobalResourceHolder
} }
} }
return ts ; return d ;
} }
/* /*
* isTMWInstalled () * isTMWInstalled ()
@ -350,16 +360,6 @@ public class GlobalResourceHolder
return flagIsUsingLocalFonts ; return flagIsUsingLocalFonts ;
} }
/*
* getTibetanScanner ()
*
* returns the dictionary scanner object or null
*/
public static TibetanScanner getTibetanScanner ()
{
return tibetanScanner ;
}
/** /**
* *
*/ */