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 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 ;
|
||||||
|
|
|
@ -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 )
|
||||||
|
|
|
@ -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 ;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue