-
Notifications
You must be signed in to change notification settings - Fork 23
Description
it would be nice to give the user the ability to manage the user words by his own.
the following implementation works.
the new code is between >>> and <<<
public class WordDictionary : System.ComponentModel.Component
{
...
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
public delegate string [] LoadUserWordsDelegate () ;
public delegate void SaveUserWordsDelegate ( string [] Words ) ;
public LoadUserWordsDelegate LoadUserWords { set ; get ; }
public SaveUserWordsDelegate SaveUserWords { set ; get ; }
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
public WordDictionary()
{
InitializeComponent();
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
LoadUserWords = null ;
SaveUserWords = null ;
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
}
private void LoadUserFile()
{
// load user words
_userWords.Clear();
// quit if user file is disabled
if(!this.EnableUserFile) return;
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if ( LoadUserWords != null )
{
string [] Words = LoadUserWords () ;
foreach ( string Word in Words )
_userWords.Add(Word, Word);
}
else
{
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// original code
}
}
private void SaveUserFile()
{
// quit if user file is disabled
if(!this.EnableUserFile) return;
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if ( SaveUserWords != null )
{
List < string > Words = new List < string > () ;
foreach (string tempWord in _userWords.Keys)
Words . Add ( tempWord ) ;
SaveUserWords ( Words . ToArray () );
}
else
{
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// original code
}
}
}