changed related to adding the ../dictionary branch
This commit is contained in:
parent
81dccdb317
commit
6f87bbd844
3 changed files with 106 additions and 78 deletions
|
@ -18,6 +18,13 @@ import javax.swing.event.ListSelectionListener ;
|
|||
import javax.swing.event.ListSelectionEvent ;
|
||||
import java.util.concurrent.locks.ReentrantLock ;
|
||||
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
|
||||
{
|
||||
|
@ -270,7 +277,7 @@ class DictionaryFrame extends JFrame implements ListSelectionListener
|
|||
* @param startPos
|
||||
* @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 () ;
|
||||
|
||||
|
@ -305,7 +312,7 @@ class DictionaryFrame extends JFrame implements ListSelectionListener
|
|||
/**
|
||||
* set the pronounciation field
|
||||
*/
|
||||
public void setPronounciation ( String text )
|
||||
private void setPronounciation ( String text )
|
||||
{
|
||||
//
|
||||
// set the pronounciation field
|
||||
|
@ -318,19 +325,19 @@ class DictionaryFrame extends JFrame implements ListSelectionListener
|
|||
*
|
||||
* @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
|
||||
// dictionary entry that precedes the first dash
|
||||
//
|
||||
|
||||
text = handleSanskrit ( text ) ;
|
||||
desc = handleSanskrit ( desc ) ;
|
||||
|
||||
listLock.lock () ;
|
||||
listLock.lock () ;
|
||||
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
Document doc = description.getDocument () ;
|
||||
|
||||
try
|
||||
|
@ -342,9 +349,8 @@ class DictionaryFrame extends JFrame implements ListSelectionListener
|
|||
len = doc.getLength () ;
|
||||
}
|
||||
|
||||
int dashIndex = text.indexOf ( "-" ) ;
|
||||
String keyword = text.substring ( 0, dashIndex - 1 ) ;
|
||||
String entry = text.substring ( dashIndex + 1 ) ;
|
||||
String keyword = key ;
|
||||
String entry = desc ;
|
||||
|
||||
//
|
||||
// add keyword to the list box
|
||||
|
@ -358,7 +364,7 @@ class DictionaryFrame extends JFrame implements ListSelectionListener
|
|||
//
|
||||
// add entry to the list box
|
||||
//
|
||||
doc.insertString ( len, keyword, attrSet ) ;
|
||||
doc.insertString ( len, keyword + "\n" , attrSet ) ;
|
||||
len = doc.getLength () ;
|
||||
|
||||
StyleConstants.setBold ( attrSet, true ) ;
|
||||
|
@ -368,13 +374,12 @@ class DictionaryFrame extends JFrame implements ListSelectionListener
|
|||
catch ( Exception e )
|
||||
{
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
listLock.unlock () ;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
listLock.unlock () ;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
* 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 ( "L", "l\u0323" ) ;
|
||||
word = word.replaceAll ( "z", "s\u0301" ) ;
|
||||
word = word.replaceAll ( "G", "s\u0303" ) ;
|
||||
}
|
||||
|
||||
return word ;
|
||||
|
|
|
@ -85,6 +85,10 @@ import org.thdl.tib.input.SettingsServiceProvider;
|
|||
import org.thdl.tib.input.DictionaryLoadState;
|
||||
import java.util.Observable ;
|
||||
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
|
||||
//
|
||||
|
||||
boolean [] noSuch = new boolean [] { false } ;
|
||||
word = doc.getWylie ( startPos, endPos+1, noSuch ) ;
|
||||
word = word.replaceAll ( "[\\/\\_\\*]", " " ) ;
|
||||
|
||||
TextBody tb = SimpleTextBody.fromWylie ( word ) ;
|
||||
DictionaryInterface dict = GlobalResourceHolder.getDictionary () ;
|
||||
DictionaryEntries entries = dict.lookup ( tb ) ;
|
||||
|
||||
//
|
||||
// show dictionary data
|
||||
//
|
||||
if ( word.length () > 0 )
|
||||
{
|
||||
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 () ;
|
||||
}
|
||||
}
|
||||
dictFrame.reset () ;
|
||||
dictFrame.setData ( entries, doc, startPos, endPos ) ;
|
||||
dictFrame.setVisible ( true ) ;
|
||||
dictFrame.requestFocusInWindow () ;
|
||||
dictFrame.gotoList () ;
|
||||
}
|
||||
|
||||
private void initDictionarySupport ( Object frame )
|
||||
|
|
|
@ -13,6 +13,8 @@ import org.thdl.tib.scanner.Word ;
|
|||
import org.thdl.tib.input.SettingsServiceProvider ;
|
||||
import org.thdl.tib.input.DictionaryLoadState ;
|
||||
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.Font ;
|
||||
|
@ -32,7 +34,6 @@ public class GlobalResourceHolder
|
|||
private static Font baseTMWFont [] = null ;
|
||||
private static Font derivedTMWFont [] = null ;
|
||||
private static HashMap nameToNumber = null ;
|
||||
private static TibetanScanner tibetanScanner = null ;
|
||||
private static SettingsServiceProvider settingsServiceProvider ;
|
||||
|
||||
private static DictionarySettings dictionarySettings = null ;
|
||||
|
@ -40,6 +41,8 @@ public class GlobalResourceHolder
|
|||
private static int dictionaryLoadState = DictionaryLoadState.UNDEFINED ;
|
||||
private static Object dictionaryLoadLock = null ;
|
||||
|
||||
private static DictionaryInterface dictionary = null ;
|
||||
|
||||
static class Listener implements Observer
|
||||
{
|
||||
public static final int DICTIONARY_SETTINGS = 1 ;
|
||||
|
@ -80,7 +83,7 @@ public class GlobalResourceHolder
|
|||
if ( ! newSettings.equal ( GlobalResourceHolder.dictionarySettings ) )
|
||||
{
|
||||
GlobalResourceHolder.dictionarySettings.set ( newSettings ) ;
|
||||
GlobalResourceHolder.tibetanScanner = GlobalResourceHolder.loadDictionaryScanner () ;
|
||||
GlobalResourceHolder.dictionary = GlobalResourceHolder.loadDictionary () ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -115,8 +118,6 @@ public class GlobalResourceHolder
|
|||
//
|
||||
// initialize the dictionary stuff
|
||||
//
|
||||
tibetanScanner = null ;
|
||||
|
||||
dictionarySettings = new DictionarySettings () ;
|
||||
dictionaryLoadLock = new Object () ;
|
||||
}
|
||||
|
@ -150,13 +151,22 @@ public class GlobalResourceHolder
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* loadDictionaryScanner
|
||||
*
|
||||
*/
|
||||
protected static TibetanScanner loadDictionaryScanner ()
|
||||
{
|
||||
TibetanScanner ts = null ;
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
public static DictionaryInterface getDictionary ()
|
||||
{
|
||||
return dictionary ;
|
||||
}
|
||||
|
||||
/**
|
||||
* loadDictionary
|
||||
*
|
||||
*/
|
||||
protected static DictionaryInterface loadDictionary ()
|
||||
{
|
||||
DictionaryInterface d = null ;
|
||||
|
||||
if ( ! dictionarySettings.isEnabled () )
|
||||
return null ;
|
||||
|
@ -171,12 +181,12 @@ public class GlobalResourceHolder
|
|||
{
|
||||
if ( dictionarySettings.isLocal () )
|
||||
{
|
||||
ts = new LocalTibetanScanner ( dictionarySettings.getPathOrUrl () ) ;
|
||||
d = new ScannerBasedDictionary ( new LocalTibetanScanner ( dictionarySettings.getPathOrUrl () ) ) ;
|
||||
dictionarySettings.setValid ( true ) ;
|
||||
}
|
||||
else
|
||||
{
|
||||
ts = new RemoteTibetanScanner ( dictionarySettings.getPathOrUrl () ) ;
|
||||
d = new ScannerBasedDictionary ( new RemoteTibetanScanner ( dictionarySettings.getPathOrUrl () ) ) ;
|
||||
dictionarySettings.setValid ( true ) ;
|
||||
}
|
||||
|
||||
|
@ -189,8 +199,8 @@ public class GlobalResourceHolder
|
|||
}
|
||||
}
|
||||
|
||||
return ts ;
|
||||
}
|
||||
return d ;
|
||||
}
|
||||
|
||||
/*
|
||||
* isTMWInstalled ()
|
||||
|
@ -350,16 +360,6 @@ public class GlobalResourceHolder
|
|||
return flagIsUsingLocalFonts ;
|
||||
}
|
||||
|
||||
/*
|
||||
* getTibetanScanner ()
|
||||
*
|
||||
* returns the dictionary scanner object or null
|
||||
*/
|
||||
public static TibetanScanner getTibetanScanner ()
|
||||
{
|
||||
return tibetanScanner ;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue