2009-09-21  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeViewer.java (.mouseMoved): 
	(.mouseMoved): 
	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (mouseMoved): Another slight improvement to the cursor - it now moves to the correct position when the mouse moves.  
	(addPhonemeViewer): Jumping cursor not shown
	(placeCursor): Cursor activates correctly

2009-09-03  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (addPhonemeViewer): 
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeViewer.java (.mouseDragged): 
	(.mouseClicked): Cursor recovers as mouse is moved

2009-08-31  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (WordDisplayPanel): Fix cursor movement and positioning.

2009-08-13  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (displayWord): Ambiguous words' pronunciations are now fetched same as 
	for proper nouns correct and foreign words.

2009-07-07  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/messages.properties: 
	* src/java/za/org/meraka/dictionarymaker/ui/GeneralSettingsPanel.java (.itemStateChanged): 
	(getPnlSettings): 
	(setValuesOfCurrentProject): 
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePanel.java (completed): 
	* src/java/za/org/meraka/dictionarymaker/settings/Settings.java (SELECT_MODE_USER): Remove Auto and Incemental modes from UI

2009-06-17  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (getMiClose): Investigate why file->close is not working
	(closeProject): Now closes if no changes have been made, too.


2009-06-11  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/settings/ProjectSettings.java (KEY_PROJECT_CUSTOM_SETTINGS): 
	* src/java/za/org/meraka/dictionarymaker/ui/GeneralSettingsPanel.java (getCmbUpdateMode): Incremental update mode is disabled in the back-end - we need to remove it from the UI, too!

2009-06-10  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/ImportRuleDictPanel.java (importDictionaryButtonActionPerformed): 
	Investigate Martin's dictionary with d_0Z not correctly imported in new project dialog bug. 
	Replace code with that from ImportDictionary

2009-05-26  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (closeProject): 
	Add the ability to cancel closing a project or exiting the program

2009-05-14  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (displayNextWord): Cases with NO unverified words were not handled correctly.  That is fixed now. 

2009-05-12  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (importDictionaryFromFile): Investigate dictionary import

2009-05-08  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/ReportPanel.java (populate): 
	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java (setSelectionToWord): Debugging - why are some classified words repeated?
	If status updated it works.
	(getPnlStatusSelect): Remove 'partial' from entire UI

	
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (displayWord): Debugging - why are some classified words repeated?
2009-05-07  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (keyPressed): Fixed backspace 
	
	(addPhonemeViewer): Handl addition at start of word correctly

2009-05-06  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (addPhonemeViewer): Changes to sort out array overflow at end of phoneme list.
	(displayPhonemes): move drop index and cursor to start  of new word
	(linePosition): 
	(keyPressed): Sorted out cursor and click as well as drag & drop works correctly.
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (setWordForeign): (and other setWord functions - setDirty does not depend on previous value any more
	 - with any clicked button setdirty=true, so that pronunciations can be changed and saved without having to change status.
	(displayNextWord): Debugging - why are some classified words repeated?

2009-05-04  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (getStatusString): Make word status display properly for new categories
	(displayNextWord): check why some words are repeatedly brought back even when marked as correct
	(displayNextWord): look at making next word selected aplhabetically - Mpho would prefer that.

2009-04-30  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (addPhonemeViewer): 
	(linePosition): 

2009-04-29  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (WordDisplayPanel): left-justify in stead of center-justify
	(addPhonemeViewer): 
	(addPhonemeViewer): 
	(keyPressed): 
	(mouseEntered): 
	(linePosition): Make sure cursor moves to after the added phoneme with arrow keys, clicked phonemesare added behind the cursor,
	drag and drop works as before

2009-04-15  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/ReportPanel.java (setRulesDisplay): 
	* src/java/za/org/meraka/dictionarymaker/ui/messages.properties: Fixed stastics panel typos, removed 'Partial', fixed headings

2009-04-08  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (initialize): 
	Put 'uncertain' button back. :)

2009-04-01  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (getPnllogo): Added new logo!

2009-03-26  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (displayWord): 
	(displayWord): 
	* src/java/za/org/meraka/dictionarymaker/model/WordData.java (setPhonemes): 
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (markWordValid): 
	(addPhonemeToDict): 
	* src/java/za/org/meraka/dictionarymaker/audio/AudioPlayer.java (loadNewSound): 
	Cleaned up unneeded debug println statements



2009-03-19  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (displayWord): d_OZ displays correctly now - || changed to &&
	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (savePhonemesToFile): 
	removed extra /t after phoneme name!
	(loadPhonemeFile): changed regex to handle SAMPA special characters in phoneme name
    
2009-03-04  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/WordListCellRenderer.java (readWordStatus): Invalid words now have 'INVALID' status.
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (initialize): 
	Moved the Partial button - all buttons that do not capture pronunciation are in the top row. 
	Those that capture pronunciation are in the botom row.  Changed button images to be consistent.
	(setWordAmbiguous): Pronunciation is captured for ambiguous words - other variants still have to be added manually
    feature request no 2509111 


2009-02-20  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (initialize): 
	Put ambiguous button back, changed button layout
	feature request no 2509111 
	

2009-02-19  emtempest  <mtempest@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (setWordForeign): 
	(setWordForeign):
	Update and save pronunciations of foreign and proper words to dictionary  
	f2509111
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (sortRules): 
	Setwsana rule display - there seems to be a null mapping - that is now caught and logged.
	TODO: is this mapping something that could validly exist?
	b2525824

2009-02-13  emtempest  <mtempest@csir.co.za>


	* src/java/za/org/meraka/dictionarymaker/ui/ReportPanel.java 
	(getJPanel): 
	(populate): 
	* src/java/za/org/meraka/dictionarymaker/ui/WordListCellRenderer.java 
	(readWordStatus): 
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java 
	(getNumWordsPerStatus): 
	(markWordPartial): 
	(markWordProperNoun): 
	(markWordForeign): 
	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java 
	(getCbAmbiguous): 
	(filterState): 
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java 
	(setWordPartial): 
	(setWordProperNoun): 
	(setWordForeign): 
	* src/java/za/org/meraka/dictionarymaker/algorithms/DefaultAndRefineRules.java 
	(markWordForeign):
	(markWordPartial): 
	(markWordProperNoun): 
	* src/java/za/org/meraka/dictionarymaker/algorithms/RuleExtractor.java 
	(markWordForeign):
	(markWordPartial): 
    (markWordProperNoun):  
	* src/java/za/org/meraka/dictionarymaker/ui/messages.properties: 
	* src/java/za/org/meraka/dictionarymaker/model/WordData.java: 
    (STATUS_PARTIAL): 
    (STATUS_FOREIGN): 
    (STATUS_PROPER_NOUN): 
    
	Added additional wordstatus categories: Proper noun, foreign, partial to sound panel, word list panel and report panel
    feature request no 2509111 
    After 2.15 aplha release 

2009-02-09  emtempest  <mtempest@csir.co.za>

    * src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (importDictionaryFromFile): 
    Changed phoneme inport regex to allow for numbers
    Bug no 2523411
    r 766

	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java (close): 
    Update expanded phoneme panel values.
    Bug no 1730518 
    r 763
    
    * src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (importDictionaryFromFile): 
  	(getPhoneme):      If an unknown phoneme is encountered, add it into the 'New' category with the 'bing' sound.
	Bug no 2016196
	r 763

	* src/java/za/org/meraka/dictionarymaker/ui/ExpandedPhonemePanel.java (getPnlMain): Changed expanded phoneme panel to have 4 panels
    Feature no 2539525
    r 762
        
	* src/java/za/org/meraka/dictionarymaker/utils/Constants.java: 
	Added DEBUG constant to enable wholescale activation and deactivation of debug code.
    * src/java/za/org/meraka/dictionarymaker/ui/VerificationPanel.java: Reduce mouse movements
	(getExpandedPhonemePanel): changed panel size
	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java: 
	(WordDisplayPanel):add key listener
	(paint): request focus in window for key listener
	(mouseExited): keep cursor mosition
	(rightEvent): used to manipulate cursor programatically
	(leftEvent): used to manipulate cursor programatically
	(fixCursor): used to manipulate cursor programatically
	(keyTyped): empty
	(keyReleased): empty
	(keyPressed): handle key presses appropriately
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java: Reduce mouse movements
	(displayWord): Added focus request for key listener
	(initialize): Changed panel background to white,
	   Added focus request for key listener
	   pnlAudioControl set to cyan for alpha release
	   word label font set to tahoma
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeViewer.java: Reduce mouse movements
	(initialize): Differentiates mouse behaviour between word display and expanded phoneme panels:
	    In the expanded phoneme panel a right click adds the phoneme at the cursor position, and a left click plays the associated soundfile.
	(.mouseEntered): Changed border color to magenta, and request keyboard focus  
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java: Reduce mouse movements
    (getPnllogo): background set to cyan for alpha release
    Overall changes	
    Changed the colorbar to a cursor that responds appropriately  to L and R arrows and backspace.
    In the expanded phoneme panel a right click adds the phoneme at the cursor position, and a left click plays the associated soundfile.
    Feature no 2519523
    r 759-761


	* src/java/za/org/meraka/dictionarymaker/ui/RuleExtractionProgressDialog.java: 
	(showProgress):
	This dialog is necessary when the rule extraction takes a while, but not in the initial stages 
    when full rule extraction -should- be quick, and happens after every word.
    I removed or shortened all sleep states.
    Bug no 2519561
    r 758

2008-02-18  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (replaceAll): 
		Used instead of String.replaceAll to enable support for invalid escape 
	 	characters, eg. '!\', that may be used to represent phonemes
	(mapPhonemes): 
		Enhancements made to fix bug request 1879457 Phoneme mapping -support for '/' character

2008-02-15  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (savePhonemesToFile):
		Ehancements made to FileUtil.savePhonemesToFile to save file using different encodings(UTF-8, or Default) 
	(saveGraphemesToFile): 
		Ehancements made to FileUtil.saveGraphemesToFile to save file using different encodings(UTF-8, or Default)
	(saveWordsToFile): 
		Ehancements made to FileUtil.saveWordsToFile to save file using different encodings(UTF-8, or Default)
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePanel.java (completed): 
		Enhancements made to saveGraphemesToFile, savePhonemesToFile and saveWordsToFile
		to save files using different encodings(UTF-8, or Default)
	* src/java/za/org/meraka/dictionarymaker/ui/ExportFileDialog.java: 
		Enhancements made to enable more generic usage. Can now create a dialog that uses export options, encoding options
		and a phoneme mapping check box, OR a dialog can be created that only has encoding options 
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (getMiExportRules): 
		Now uses ExportFileDialog with encoding options 
	(getMiExportGraphemes): 
		Now uses ExportFileDialog with encoding options 
	(getMiExportPhonemes): 
		Now uses ExportFileDialog with encoding options 
	(getMiExportWordList): 
		Now uses ExportFileDialog with encoding options 
	(exportGraphemes): 
		Ehancements made to FileUtil.saveGraphemesToFile to save file using different encodings(UTF-8, or Default)
	(exportPhonemes): 
		Ehancements made to FileUtil.savePhonemesToFile to save file using different encodings(UTF-8, or Default)
	(exportWordList): 
		Ehancements made to FileUtil.saveWordsToFile to save file using different encodings(UTF-8, or Default)
	(exportRules): 
		Ehancements made to Dictionary.writeRuleFile to save file using different encodings(UTF-8, or Default)
	(exportGNullRules): 
		Ehancements made to Dictionary.writeGnullRuleFile to save file using different encodings(UTF-8, or Default)
		
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (writeRuleFile): 
		Ehancements made to save rule file using different encodings(UTF-8, or Default)
	(writeGnullRuleFile): 
		Ehancements made to save rule file using different encodings(UTF-8, or Default)
	* src/java/za/org/meraka/dictionarymaker/model/Project.java (save): 
		Enhancements made to saveGraphemesToFile, savePhonemesToFile and saveWordsToFile
		to save files using different encodings(UTF-8, or Default)

2008-02-12  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java: 
		Ehancements made to saveDictionary... methods to save files using different encodings(UTF-8, or Default)
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePanel.java (completed): 
		Contains changes for enhancements made to FileUtil.saveDictionaryToFile
		Can now specify the file encoding (default, or UTF-8)
	* src/java/za/org/meraka/dictionarymaker/ui/ExportFileDialog.java: 
		Ehancements made to enable the selection of a file encoding (UTF-8, or Default)
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (getMiExportDict): 
		Contains changes for enhancements made to ExportFileDialog
		Can now specify the file encoding (default, or UTF-8)
	(exportDictionary): 
		Contains changes for enhancements made to FileUtil.saveDictionaryToFile
		Can now specify the file encoding (default, or UTF-8)
	* src/java/za/org/meraka/dictionarymaker/model/Project.java (save): 
		Contains changes for enhancements made to FileUtil.saveDictionaryToFile
		Can now specify the file encoding (default, or UTF-8)

2007-08-23  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (loadDictionaryFromFile): 
			Contains fixes for bug  1650403  	  Loss of corrected words
			Word pronunciations containing numbers were not loaded when opening the project, this resulted in a 
			reduced total word figure. 
			Word pronunciations containing numbers are now supported.

2007-08-02  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java: 
		removed joinPhonemesTogether
	(getJoinedPhonemes): 
		Strips joined phonemes from the phonemeMappings and returns the joined phoneme mappings
	(mapPhonemes): 
		Maps the phonemes in the phonemes array to the mappings contained in phonemeMappings
	  	First maps joined phonemes, eg. A B C = @
	  	Then it maps the single phonemes, eg. D = #
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeMappingsDialog.java: 
		Removed getJoinedPhonemes()
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (exportDictionary): 
		no longer passes joined phonemes as a parameter when saving the dictionaries with FileUtil
		

2007-07-31  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (loadPhonemeMappingFile): 
		no longer matches with patterns
		Can now read phoneme mapping lines separating the current phonemes and phoneme mappings
		with a semi-colon
	(joinPhonemesTogether): 
		changed to perform phoneme association, i.e. joining and mapping phonemes
	(mapPhonemes): 
		Replaces phonemes in the phonemeString with the phonemes contained in the phoneMappings Map
	
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeMappingsDialog.java 
	Removed the following which was used by the joinPhonemes panel:
		 updateJoinPhonemesComboBoxes()
		 updateJoinPhoneme()
		 addPressed()
		 removePressed()
	(initGUI): 
		removed join phonemes panel, now only shows the mapping table
	(populateMappingsToTable): 
		now populates both the current phoneme and phoneme mappings columns with information in a map, instead of 
		populating only the phoneme mappings column with a map
	(getValidMapping): 
		Current phoneme entry now checked for multiple phonemes, not only one. Enables associating multiple phonemes 
	(getJoinedPhonemes): 
		Joined phonemes now obtained from the phoneme mapping table
	
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (exportDictionary): 
		now uses a hashMap for joined Phonemes

2007-07-23  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (saveDictionaryToHtkFile): 
		now supports joining phonemes
	(saveDictionaryToFestivalFile): 
		now supports joining phonemes
	(saveDictionaryToSemiColonDelimitedFile): 
		now supports joining phonemes
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeMappingsDialog.java (initGUI): 
		Added spacing in the overall layout
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (exportDictionary): 
		now supports joining phonemes with all export formats

2007-07-20  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (joinPhonemeTogether): 
		Joins the phonemes together based on the contents of the joinPhonemes list
	(saveDictionaryToFile): 
		now supports joining phonemes
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (exportDictionary): 
		now supports joining phonemes with the standard dictionary format
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeMappingsDialog.java (initGUI): 
		added join phonemes panel
		
	(initPhonemeMappingTable): 
		removed mouse listener for popupmenu
	(updateJoinPhonemesComboBoxes): 
		Populate the comboBoxes in the joinPhonemesPanel with current phonemes
		Update the joinPhonemes list 
	(updateJoinPhoneme): 
		Update the list in the joinPhonemesPanel
	(addPressed): 
		Adds joined phonemes to the joinedPhonemes list and updates the joinPhonemPanel
	(removePressed): 
		Removes joined phonemes from joinedPhonemes list and updates the joinPhonemePanel
	(getJoinedPhonemes): 
		get the joinedPhonemes list

2007-07-18  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeMappingsDialog.java (initGUI): 
		Added panel to display joined phonemes
	(initPhonemeMappingTable): 
		DefaultTablemodel class implementation removed, replaced with phonemeMappingTableModel
		Added MouseListener to display a phoneme popupMenu when the right mouse button is pressed
	(populateMappingsToTable): 
		Now receives the importedPhonemeMappings as a parameter instead of using getPhonemes()
	(getPhonemeMappings): 
		Now obtains the phoneme mappings from the table, enables user to edit the phonemes in the table
	(getPopUpMenu): 
		creates a popupMenu used for joining phonemes
	(class PhonemeMappingTableModel extends AbstractTableModel)
		Table model used to generate the phoneme mappings table

2007-06-29  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (loadPhonemeMappingFile): 
		Added an extra pattern to enable loading phoneme mappings that contain a phoneme split into two parts
	(saveDictionaryToHtkFile): 
		Fixed a bug that clipped off the last character of the line written to the dictionary file
	(saveDictionaryToFestivalFile): 
		Fixed a bug that clipped off the last character of the line written to the dictionary file
	(saveDictionaryToSemiColonDelimitedFile): 
		Fixed a bug that clipped off the last character of the line written to the dictionary file
	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java (getCbErrors):
		Graphical component text now obtained from a resource bundle 
	* src/java/za/org/meraka/dictionarymaker/ui/ExportFileDialog.java (initialise): 
		Graphical component text now obtained from a resource bundle
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeMappingsDialog.java (initGUI): 
		Graphical component text now obtained from a resource bundle

2007-06-15  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (saveDictionaryToFile): 
		Overriden to allow phoneme mapping
	(saveDictionaryToHtkFile): 
		Overriden to allow phoneme mapping
	(saveDictionaryToFestivalFile): 
		Overriden to allow phoneme mapping
	(saveDictionaryToSemiColonDelimitedFile): 
		Overriden to allow phoneme mapping
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeMappingsDialog.java (importMappingFile): 
		An error message is now shown to the user if exceptions occur while loading the mapping file
	(showPhonemeMappingDialog): 
		Shows the PhonemeMappingsDialog
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (exportDictionary): 
		When exportin a dictionary to any format, the user can create phoneme mappings, which are then used to create
		the export file.

2007-06-14  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (loadPhonemeFile): 
		No longer checks for valid phonemes. This has to be done by the code calling this method.
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeMappingsDialog.java: 
		Phoneme Mapping can now be handled by this dialog

2007-06-13  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (getSortedPhonemeNameList): 
		get a list of sorted phonemes names
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (exportDictionary): 
		Display a PhonemeMappingsDialog if the user wants to use a
		mapping file
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeMappingsDialog.java (importMappingFile): 
		Imports a Mapping file and gets the mapped phonemes displayed in the phonemeMappingTable
	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (loadPhonemeMappingFile): 
		Loads phoneme mappings from a file
		Added for feature request 1692939 Exporting data

2007-06-12  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeMappingsDialog.java: 
		Added to enable the user to create a mapping of the current phonemes to another phoneme set 
		Added for feature request 1692939 Exporting data
	* src/java/za/org/meraka/dictionarymaker/ui/ExportFileDialog.java (initialise): 
		Mapping file check box added
	(getMappingCheckBox): 
		Added to provide a mapping file checkbox
	(isMappingCheckBoxSelected): 
		Added to return the selection state of the mapping file checkbox
		
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (exportDictionary): 
		Exporting to semi-colon delimited format is also checked now.
		
	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (saveDictionaryToHtkFile): 
		No longer converts word for export to uppercase. HTK doesn't require uppercase words, it 
		only requires the same representation in both the word list and the dicitonary.
	(saveDictionaryToSemiColonDelimitedFile): 
		Saves the dictionary to a file in a Semi-colon delimited format
		Added for feature request 1692939 Exporting data

2007-06-06  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (saveDictionaryToHtkFile): 
		Only correct words are exported to the dictionary
		Added for feature request 1692939 Exporting data
	(saveDictionaryToFestivalFile): 
		Saves the dictionary to a file in the Festival dictionary format
		Added for feature request 1692939 Exporting data
	* src/java/za/org/meraka/dictionarymaker/utils/Constants.java: 
		Added the festival file extension to the list of supported extensions for dictionaries
		Added for feature request 1692939 Exporting data	
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (actionPerformed): 
		The dictionary file extension is no longer set here since the extension depends on what
		export format the user wants.
		Added for feature request 1692939 Exporting data
	(exportDictionary): Exporting to festival format is also checked for now. The file extension is
	also set depending on the export type.
	Added for feature request 1692939 Exporting data

2007-06-04  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (getMiExportDict): 
		Changed to use a ExportFileDialog. Allows user to specify export options
		Added for feature request 1692939 Exporting data
	(exportDictionary): 
		Changed to export dictionaries in different formats
		Added for feature request 1692939 Exporting data
	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (saveDictionaryToHtkFile): 
		Saves the dictionary to a file in the HTK (HMM tool-kit) dictionary format
		Added for feature request 1692939 Exporting data

2007-05-25  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/ui/ExportFileDialog.java: 
		This class is used to display a file dialog for exporting files (dictionary and rule files) with export options (e.g. HTK, Festival,...)
		Added for feature request [ 1692939 ] Exporting data

2007-05-15  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java (getPnlStatusSelect): 
		Contains enhancements for feature request 1692936 Error detection
		Checkbox to show error words added
	(setSelectionToWord): 
		Contains enhancements for feature request 1692936 Error detection
		Possible error words check box is deselected automatically once word verification occurs
		This forces the user to reselect it, causing proper initialisation of the word error level
	(getCbErrors): 
		Added for feature request 1692936 Error detection
		Used to display a error check box
	(filterState): 
		Contains enhancements for feature request 1692936 Error detection
		
	* src/java/za/org/meraka/dictionarymaker/ui/WordListCellRenderer.java (setVisibleErrorLevel): 
		Added for feature request 1692936 Error detection
	(getListCellRendererComponent): 
		Contains enhancements for feature request 1692936 Error detection
		Error words can now be displayed in the word list
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (initErrorWords): 
		 Set the error level in each wordData object for error words picked up by DMRule
	     Added for Feature request 1692936 Error detection

2007-04-24  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/settings/Settings.java: 
		UPDATE_MODE_INCREMENTAL Removed as fix for bug 1689746 Incremental rule extraction
	    Will be used again once incremental rule extraction works properly
       

2007-04-23  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/ui/ReportPanel.java (setRulesDisplay): 
		Added fixes for bug 1689766 Project statistics - Correct rule order
	 	rules are now displayed in the correct order
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (getSortedRules): 
		returns a List containing sorted rules 

2007-04-19  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/settings/BaseSettings.java: 
		changed updateMode default from continuous to auto as fix for bug 1692943 System defaults
	* src/java/za/org/meraka/dictionarymaker/settings/UserSettings.java: 
		Initialised projectWorkSpaceDirectory to "" as fix for bug  1689769 System defaults -save error message-

2007-04-17  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (getPhonemeString): 
		Returns a String containing the list of phonemes displayed on the panel
	(displayPhonemes), (remove), (actionPerformed): 
		Removed logging information as bug fix for bug 1689775 Log file size unbounded
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (setWordCorrect), (setWordUncertain), (setWordAmbiguous), (setWordInvalid): 
		Added logging information as bug fix for bug 1689775 Log file size unbounded
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeViewer.java (mouseClicked): 
		Removed logging information as bug fix for bug 1689775 Log file size unbounded
	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java (loadPlainWordsListFile): 
		Added logging information as bug fix for bug 1689775 Log file size unbounded
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (importDictionary): 
		Added logging information as bug fix for bug 1689775 Log file size unbounded
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (importWords), (addPhonemeToDict): 
		Added logging information as bug fix for bug 1689775 Log file size unbounded
	(getPredictionString): 
		returns a String containing the predicted phonemes for the given word
	* src/java/za/org/meraka/dictionarymaker/algorithms/DMRule.java (rulegroups_from_pats_olist), (RuleExtract), (AddWord), (addErrorWord): 
		Removed logging information as bug fix for bug 1689775 Log file size unbounded

2007-04-12  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java (keyReleased): 
		Bugfix for bug 1689771: Word filter	use keyReleased event instead of keyTyped event

2007-04-11  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/ui/DictionarImportConflictsPanel.java (replaceWordData): 
		Removed rule extraction here as fix for bug 1689763 Importing dictionary -Only one rule extraction-
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (importDictionary): 
		check if dictionary contains any new correct words before performing rule
		extraction

2007-02-14  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (displayWord): 
		play button state no longer explicity checked here, handled by events
		Now only calls play phonemes when phonemList contains phonemes

2007-02-09  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/audio/AudioPlayer.java (loadNewSound): 
		Contains Bugfix for bug 1650415 Program crashes due to insufficient memory
		Only reserve audio resources once, or else system resources get drained 
		NOTE: can't mix audio file types, must remain consistent per session
2007-02-06  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (playPhonemes):
	   fires an AudioPlayerEvent to indicate that playback is going to start 
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (initialize): 
		AudioPlayer listener registerd here to listen for AudioPlayerEvent's
	(handleAudioEvent): 
		handleAudioEvent responds to AudioPlayerEvent's caught by the
		AudioPlayerListener The play button state is set according to whether
		audio is being played or not The verification buttons are activated and
		deactivated according to whether audio is being played or not
	* src/java/za/org/meraka/dictionarymaker/audio/AudioButton.java (initialize): 
		contains bugfix for bug 1650401 Audio playback buttons causing runaway
	    threads This thread is no longer used to change the state of the
	    audioPlaybutton, it has been replaced with Events, see AudioPlayer,
	    AudioPlayerEvent and AudioPlayerListener
	* src/java/za/org/meraka/dictionarymaker/audio/AudioPlayer.java (loadNewSound): 
		Contains Bugfix for bug 1650401 Audio playback buttons causing runaway threads
		flush the sourceLine so that it doesn't block when sourceLine.drain is called
	(stopPlay): 
		Contains bug fixes for bug 1650401 Audio playback buttons causing runaway threads
		flush the sourceLine so that it doesn't block when sourceLine.drain is called
	(addAudioListener): 
		addAudioListener is used to register a AudioPlayerLister to listen for an
	    AudioPlayerEvent
	(removeAudioListener): 
		removeAudioLister deregisters a AudioPlayerListener such that it no longer listens for
	    an AudioPlayerEvent
	(fireAudioPlayerEvent): 
		fireAudioPlayerEvent is used to fire an AudioPlayerEvent, the relevant
	    AudioPlayerListener's are all notified once this event is fired
	(audioStarted): 
		audioStarted() is used to fire an AudioPlayerEvent when audio playback is started
	(audioFinished): 
		audioFinished is used to fire an AudioPlayerEvent when audio playback is finished
	* src/java/za/org/meraka/dictionarymaker/audio/AudioPlayerListener.java: 
		AudioPlayerListener defines the interface to be used to listen for AudioPlayer Events
	* src/java/za/org/meraka/dictionarymaker/audio/AudioPlayerEvent.java: 
		AudioPlayerEvent enables the use of events for indicating when an AudioPlayer object
    	has started and finished audio playback

2007-01-22  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/audio/AudioButton.java (AudioButton): 
		Bugfix for bug 1543941: Audio support crashes
		Don't initialize any more, thread causes problems
		Button state now stays in play mode all the time
		
	* ChangeLog: 
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (displayNextWord): 
		Contains Bugfix for bug 1543941: Audio support crash
		ensures that current phonemes only played by one thread

2007-01-16  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (getMExport): 
		Contains bug fixes for bug 1558688:Export rules Repeated export
		Menu items only created once now
	(getMiExportDict): 
		Contains bug fixes for bug 1558688:Export rules Repeated export
		Action listener only created once now
	
	(getMiExportRules): 
		Contains bug fixes for bug 1558688:Export rules Repeated export
		Action listener only created once now
	
	(getMiExportGraphemes): 
		Contains bug fixes for bug 1558688:Export rules Repeated export
		Action listener only created once now
		
	(getMiExportPhonemes): 
		Contains bug fixes for bug 1558688:Export rules Repeated export
		Action listener only created once now
		
	(getMiExportWordList): 
		Contains bug fixes for bug 1558688:Export rules Repeated export
		Action listener only created once now
		
2007-01-03  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (importDictionaryFromFile): 
		Rule extraction no longer performed here
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePanel.java (completed): 
		Rule extraction only performed if a dictionary is imported, rule extraction 
		message	dialog box also shown
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (importDictionary): 
	 	Contains Bugfixes for bug 1558666: Rule extraction message
	 	
2007-01-02  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (markWordValid): 
		Sorted out cruise control build errors
		Contains bug fixes for bug 1558646: batch size calculation 

2006-12-15  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (markWordValid): 
		Contains bug fixes for bug 1558646: batch size calculation 
	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (importDictionaryFromFile): 
		Contains bugfixes for bugs 1540536:Add dictionary: New Rules and
	 	1558679: Import dicitonary: correct words lost
	 	Ensures imported word are updated in DMRule as well	
	 	Now works properly when an entirely new word is added
	 	
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePanel.java (completed): 
	Contains Bugfixes for bug 1540536: Add dictionary: New Rules; and bug
		1558666: Rule extraction message

2006-12-12  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/ui/DictionarImportConflictsPanel.java (replaceWordData): 
		Contains bugfixes for bugs 1540536:Add dictionary: New Rules and
	 	1558679: Import dicitonary: correct words lost
	 	Ensures imported word are updated in DMRule as well
	
	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (importDictionaryFromFile): 
	Contains bugfixes for bugs 1540536:Add dictionary: New Rules and
	 	1558679: Import dicitonary: correct words lost
	 	Ensures imported word are updated in DMRule as well
	 The words in the dictionary are imported using the following conditions:
		If the word isn't in the dictionary, simply add it 
	   	Else If the old word is correct and the new word is correct, but the phonemes are different,
		  	add the word to the conflict list, with the user prompted for input later
	   	Else If the old word is unverified, and the new word is anything else, replace the word
	   	Else If the old word status is different to the new word status
	   		add the word to the conflict list, with the user prompted for input later

2006-12-08  bmcalister  <bmcalister@bmcalister>

	* src-test/java/za/org/meraka/dictionarymaker/model/TestDictionary.java (testWriteRuleFile): 
		test now checks that all the rules are written to the file, and that the correct amount of 
		rules are written to the file
	(testSortRules): 
		Tests Dictionary.sortRules, ensures rule blocks are correcly ordered, and that
	 	the blocks are sorted alphabetically

2006-12-04  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (importDictionaryFromFile): 
		Contains Bugfixes for bug 1540536: Add dictionary: New Rules
		Re-instantiates dictionary object to force proper rule extraction
			
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePanel.java (completed): 
		Contains Bugfixes for bug 1540536: Add dictionary: New Rules; 
		Re-instantiates dictionary object to force proper rule extraction
	  	

2006-11-30  bmcalister  <bmcalister@bmcalister>

	* src/java/za/org/meraka/dictionarymaker/algorithms/DefaultAndRefineRules.java (getROrder): 
		Contains bug fixes for bug 1559204: Export rules: rule order
		returns rorder Map from DMRule
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (sortRules): 
		Contains bug fixes for bug 1559204: Export rules: rule order
		Sorts rules according to rorder, and sorts blocks alphabetically
	(getCurrentROrder): Contains bug fixes for bug 1559204: Export rules: rule order
	writeRuleFile): Bug fixes for: [ 1559204 ] Export rules: rule order. 

RELEASED VERSION 2.0
=========================================================================================
2006-09-19  pvzyl  <pvzyl@sourceforge.net>

	* INSTALL.txt: added instructions for the sh run file.
	* build.xml: included the data dir in the make-bin-release files
	* doc/website/index.html: changed manual name to dictmaker_manual_v2.0.pdf

2006-09-18  pvzyl  <pvzyl@sourceforge.net>

	* bin/run.bat: changed the jar file to: dictionarymaker-2.0.jar
	* bin/run.sh: removed the setting of paths and home dirs
	* doc/website/index.html: renamed the dictmaker_manual_v2.0.pdf
	* VERSION: added version 2.0
	* build.xml: added make-src-all-release to build the zip and tgz release files. 
		Added the version number to the jar files
		Included release-notes.dir
		Added :make-src-all-release depends="jar,test-jar,docs">
		Added: make-bin-release
	* build.properties.example: added release-version=2.0, and apidoc.dir

2006-09-18  Andries  <avrensbu@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/algorithms/DMRule.java (remove_gnull_list): Changed w.contains("0") to "w.indexOf( "0" ) != -1" to be 1.4 compatable
	* src/java/za/org/meraka/dictionarymaker/ui/ImportRuleDictPanel.java (getChkImportDictionary): Bug 1542055 : Check ItemStateChanged event for selection instead of StateChanged event
	 (importDictionaryButtonActionPerformed): Bug 1560575: Only set import to true if file was selected 

2006-09-11  marius  <marius@Pegasus>

	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (getPhonemesChanged): Flag added
	to determine if the phonemes had been changed. Appropriate get and reset (set to false) added.
	* src/java/za/org/meraka/dictionarymaker/model/Project.java (isFullRuleExtractionRequired): Use of
	above flag to call full rule extraction with continuous update mode only if phonemes had changed.
	
	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java: Checkbox added to sort-unsort WordList
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (clearSoundPanel): Set current wordData
	to null, to ensure status and phonemes are not accidentally altered in the background when one of
	the buttons is pressed. 
	(setWordInvalid): Test for above setting of wordData to null
	(setWordAmbigious): Test for above setting of wordData to null
	(setWordUncertain): Test for above setting of wordData to null
	(setWordCorrect): Test for above setting of wordData to null
	(skipWord): Test if there are more words in list available

2006-09-07  Andries  <avrensbu@csir.co.za>
	
	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java: Added check: if word to be diplayed is not in listmodel, force reload of words from dictionary. This is only temporary until the reason for the missing words is found.

2006-09-06  marius  <marius@Pegasus>

	* src/java/za/org/meraka/dictionarymaker/model/Project.java (isFullRuleExtractionRequired): IF added
	to test if update-mode is Continuous or Auto (with the dictionary size less than the switch-to-
	incremental-mode number); runs Full-Rule-Extraction if True.

2006-09-06  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (setWordCorrect): Set new phoneme array in wordData
	Bug 1549785: (displayWord) : If word status is not CORRECT get prediction of phonemes from dictionary
	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java: Get unsorted list from dictionary
	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (mouseMoved): Bug 1549787 If phoneme popup is visible, do not update position of indicator (leads to phoneme being added to wrong position)

2006-09-06  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java: NB: Added another way to populate the word list panel and sort and filter 
	the list
	Removed them again: the other populate/sort methods
	(skipWord): added a boundary check: if you are at the end of the list and press skip it will stay on the last 
	word as there is nothing to skip to at the end of the list
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (displayNextWord):  Removed the do-while's and replaced them with a caal to .getDictionary().getWordStatusMap()
	to get the next unverified word
	(setWordCorrect): added check: if (newPho.length <= 0) { to make sure we don't
	try to mark some word as correct with no phonemes. Was getting an ArrayIndexOutofbounds exception.
	* src/java/za/org/meraka/dictionarymaker/model/WordData.java (WordData): Added 	this.status = STATUS_UNVERIFIED; to make this the default for WordData

2006-09-05  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java: Force reload of words from dictionary on wordlist if new words are imported

2006-08-29  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeViewer.java (mouseClicked): On double click play audio
	* src/java/za/org/meraka/dictionarymaker/ui/ExpandedPhonemePanel.java: Removed propertychange interface (not used)
	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java: Force reload of words from dictionary if new words added to list
	* src/java/za/org/meraka/dictionarymaker/ui/GeneralSettingsPanel.java (saveAllValues): Do not force reload of words from dictionary
	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java: Only reload list of words from dictionary if model is null or forceReload is true, pass visible status list and text filter to listrenderer
	* src/java/za/org/meraka/dictionarymaker/ui/WordListCellRenderer.java: Added code to allow renderer to filter words according to status or text filter
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java : fire property change to notify wordlistpanel that word status changed 

2006-08-21  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/model/WordData.java (WordData): set status default to STATUS_UNVERIFIED; 
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (getWordStatusMap): Map that contains the words according to their status
	 Example: key: WordData.STATUS_CORRECT value: list of words with this status
	(addToWordStatusMap): add words to this status map
	(removeWordFromStatusMap): remove them
	(getWordList): get all the words in the dictionary
	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java:(updateWordListModel)(initialize) changed from get sorted list to get the unsorted
	normal word list	
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (setWordCorrect): added if(newPho.length >0) { 
	so that we don't mark a word correct if there is no phoneme provided
	
2006-08-08  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (playPhonemes): Bug1531627 Check if WordDisplayPanel contains any phonemes to play

2006-08-07  marius  <marius@Pegasus>

        *Added src/java/images/sync24.gif
        * src/java/za/org/meraka/dictionarymaker/ui/ReportPanel.java: Added JRadioButton "Rules" 
		(setRulesDisplay): Method added to display the current rules in the project. Fixes: # 1524343
        * src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java 
		(getMiSynchronise): Added MenuItem 'Synchronise' 
		(synchronise): Method added to Synchronise rule-set and update display when above menuItem is clicked.
	      (getMProject): Above Menuitem added to 'Project' menu. 
		Fixes: # 1524337

2006-08-07  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/Utilities.java (sort): Added method to sort wordData list alphabetically
	* src/java/za/org/meraka/dictionarymaker/utils/Constants.java: Added constants to track missing and conflict words during dictionary import
	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (importDictionaryFromFile): Added method to start import from existing dictionary file
	* src/java/za/org/meraka/dictionarymaker/ui/DictionarImportConflictsPanel.java: Added custom dialog for dictionary import
	* src/java/za/org/meraka/dictionarymaker/ui/ConflictWordListCellRenderer.java: Added custom listcelrederer for dictionary import
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (replaceWordData): If condiotanions is right an imported WordData can replace an existing one
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (importWordData): Added method to add wordData into dictionary (phonemes alreadt added)
	* src/java/za/org/meraka/dictionarymaker/model/WordData.java (setPhonemes): Changed access to public

2006-08-03  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/exceptions/FileAlreadyExistsException.java:  Used to check if files already exists in the destination directory.
	Used for example when we copy phoneme sound files.
	
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (importDictionary): Added import dictionary

2006-08-03  marius  <marius@Pegasus>

	* src/java/za/org/meraka/dictionarymaker/utils/MutableInteger.java (compareTo): Added to compare MutableIntegers.
	Needed for numerical arrangement of contextSize in ReportPanel()
	Fixes: #1524356

2006-08-02  marius  <marius@Pegasus>

	* src/java/za/org/meraka/dictionarymaker/ui/ReportPanel.java (setNumberofRulesPerGrapheme): Set().iterator changed to TreeSet().iterator to ensure graphemes are sorted in table.
	(setNumberofRulesPerGraphemeContext): Set().iterator changed to TreeSet().iterator to ensure graphemes are sorted in table.


2006-08-02  Thomas Fogwill  <tfogwill@users.sourceforge.net>
	* Added hashcode method to MutableInteger so it works properly in HashMaps
	* Fixes: #1524356

2006-08-02  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/ui/messages.properties: Added: PhonemePanel.TitleSoundFileAlreadyExists and
	PhonemePanel.MessageSoundFileAlreadyExists
	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (copyFile): Bug 1519919 on SourceForge: Added exception:FileAlreadyExistsException
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java (importSoundFile): Bug 1519919 on SourceForge: Not sure if thes was the problems. Added and handle exception:FileAlreadyExistsException
	It seemed that if the file existed we throw an error and the gui hangs as we are not handling this.

2006-08-01  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/model/WordData.java (toString): Added toSting for sorting
	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java (populate): Sorting words aphapeticaly for display
	(getNextWordData): Bug: 1532220 Check that next word in user select mode is unverified


2006-07-31  Andries  <avrensbu@csir.co.za>
	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java (updateValues): Removed code that disables list when in system select mode

	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (displayNextWord): Bug: 1502708 Check if rules is empty to start rule exstraction for new project

2006-07-31  tfogwill  <tfogwill@users.sourceforge.net>
	* Fixed handling of Windows paths in History
	* Closes: #1524361

2006-07-31  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java:  in "removeWords" Bug 1524364 on SourceForge :removes a list of words(multiple selection) from the dictionary and returns a list of words
	* src/java/za/org/meraka/dictionarymaker/ui/messages.properties: Bug 1523682+1524351 on SourceForge: Changed the messages for GeneralSettingsPanel.LabelBatchSize and
	GeneralSettingsPanel.LabelSizeToSwitchToBatchMode to reflect the true rules/business logic
	
	* src/java/za/org/meraka/dictionarymaker/ui/GeneralSettingsPanel.java (itemStateChanged):  Bug 1523682 on SourceForge: added the ability to specify the batch size for Incremental Mode
	(setValuesOfCurrentProject):  Bug 1524351 on SourceForge: changed getSettings().getNumWordsReqForBatchPhase() to getNumWordsReqForSwitchToIncMode
	Bug 1523682+1524351 on SourceForge: Changed the messages for GeneralSettingsPanel.LabelBatchSize and
	GeneralSettingsPanel.LabelSizeToSwitchToBatchMode to reflect the true rules/business logic
	
	* src/java/za/org/meraka/dictionarymaker/settings/BaseSettings.java (getNumWordsReqForSwitchToIncMode):   Bug 1524351 on SourceForge: enamed getNumWordsReqForBatchPhase to getNumWordsReqForSwitchToIncMode
	* src/java/za/org/meraka/dictionarymaker/settings/Settings.java:  Bug 1524351 on SourceForge:  renamed get/setNumWordsReqForBatchPhase to getNumWordsReqForSwitchToIncMode
	setNumWordsReqForSwitchToIncMode
	* src/java/za/org/meraka/dictionarymaker/model/Project.java (updateIncrementalMode): Bug 1524351 on SourceForge: renamed getNumWordsReqForBatchPhase 
	to getNumWordsReqForSwitchToIncMode. When you use auto mode and you get to a certain size one must switch from continuous mode to incremental mode.
	Changed the names of methods to match this logic as we are using it correctly in Project.updateIncrementalMode()
	* src/java/za/org/meraka/dictionarymaker/utils/GraphemeUtil.java (retryAddingWords):  Bug 1519917 on SourceForge: retry adding missing word as some of the missing graphemes
	may have been added
	(addMissingGraphemes): I have added the ability to RE PROCESS WORDS WOTH MISSING GRAPHEMES
	* src/java/za/org/meraka/dictionarymaker/utils/DictionaryUtil.java (removeWords): Removed the exception that I throw for testing purposes
	* src/java/za/org/meraka/dictionarymaker/ui/MissingGraphemesPanel.java:   Bug 1519917 on SourceForge: added e.printStackTrace


2006-07-31  pvzyl  <pvzyl@sourceforge.net>
	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java: removed some comments and formated the src

	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (importWords): changed method to use collection rather that List:
	importWords(Collection wordList) {.............

2006-07-28  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (mouseExited): removed code that clears marker on word panel exit

2006-07-28  marius  <marius@Pegasus>

	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java (setSelectionToWord): Added Method to set the selected word in GUI wordList
	(addHistoryWordData): Remove duplicates from History List
	* src/java/za/org/meraka/dictionarymaker/ui/c (readWordStatus): Added Method to display wordData in GUI wordLists
	(getListCellRendererComponent): Display Word status in list
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (displayNextWord): Random added to choose a random next word (bug: 1502705).
	(setWordCorrect): Move processed word to History.
	(setWordUncertain): Move processed word to History.
	(setWordAmbigious): Move processed word to History.
	(setWordInvalid): Move processed word to History.
	* src/java/za/org/meraka/dictionarymaker/utils/DefaultLogs.java (getWriter): Added Method to retrieve the FileWriter to which the logs must be written to.
	(getDefaultRuleLog): System.out replaced with new method.
	
2006-07-27  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/ui/MissingGraphemesPanel.java:  Bug 1519917 on SourceForge: Replaced getDictionary().getMissingGraphemes()
	with .getDictionary().getWordsWithMissingGraphemes() and added closing the component when there is nothing more to add
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (importWordDataList): Bug 1519917 on SourceForge: Added GraphemeUtil
					.checkIfWordContainsMissingGraphemes(wordData.getWord());
	Added Map wordsWithMissingGraphemes that contains word with missing/possible-illegal graphemes
	Delete missingGraphemes.
	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java: Bug 1519917 on SourceForge: Added updateWordListModel to update the model
	after we have added new words
	removed getDictionary().getMissingGraphemes()
	* src/java/za/org/meraka/dictionarymaker/ui/GraphemePanel.java (importButtonActionPerformed): added check: if (importCount != null) { as this was falling over if
	the user decided not to import anything
	* src/java/za/org/meraka/dictionarymaker/utils/GraphemeUtil.java (addMissingGraphemes):add word to dictionary as well as their missing graphemes
	(checkIfWordContainsMissingGraphemes): identify words that contain missing graphemes
	* src/java/za/org/meraka/dictionarymaker/utils/DictionaryUtil.java (removeWords): Bug 1524364 on SourceForge :removes a list of words from the dictionary and returns a list of words
	 * that cannot be removed

2006-07-27  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (buildPhonemeMenu): sorted list of phonemes dispalyed on change popupmenu
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java: calls ProjectUtil.getExpandedPhonemePanel().updateValues() to remove phoneme from view
	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (importDictionaryFromFile): Added method to parse and import Dictionary file.
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePanel.java (ProjectCreatePanel): Removed importwordlist added import ruledictpanel (this has checkbox to choose woordlist)
	(addPanel): Adds panel to project create steps
	* src/java/za/org/meraka/dictionarymaker/ui/ImportRuleDictPanel.java: Adding panel to import wordlist (option) and dictionary file.
	now adding wordlistpanel through method addPanel
	* src/java/za/org/meraka/dictionarymaker/algorithms/DMRule.java (addGNulls): Add gnulls to gnulls map
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (importWordDataList): Added method to add wordData objects from external 
	(addGNullRules): Add gnulls directly into DMRule


2006-07-26  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java: Bug 1524364 on SourceForge: added the ability to remove more than one phoneme at a time
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeModel.java (removePhonemes): added the ability to remove more than one
	phoneme at a time and added new messages. ALSO FIXED THE BUG WITH REMOVING PHONEMES AND GRAPHEMES
	* src/java/za/org/meraka/dictionarymaker/ui/messages.properties: added new titles and messages:
	ImportWordListPanel.TitleWordCouldNotBeRemoved,	ImportWordListPanel.MessageWordCouldNotBeRemoved,etc
	* src/java/za/org/meraka/dictionarymaker/ui/MissingGraphemesPanel.java: Used to display missing graphemes and offer a list to the user to add them(missing graphemes) to
 * the dictionary
	* src/java/za/org/meraka/dictionarymaker/ui/GraphemePanel.java:   Bug 1524364 on SourceForge: changed removeGrapheme() so that we can have multiple selects and remove
	more than one grapheme at a time.
	Added propertyChange() so that this panel can update it self when grapheme's is added

2006-07-26  pvzyl  <pvzyl@sourceforge.net>
	* src/java/za/org/meraka/dictionarymaker/ui/EditDictionaryPanel.java: added this listener so that we can upadte the grapheme panel with the new graphemes:
	importWordlistPanel.addPropertyChangeListener("graphemeAdded2",getGraphemePanel());

	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (removeGraphemes): added this method to be able to remove a list of graphemes
	Added new exceptions: WordCannotBeRemovedException,PhonemeInUseException, GraphemeInUseException
	* src/java/za/org/meraka/dictionarymaker/exceptions/WordCannotBeRemovedException.java (WordCannotBeRemovedException): : Added these for better error messages and error handling
	* src/java/za/org/meraka/dictionarymaker/exceptions/PhonemeInUseException.java: : Added these for better error messages and error handling
	* src/java/za/org/meraka/dictionarymaker/exceptions/GraphemeInUseException.java: Added these for better error messages and error handling
	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java:  added code to display a lsit of missing graphemes
	and let the user select the ones they want to include. NEED TO REMOVE THE WORDS THAT CONTAIN ILLEGAL GRAPHEMES
	* src/java/za/org/meraka/dictionarymaker/utils/GraphemeUtil.java (removeGraphemeFromMissingList): added this method to
	remove graphemes if they are not missing anymore and have been added to the dictionary

2006-07-25  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/algorithms/DefaultAndRefineRules.java (addGrapheme): added lenght + 1 to:
	 dmRule.GraphemeMap.put(grapheme, new Integer(oldGraphemes.length+1)); check comment for why we do this
	(removePhoneme): added    dmRule.updatePhonemeIndices(newPhonemes); to update the phoneme index table after a phoneme was removed
	(removeGrapheme):  added dmRule.updateGraphemeIndices(newGraphemes);to update the grapheme index table after a grapheme was removed
	* src/java/za/org/meraka/dictionarymaker/algorithms/DMRule.java (updatePhonemeIndices): 
	(updateGraphemeIndices): added these two methods to update the index map when phonemes and graphemes are removed from the map
	
	* src-test/java/za/org/meraka/dictionarymaker/model/TestDictionary.java (testRemoveMoreThanOneGrapheme): fixed bug where we could note remove
	more than one phoneme and grapheme when the element was in the middle of the list. Also removing p&g worked fine when removing them from the dictionary but was not 
	removed correctly from the DMrule and some maps: Map GraphemeMap;PhonemeMap was not correclty updated
	(testRemoveMoreThanOnePhoneme): the same as above


2006-07-25  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/messages.properties: Changed label Export > Rules to Rules (g2p and gnull)
	Added strings for Rules Dictionary import panel
	* src/java/za/org/meraka/dictionarymaker/ui/WrappingLabel.java (toString): Added toString to enable Visual Editor to display text on design screen

2006-07-24  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (writeGnullRuleFile): Added method to write gnull rules to file
	* src/java/za/org/meraka/dictionarymaker/algorithms/RuleExtractor.java (getGNullRules): Added method to interface to get gnull rules
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (getMiExportRules): Added second save file dialog to save gnull rules

2006-07-21  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (writeGnullRuleFile): Added method to export gnulls

2006-07-21  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (addToMissingGraphemeList): add a missing grapheme to this list
	added missingGraphemes list that contains graphemes not in the original grapheme list
	(importWords): added : GraphemeUtil.checkIfGraphemeExists(word); to check if there is new graphemes in 
	the words that can be added later to the dictionary's grapheme list
	
2006-07-19  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeViewer.java (mouseClicked): Removed check for right click only
	(mouseClicked): removed double click check to play sound (first click opens menu second click play sound)

2006-03-17  tfogwill  <tfogwill@users.sourceforge.net>
	* Cleanup of JOptionPane strings. Added ${variable} substitution of
	some UI messages to remove ugly concats.
	* Big messages cleanup
	* Use JoptionPane for ImportSoundFile prompt
	
2006-03-17  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/messages.properties: Added Strings for import fail and count
	* src/java/za/org/meraka/dictionarymaker/ui/GraphemePanel.java (importButtonActionPerformed): Added message dialog to indicate number of correct and failed graphems imported
	(importButtonActionPerformed): Added message dialog if file import fails on IOException
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (loadGraphemesFromFile): Changed parameters to FileUtil.loadGraphemeFile
	* src/java/za/org/meraka/dictionarymaker/utils/FileUtil.java (loadGraphemeFile): Changed importGraphemes to return a count of correct and failed graphemes

2006-03-16  tfogwill  <tfogwill@users.sourceforge.net>
	* System.out cleanup
	* Several TODO (commented/tagged in code) items addressed
	* Added better system (and debug) logging
	* Removed printStackTrace calls - use loggers instead
	* Big code cleanup (unused imports, unreferenced variables, etc)
	
2006-03-15  tfogwill  <tfogwill@users.sourceforge.net>
	* More Testing code (and resultant code fixes)
	* Added JUnit Report generation to build.xml
	* Test code for new dictionary and arrayutil methods, and resultant bug fixes
	
2006-03-15  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java: Play button now AudioButton
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java: Play button now AudioButton
	* src/java/za/org/meraka/dictionarymaker/audio/AudioPlayer.java : Check if audioItem is null 
	(stopPlay): call stopPlay on audioItem
	* src/java/za/org/meraka/dictionarymaker/audio/AudioButton.java: Added classs


2006-03-14  pvzyl  <pvzyl@sourceforge.net>
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (replacePhoneme): added  phonemeA.setAudioFileName(phonemeB.getAudioFileName()); to set the audio file
	* src/java/za/org/meraka/dictionarymaker/ui/RenameDialog.java: added code to rename 'n phoneme
	* src/java/za/org/meraka/dictionarymaker/ui/ReplaceDialog.java:  added code to replace 'n phoneme
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectAdvancedPanel.java: added projectStatusPanel.updateValues(); to update the target dictionary size
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java: added PHONEME_DOES_NOT_EXIST error msg
	added the rename and replace buttons and the method calls to the RenameDialog and ReplaceDialog
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeModel.java (removePhoneme): added check if(phonemeEntryToRemove == null){ to ensure we are not
	trying to remove a phoneme that does not exist in the model
	(renamePhoneme): added this method to rename phonemes
	(replacePhoneme): added this method to replace phonemes
	(createSoundDir): changed how we get the projectSoundDirectory
	(getListOfPhonemeNames): Create a list of phoneme names in the dictionary/model
	* src-test/java/za/org/meraka/dictionarymaker/model/TestPhonemeModel.java (testEditPhonemeNameNotPossible): added more test cases for the phonemeModel

2006-03-14  tfogwill  <tfogwill@users.sourceforge.net>
	* Added application icon
	* Added Main-Class to jar manifest
	* Added importing if sound files when importing phonemes
	* Externalised DictionaryMakerMain strings
	* Externalised AboutDialog strings
	* Externalised BaseSettingsPanel strings
	* Externalised BatchStatusPanel strings
	* Externalised ConfigurePhonemePanel strings
	* Externalised ExpandedPhonemePanel strings
	* Externalised GeneralSettingsPanel strings
	* Externalised GraphemePanel strings
	* Externalised ImportWordListPanel strings
	* Externalised NewGraphemeDialog strings
	* Externalised PhonemeDialog strings
	* Externalised PhonemeModel strings
	* Externalised PhonemePanel strings
	* Externalised PhonemeViewer	 strings
	* Externalised ProjectAdvancedPanel strings
	* Externalised ProjectCreatePanel strings
	* Externalised ProjectLocationPanel strings
	* Externalised ProjectPropertiesPanel strings
	* Externalised ProjectStatusPanel strings
	* Externalised RenameDialog strings
	* Externalised ReplaceDialog strings
	* Externalised ReportPanel strings
	* Externalised RuleExtractionProgressDialog strings
	* Externalised SoundPanel strings
	* Externalised WordListPanel strings
	* Externalised WorkspacePreferencesPanel strings
		
2006-03-14  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (btnPlayActionPerformed): Change play button while playing sound, removed stop button
	(checkPlayButtonState): Added method
	(setPlayButtonStateStop): Added method
	(setPlayButtonStatePlaying): Added method
	* src/java/za/org/meraka/dictionarymaker/audio/AudioPlayer.java: Added a queue of AudioItemInterface objects for callback
	 (stopPlay): check if AudioItem is null before stop play
	(getNumberOfFilesinQueue): Added method
	* src/java/za/org/meraka/dictionarymaker/audio/AudioItemInterface.java: Added
	* src/java/za/org/meraka/dictionarymaker/ui/ConfigurePhonemePanel.java : Can be called from menubar
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (reports): Size of Stistics Dialog smaller
	* src/java/za/org/meraka/dictionarymaker/ui/ReportPanel.java: Changed layout
	added close button
	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java (getSelectedWordData): Removed fireEvents (now handled from Util calls)
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java (addNewPhoneme): Check if ExpandedPhonemePanel is null
	layout changes
	(playSoundClip): Get audioplayer from ProjectUtil
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (displayWord): Removed multiple calls to displayWord
	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java (addWords): Check if WordlistPanel is null
	layout changed
	Added scrollpane to panel to get borders correct
	* src/java/za/org/meraka/dictionarymaker/utils/ProjectUtil.java (getSoundPanel): Added metohd to access SoundPanel
	(getAudioPlayer): Changed AudioPlayer constructor
	* src/java/za/org/meraka/dictionarymaker/ui/VerificationPanel.java (VerificationPanel): Removed event listeners from Verification panel

2006-03-13  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/ui/EditDictionaryPanel.java (getPnlCenter): added names for the components to be able to test
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java: added names for the components to be able to test
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java: added names for the components to be able to test
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeDialog.java: added names for the components to be able to test
	* src-test/java/za/org/meraka/dictionarymaker/model/TestPhonemeModel.java (testAddExistingPhonemeToModel): added tests to test
	the phonemeModel
	* src-test/java/za/org/meraka/dictionarymaker/ui/UITestPhonemePanel.java (testPhonemePanelDisplay): added some test cases
	to test that the phonemePanel and PhonemeDialog which are used to manipulate phoneme's
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectAdvancedPanel.java: Added error and value range checking
	corrected spelling mistake
	
2006-03-13  tfogwill  <tfogwill@users.sourceforge.net>

	* Added notification ("event") support to dictionary
	* Minor fixes to make Dictionry pass tests
	* Added AboutDialog
	* Added logo and name to "background" panel
	* prettified credits list
	
2006-03-13  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (displayNextWord): next word will be retreived from WordlistPanel if user select mode is active
	* src/java/za/org/meraka/dictionarymaker/ui/WordListCellRenderer.java (getListCellRendererComponent): setEnabled according to list that contains this renderer
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java: Added Statistics panel
	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java (addWords):  Update of WordListPanel added
	* src/java/za/org/meraka/dictionarymaker/ui/GeneralSettingsPanel.java (saveAllValues): Update of WordListPanel added
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectAdvancedPanel.java (saveAllValues): Update of WordListPanel added
	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java (updateValues): Method to be called when update is required for panel
	(updateValues): Disable word list if select mode is system
	(resetSelection): if system selection is selected the wordlist filter will be reset to unverified words
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java (addNewPhoneme): Call projectUtil to update phonemeView
	* src/java/za/org/meraka/dictionarymaker/ui/ExpandedPhonemePanel.java (updateValues): To be called when update is requered by orther component
	* src/java/za/org/meraka/dictionarymaker/utils/ProjectUtil.java (getExpandedPhonemePanel): Added method to access ExpandedPhonemePanel and update
	(getWordListPanel): Added method to access WordListPanel

2006-03-10  Andries  <avrensbu@csir.co.za>

	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java: fire event when word status changes to add to history list in WordListPanel
	* src/java/za/org/meraka/dictionarymaker/ui/VerificationPanel.java: Added propertyChangeListeners to SoundPanel and WordListPanel
	to handle events when selecting words from list
	* src/java/za/org/meraka/dictionarymaker/ui/WordListPanel.java (WordListPanel): Renamed from StatusPanel
	loads wordlist from dictionary, set word in history if word status changes
	Added checkboxes to filter by WordData state
	Moved status checkboxes to top of list
	* src/java/za/org/meraka/dictionarymaker/ui/ExpandedPhonemePanel.java (populate): Sort phonemes list before adding to panel
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeViewer.java (isInUse): Setborder to line if in use (on worddisplaypanel)
	* src/java/za/org/meraka/dictionarymaker/model/Phoneme.java (equals): Implements comparable on name
	

2006-03-10  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java: changed the default sizes of the dialogs
	* src/java/za/org/meraka/dictionarymaker/ui/WorkspacePreferencesPanel.java: This classed is used to edit workspace settings
	added the save and workspace location chooser
	* src/java/za/org/meraka/dictionarymaker/ui/BaseSettingsPanel.java: changed the name that is displayed in the list
	* src/java/za/org/meraka/dictionarymaker/ui/GeneralSettingsPanel.java: added setTitledBorderTitle to set the border titels
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectPropertiesPanel.java: added ProjectAdvancedPanel
	changed the treeSet to hashSet. Don't want sorting of items
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectAdvancedPanel.java: This panel is used to set and display the target dictionary size.
	it is used under the project properties
	changed the layout of components
	added the saveAll method 
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeModel.java (populatePhonemeModel): added this method to check if there exist an model
	and then either create a new one and add phoneme's to it or add to the existing model
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java: added code in the loadPhonemeFile 
	to check and add to an existing phonemeModel
	added insets for buttons

2006-03-10  tfogwill  <tfogwill@users.sourceforge.net>

	* Added conditional setting of project to dirtty (only if really changed)
	* When auto selecting next word to show, only consider unverified words
	* Added command line arg (i.e. project file to open)
	* Added error hnadling when closing app
	* Added util for centering components
	* Added ability to rename phonemes to Dictionary (and algorithmic classes)
	* Added ability to replace one phoneme with another
	* Fixed status updating and rule generation when changing word status
	* Cleaned up code by adding helper methods to Project to handle project settings
	* Added default project workspace support to New Project Creation dialog
	* Added icons to menus
	* Changed some names of items in settings panels
	* Added rule export
	* Made collapsible panel nicer (uses icons now). Still need prettier icons, though
		
2006-03-10  Andries  <avrensbu@temp>

	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java: setDirty on word edit
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeViewer.java : on dragdrop end if this is in use fire propertychange "remove" 
	* src/java/za/org/meraka/dictionarymaker/ui/EditDictionaryPanel.java (getWordPanel): Words
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePanel.java (ProjectCreatePanel): set grapheme panel before wordlist
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java (displayWord): set new phonemeviewers that is passed 
	to worddisplay panel to inuse (needed for remove popup to be enabled and drag-move to work)

2006-03-09  Andries  <avrensbu@temp>

	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java: added code to work in dictionary edit screen
	* src/java/za/org/meraka/dictionarymaker/settings/ProjectSettings.java: set default phoneme columns to 3 (fits better)
	* src/java/za/org/meraka/dictionarymaker/ui/EditDictionaryPanel.java: Added wordlistpanel	
	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (propertyChange): remove selected phoneme
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeViewer.java (mouseClicked): Popupmenu will hide when mouse exit
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java: audioplayer from ProjectUtil now used
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java: Added stop button action (ProjectUtil.getAudioPlayer.stopPlay())
	added word status and changed layout
	* src/java/za/org/meraka/dictionarymaker/audio/AudioPlayer.java: Removed phomene references
	* src/java/za/org/meraka/dictionarymaker/utils/ProjectUtil.java (getAudioPlayer): Added a getAudioPlayer method

2006-03-09  tfogwill  <tfogwill@users.sourceforge.net>

	* Added methods to Dictionary fto extract counts for reporting purposes
	* Added intelligent getTargetDictionarySize method to Project.
	* Added removeRecentProject method to History
	* Added Batch size tracking
	* Added updating of status panels
	* Added batch rule extraction control
	* Added progress display for rule extraction process
	* Added Dictionary testing to TestDMRule
	* Fixed handling of updatemode in BatchStatusPanel and SoundPanel
	* Added updating of status panels when  settings change
	* Added setting of "dirty" for project
	* Added updating of Dictionary's handling incremental ruleset updates when settings change
	* Added setting of Dictionary's handling incremental ruleset updates when project is loaded
	* Fixed minor bug in Dictionary (extractor notified twice when graphemes added in batch mode)
	* Added more updaing of menu items when projects created/opened/
	
2006-03-09  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeTableEntry.java (equals): added equals method to now when to remove and 
	entry. We are only using the phoneme name as  the categories and sound clips may change
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeDialog.java (PhonemeDialog): renamed NewPhonemeDialog.java to PhonemeDialog.java
	as it is not only used for adding. added editPhoneme
	* src/java/za/org/meraka/dictionarymaker/utils/Constants.java: removed the / in SOUND_FILE_LOCATION ="sounds";
	* src/java/za/org/meraka/dictionarymaker/ui/NewPhonemeDialog.java: added tempSoundFile to store the File that was selected as sound clip
	and also setting dirty on the project
	* src/java/za/org/meraka/dictionarymaker/model/Phoneme.java (Phoneme): added category.addPhoneme(this);
	* src/java/za/org/meraka/dictionarymaker/ui/GraphemePanel.java: removed
	the cancel and save buttons. Added a close button and are saving the project when close is pressed. Also setting dirty on the project
	removed saving of project on close
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java: added the playing of sound clips and removed
	the cancel and save buttons. Added a close button and are saving the project when close is pressed. Also setting dirty on the project
	renamed NewPhonemeDialog.java to PhonemeDialog.java and removed saving of project
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeModel.java (addNewPhoneme): added createSoundDir and 
	createSoundClip(soundFile) to create sound clips of phoneme's as they are added.
	(editPhoneme): added editPhoneme to be able to change sound clips and categories of phoneme's
	* src/java/za/org/meraka/dictionarymaker/ui/NewGraphemeDialog.java (saveNewGrapheme): addded setDirty
	
2006-03-08  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/ui/GeneralSettingsPanel.java: NB: a lot of changes!
	I removed enableShowCustomSettings and replaced with viewProjectSettings. Added method setValuesOfCurrentProject to reset the project settin values once
	we are using custom settings again. Adde code in the constructors and the checkbox creation code so that components
	can be enabled and disabled accodring to the project settings.
	removed redundant code
	* src/java/za/org/meraka/dictionarymaker/settings/BaseSettings.java (exportSettings): KEY_UPDATE_MODE was using selectMode insteadof updateMode
	* src/java/za/org/meraka/dictionarymaker/utils/DictionaryMakerUtil.java (getSettings): removed hasProjectSettings as we will use
	useProjectSettings in ProjectSettings class
	* src/java/za/org/meraka/dictionarymaker/model/Project.java: removed hasProjectSettings as we will use
	useProjectSettings in ProjectSettings class
	* src/java/za/org/meraka/dictionarymaker/model/Category.java (removePhoneme): added this method to remove phonemes that
	are not associated with this category anymore or are removed from the project and dictionary
	* src/java/za/org/meraka/dictionarymaker/utils/ProjectUtil.java (getCategory): replaced the call to add the gategory to 
	getOpenProject().addCategory(new Category(category));
	* src/java/za/org/meraka/dictionarymaker/ui/NewPhonemeDialog.java (NewPhonemeDialog): busy ADDING EDITING OF PHONEMES
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java: added method removePhoneme() to remove a phoneme from the dictionary and table
	model. BUSY adding the editing of phonemes and the playing of sound clips
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectPropertiesPanel.java: selected/highlighted the first item if the settings lists
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeModel.java (removePhoneme): removes the phoneme from the dictionary and table model
	(addNewPhoneme): cleaned up and renamed the method from saveNewPhoneme to addNewPhoneme
	* src/java/za/org/meraka/dictionarymaker/ui/NewGraphemeDialog.java (saveNewGrapheme): added a check to make sure grapheme's are single
	characters.
	* src/java/za/org/meraka/dictionarymaker/ui/GraphemePanel.java: added method removeGrapheme to remove graphemes
	* src/java/za/org/meraka/dictionarymaker/ui/EditDictionaryPanel.java: selected/highlighted the first item if the settings lists
	* src/java/za/org/meraka/dictionarymaker/ui/BaseSettingsPanel.java: selected/highlighted the first item if the settings lists

2006-03-08  Andries  <avrensbu@temp>

	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeViewer.java (PhonemeViewer): added popupmenu (no action yet)
	* src/java/za/org/meraka/dictionarymaker/ui/SoundPanel.java: layout changes
	* src/java/za/org/meraka/dictionarymaker/ui/StatusPanel.java: changed preferredsize
	* src/java/za/org/meraka/dictionarymaker/ui/VerificationPanel.java: removed dragdrop code
	* src/java/za/org/meraka/dictionarymaker/ui/WordDisplayPanel.java (getJPopupMenu): added popupmenu to add phonemes

2006-03-08  tfogwill  <tfogwill@users.sourceforge.net>

	* Add save() method to Settings interface
	* Changed wording on System Prefs dialog and Project Properties Dialog
	* Added UseCustomSettings to ProjectSettings
	* Made Dictionary file loading more tolerant - it now corerctly loads lines with null phonemes 
	* Added extraction of rules to DMRule creation
	* Only add valid words to DMRule
	* Added (ugly for now) testing of DMrule (runs new & old: compare results)
	* Fixed Dictionary to return Phonene[] from PredictWord
	* Fixed soundPanrl to pass valid type (PhonemeViewer) to WordListDisplayPanel

2006-03-07  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/utils/Constants.java: added SOUND_FILE_LOCATION
	* src/java/za/org/meraka/dictionarymaker/model/Project.java: changed the package of Settings
	* src/java/za/org/meraka/dictionarymaker/ui/BatchStatusPanel.java: changed the package of Settings
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMaker.java: removed imports that was not used
	* src/java/za/org/meraka/dictionarymaker/utils/DictionaryMakerUtil.java: changed the package of Settings and UserSettings
	* src/java/za/org/meraka/dictionarymaker/settings/UserSettings.java (getProjectWorkspaceDirectory):  moved all settings classes from util and project
	packages to package settings
	* src/java/za/org/meraka/dictionarymaker/settings/Settings.java:  moved all settings classes from util and project
	packages to package settings
	* src/java/za/org/meraka/dictionarymaker/settings/ProjectSettings.java:  moved all settings classes from util and project
	packages to package settings
	* src/java/za/org/meraka/dictionarymaker/settings/BaseSettings.java: moved all settings classes from util and project
	packages to package settings
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeModel.java (saveNewPhoneme): replaced fireTableCellUpdated(rowList.size(), 0); with
	general fireTableDataChanged();.
	(getCategory): moved the creation of the Category and are now using the string that was passed in. Removed refresh method
	* src/java/za/org/meraka/dictionarymaker/ui/NewPhonemeDialog.java (saveNewPhoneme): removed this.getPhonemeModel().refresh(); the model
	now fires a data change event when a phoneme is added 
	(saveNewPhoneme): removed the if as it was only checking for empty or new but not existing elements in the list. And the
	checking is done in the phonemeModel for empty en null categories in any case
	(getCmbCategories): selected the first item/category if there are categories
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java: mmoved the creation of the phonemeModel  before
	adding the visual components in the constructors
	added the close method
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java: set dialogs to be able to resize
	* src/java/za/org/meraka/dictionarymaker/ui/GraphemePanel.java: added the close method for closing
	Added getListModel to create the a list model that contains the dictionary's grapheme's. 
	Added the call getLstGrapheme().setModel(getListModel()); to method addNewGrapheme() to refresh the list model
	* src/java/za/org/meraka/dictionarymaker/ui/GeneralSettingsPanel.java: added the saveAllValues method for saving
	all settings when the save button is pressed. Added the close method for closing the panel when cancel is pressed.
	Added comments and added logic to check if we are in auto or batch mode. If we are in auto then batch size and switch to batch size txt fields
	are enabled.If we are in batch mode batch size is enabled. REMOVED EVENT HANDLING of individual  components where saving of values where done.
	The saveAllValues method save the values.
	changed the package of Settings


2006-03-07  tfogwill  <tfogwill@users.sourceforge.net>

	* added Quilt task to build file.
	* added Filename Filters to file choosers
	* added History support to filename filters
	* move save from Dictionary into FilUtil
	* Added save and export functionality
	* fixed RecentProjects menu handling
	* improved History
	* Added Close and Exit menu items
	* Added status panels to main layout 
	

2006-03-07  Andries  <avrensbu@temp>

	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (openProject): set new project before load
	* src/java/za/org/meraka/dictionarymaker/ui/GeneralSettingsPanel.java: replaced JLabels with WrappingLabels
	* src/java/za/org/meraka/dictionarymaker/ui/WrappingLabel.java: added
	* src/java/za/org/meraka/dictionarymaker/model/Project.java (getPhonemeCatagoryMap): null check
	(load): can open project
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java (loadPhonemeFile): adds phonemes correctly to dictionary


2006-03-06  Andries  <avrensbu@temp>

	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java:  load file with FileUtil
	* src/java/za/org/meraka/dictionarymaker/ui/GraphemePanel.java: load file with FileUtil
	* src/java/za/org/meraka/dictionarymaker/project/ProjectSettings.java (load): sets project name to name insteadof dir
	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java (addWords):  check that dictionary is nor null
	 load file with FileUtil
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java (openProject):  get project name from project.settings
	(openProject): call load on project to load settings and dictionary
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectLocationPanel.java: set project name in project.settings
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePanel.java: get project name from project.settings
	saves words to wordlist instead of dictionary
	* src/java/za/org/meraka/dictionarymaker/model/Project.java: removed get set name from project (now in settings)
	(load): added load method to load all files for project


2006-03-06  pvzyl  <pvzyl@sourceforge.net>

	* src-test/java/za/org/meraka/dictionarymaker/ui/UITestProjectSettings.java (setUp): changed to instantiate ProjectPropertiesPanel()	
	* src/java/za/org/meraka/dictionarymaker/ui/GeneralSettingsPanel.java: added a panel with save and cancel buttons.
	Added a boolean: enableShowCustomSettings to display or hide this panel and added enableComponents() method to disable the components
	if we are not overwriting/changing the default settings. Add event method itemStateChanged for getRbtnCustomSettings to enable the 
	the components if we are changing the default settings
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java: Added methods to display dialogs: changeDefaultSettings, editDictionary
	and changeProjectProperties.
	added a check to enable the Project menu if a project exists in: openProject and createNewProject 
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectPropertiesPanel.java: NEW->  This is the main panel for changing project related settings/properties
 	It can use or override the default application wide settings
	changed the constructor for creating a GeneralSettingsPanel to ->new GeneralSettingsPanel(true); the true. This has the effect of showing the radio button for 
	overriding default settings
	* src/java/za/org/meraka/dictionarymaker/ui/BaseSettingsPanel.java: NEW->This is the main panel for changing application wide default settings. It
 	has a list of settings that can be changed.
	* src/java/za/org/meraka/dictionarymaker/ui/EditDictionaryPanel.java: NEW->This is the main panel for editing phoneme's and grapheme's that are 
 	in the dictionary of the project.
	Changed the grapheme and phoneme panel names so that they are consistent 
	* src/java/za/org/meraka/dictionarymaker/ui/NewGraphemeDialog.java (saveNewGrapheme): removed the code to check if a project and grapheme
	list exists. The contract must be that when you get to this panel a project must exist.
	 The code that controls access to this panel must ensure this.
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java (PhonemePanel): initialize the table model if a project exists 
	(addNewPhoneme): added firePropertyChange. the project creation uses the change event to go to the next step
	(addNewPhoneme): uses the constructor where we MUST pass a phonemeModel.
	(getPnlPhonemeList): changed the heading to "Phonemes"
	added save and cancel buttons and added the enableSaveCancelButtons boolean to enable and disable the save and cancel buttons
	* src/java/za/org/meraka/dictionarymaker/ui/NewPhonemeDialog.java (NewPhonemeDialog): added this new constructor and passes 
	in the phonemeModel to add new phoneme's too.
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeModel.java (saveNewPhoneme):  added the new phoneme to the projects
	dictionary and added the ability to return error states/messages
	added some comments stating its purpose
	(getListOfCategoryNames): the current list of categories that exist
	* src/java/za/org/meraka/dictionarymaker/ui/GraphemePanel.java: addNewGrapheme() added the firePropertyChange
	to this method so that the creation of a project can continue
	
	removed the replaceGrapheme button.
	added the enableSaveCancelButtons boolean to enable and disable the save and cancel buttons that was added

2006-03-06  Andries  <avrensbu@temp>	
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java: setName on some components for jfcunit
	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java: setName on some components for jfcunit
	import word list only once :)
	* src/java/za/org/meraka/dictionarymaker/ui/GeneralSettingsPanel.java: fixed layout
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java: adding phonemes to dictionary and categories to project
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePanel.java (completed): setName on some components for jfcunit
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (saveToFile): check that wordData.getPhonemes is not null

2006-03-06  tfogwill  <tfogwill@users.sourceforge.net>

	* Implemented TODO items in BatcchStatusPanel and ProjectStatusPanel
	* Edited WordData constructor to ensure that phoneme array is initialised
	* Added "stats" methods to Dictionary
	* Added unit testing for Dictionary
	* Renamed UI test cases to allow conditional execution of JFCUnit tests
	* Made all tests pass for Dictionary!
	* Fixed dictionary to work with ans store Phonene objects (not strings)
	* Fixed DMRule to use standard Log infrastructure
	* Moved Dictionary's loading code into FileUtil

2006-03-03  tfogwill  <tfogwill@users.sourceforge.net>

	* Reworked settings system completely. We now have UserSettings, 
	ProjectSettings, and History.
	* Added loading/saving of settings
	* Added TestCase for ArrayUtil
	
2006-03-03  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMaker.java (DictionaryMaker): removed the creation of a project
	at this point
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java: added the titled border and renamed
	the buttons to shorter names. Removed the assign sound button.
	removed assignNewSoundClip
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java: added menu items for editing
	dictionary and setting default and project properties
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectSettingsPanel.java: added the list to a panel and
	added insets around the list
	* src/java/za/org/meraka/dictionarymaker/ui/GeneralSettingsPanel.java: replaced ProjectUtil.getOpenProject().getSettings()
	with the DictionaryMakerUtil and added the titled border
	* src/java/za/org/meraka/dictionarymaker/model/Project.java: added hasProject settings to indicate that the project
	overwrites the general/global settings
	* src/java/za/org/meraka/dictionarymaker/project/Settings.java:  This interface represents the settings that is need by the system
	* src/java/za/org/meraka/dictionarymaker/utils/DictionaryMakerUtil.java (getSettings): Utility class to determine
	which settings to return: the global settings or project specific settings.
	* src/java/za/org/meraka/dictionarymaker/project/GeneralSettings.java: added auto to updateModes

	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeModel.java (PhonemeModel): Removed PhonemeTableModel and replaced it
	with this class. 



2006-03-03  Andries  <avrensbu@temp>

	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java: removes word form dictionary, fire propery changed
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePanel.java: saving graphemes and phonemes to file
	* src/java/za/org/meraka/dictionarymaker/ui/GraphemePanel.java: list now on scrollpane
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (saveGraphemesToFile): added method
	(savePhonemesToFile): added method

2006-03-02  tfogwill  <tfogwill@users.sourceforge.net>

	* Moved phoneme and grapheme control out of Project, and into Dictionary
	* Removed control of incremental/batch updates out of DMRule
	* Added incremental rule support to dictionary
	* Made DMRule handling of null phonemes more robust
	* Made DMRule generate full rule set when switching to incremental mode, to 
	  ensure that we work with an intact ruleset.
	* Added methods to add/remove words/graphemes/phonemes from RuleExtractor
	* Added utils for dealing with matrices and arrays
	* Added UserSettings handling
	* Added "Open Recent" menu
	
2006-03-02  Andries  <avrensbu@temp>

	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreateGraphemePanel.java: will remove after grapheme panel implements ProjectCreateInterface
	* src/java/za/org/meraka/dictionarymaker/ui/NewGraphemeDialog.java (initialize): removed java 1.5 code
	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java (addWords): imports words directly into Dictionary
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectLocationPanel.java: removed parameter from constructor
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java: implemented ProjectCreateInterface
	fixed phoneme import
	sets new PhonemeTableModel on import
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreateInterface.java (getComponentTitle): renemes from getTitle
	* src/java/za/org/meraka/dictionarymaker/ui/GraphemePanel.java (addNewGrapheme): removed java 1.5 code
	added importing from file
	* src/java/za/org/meraka/dictionarymaker/ui/VerificationPanel.java: layout change for phonemes
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePanel.java: now using phonemepanel instead of projectcreatephonemepoanel

2006-03-02  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePhonemePanel.java (loadPhonemeFile): commented out the call to get the phoneme list panel. 
	The list is replaced with table
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeTableEntry.java:  is used to represent an object/phoneme in a row in a table.
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeTableModel.java: is used to display phonemes in a table.
	* src/java/za/org/meraka/dictionarymaker/ui/GraphemePanel.java: Dispay a dialog to create and add new grapheme's
	and rewrote the class as it was created in Netbeans previously
	* src/java/za/org/meraka/dictionarymaker/model/Project.java (addCategory): add a category
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java: added the NewPhonemeDialog to add phonemes 
	and a method to re-assign sound clips
	Added a table to display phoneme's and PhonemeTableModel to help with the display of the phoneme model
	* src/java/za/org/meraka/dictionarymaker/ui/NewPhonemeDialog.java: added this dialog to create and save new phoneme's.
	and assign a new sound clip
	* src/java/za/org/meraka/dictionarymaker/ui/NewGraphemeDialog.java: added this dialog to create and save new grapheme's
	* src/java/za/org/meraka/dictionarymaker/ui/RenameDialog.java: added preferred size

2006-02-28  tfogwill  <tfogwill@users.sourceforge.net>

	* Implemented the algorithms by wrapping (modified) DMrule from old project
	
2006-02-28  Andries  <avrensbu@temp>

	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreateGraphemePanel.java: added grapheme import from file
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePanel.java: check state for complete button 
	* src/java/za/org/meraka/dictionarymaker/ui/GraphemePanel.java: added public method to set data in list
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePhonemePanel.java: added phoneme import
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java (getLstPhonemes): method access to public

2006-02-27  Andries  <avrensbu@temp>

	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java: added dialog to add new word (check rules for remove and edit)

2006-02-27  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java:  moved the buttons to the east and made the layout gridbag.
	Also changed the layout of the panel with the scrollpane and list to gridbag layout with insets of 10 all around
	* src/java/za/org/meraka/dictionarymaker/ui/GraphemePanel.java: moved the buttons to the east and made the layout gridbag.
	Also changed the layout of the panel with the scrollpane and list to gridbag layout with insets of 10 all around
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java: added the method to create the project settings
	panel when the "Management" menu item is selected

2006-02-27  tfogwill  <tfogwill@users.sourceforge.net>

	* split algorithm into separate rule extractor and predictor interfaces/algorithms
	* added BatchStatusPanel ProjectStatusPanel PronunciationPredictor
	* 

2006-02-24  pvzyl  <pvzyl@sourceforge.net>

	* build.xml: added task run-tests that uses junit to run all the test cases (junit and jfcunit)
	run-test task made dependant on test-jar
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectSettingsPanel.java: added PhonemePanel
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java: added more menu bars and menu items for
	changing project related settings.
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemePanel.java: added a phoneme panel to edit phoneme's
	added scrollpane for the phoneme list

2006-02-24  Andries  <avrensbu@temp>

	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePhonemePanel.java: added class
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java (getSortedList): Not using Collections.copy
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMakerMain.java: setViewPanel method to add panels to parent frame		
	* src/java/za/org/meraka/dictionarymaker/ui/ExpandedPhonemePanel.java : added javadoc
	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java: implements ProjectCreateInterface
	firePropertyChange("data", false, true) to indicate if project word list is imported
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectLocationPanel.java: implements ProjectCreateInterface
	(genericTextFieldKeyReleased): firePropertyChange("data", false, true) to indicate if project directory is in a valid location
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreateGraphemePanel.java: added class
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreateInterface.java: added interface for project create steps
	* src/java/za/org/meraka/dictionarymaker/utils/ProjectUtil.java (setPreviousProject): added get, set previous project
	to be able to rewvert to previous project if project create gets canceled
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectCreatePanel.java: added class
	fixed button disable for next button
	added phonemepanel

2006-02-23  tfogwill  <tfogwill@users.sourceforge.net>

	* Made project/category/phoneme relationship more robust
	* Added panel components for Project/Dictionary and for the current Batch
	* Added import facility to dictionary (to import wordlist)

2006-02-23  pvzyl  <pvzyl@sourceforge.net>

	* src/java/za/org/meraka/dictionarymaker/ui/GeneralSettingsPanel.java: added the event handling
	code for all the jcomponents. It uses the ProjectUtil to get and change the project settings
	* src/java/za/org/meraka/dictionarymaker/project/ProjectSettings.java: added updateModes and selectMode arrays	
	* src/java/za/org/meraka/dictionarymaker/ui/GeneralSettingsPanel.java: added the event handling
	code for all the jcomponents. It uses the ProjectUtil to get and change the project settings
	
2006-02-23  Andries  <avrensbu@temp>

	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeViewer.java: added more javadoc
	* src/java/za/org/meraka/dictionarymaker/ui/ImportWordListPanel.java: added more javadoc
	* src/java/za/org/meraka/dictionarymaker/ui/ExpandedPhonemePanel.java: added more javadoc


2006-02-23  pvzyl  <pvzyl@sourceforge.net>

	* src-test/java/za/org/meraka/dictionarymaker/ui/ProjectSettingsUITest.java (setUp): test case to test the project settings panel
	* build.xml: added clean,directories,jar tp compile-test task and 
	added build test jar task

2006-02-22  tfogwill  <tfogwill@users.sourceforge.net>

	* Removed Grapheme class: not needed
	* Added utility to ProjectUtil to get categories
	* Cleaned up and extended Phoneme and Category, and added javadoc comments
	* Extended Project to enable loading of grapheme and phoneme files
	* Extended Dictionary to enable loading and saving of dictionary files

2006-02-22  pvzyl  <pvzyl@sourceforge.net>

	* src-test/java/za/org/meraka/dictionarymaker/testing/DictionaryMakerTestCase.java (getTestProject): the same as below.
	Need to refactor
	* src-test/java/za/org/meraka/dictionarymaker/testing/DictionaryMakerUITestCase.java (getTestProject): returns a dumy
	test project for testing on
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectSettingsPanel.java: added a panel to the center, made the layout
	card to be able to switch between panels in the center.

2006-02-21  tfogwill  <tfogwill@users.sourceforge.net>

	* Added cruisecontrol support
	* Added WordData class to handle word/pronunication pairs
	
2006-02-21  Andries  <avrensbu@temp>

	* src/java/za/org/meraka/dictionarymaker/ui/WordListCellRenderer.java: fixed selection color
	* src-test/java/za/org/meraka/dictionarymaker/ui/ProjectLocationPanelUITest.java: added class
	* src/java/za/org/meraka/dictionarymaker/ui/ProjectLocationPanel.java: added class
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMaker.java (main): sets new project as default for testing

2006-02-21  pvzyl  <pvzyl@sourceforge.net>

	* build.xml: added clean to compiling task

2006-02-20  tfogwill  <tfogwill@users.sourceforge.net>

	* Made proper Dictionary class to handle the pronunciation dictionary
	* Added framework for impl of Default&Refine rule extraction algorithm
		
2006-02-20  Andries  <avrensbu@temp>

	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java: added java doc
	* src/java/za/org/meraka/dictionarymaker/model/Project.java: added project settings and dictionary 
	* src/java/za/org/meraka/dictionarymaker/project/ProjectSettings.java: added project variables for project settings

2006-02-20  pvzyl  <pvzyl@sourceforge.net>

	* build.xml: added the task to compile the unit tests.
	* build.properties.example: added jfcunit
	 added build.test.dest and java.test.src.dir
	* src-test/java/za/org/meraka/dictionarymaker/testing/DictionaryMakerUITestCase.java: the general test case to test Swing/AWT components.
	* src-test/java/za/org/meraka/dictionarymaker/ui/RenameDialogUITest.java: Uses JFCUnit to test the RenameDialog
	(tearDown): removed deprecated methods to find components.
	* src-test/java/za/org/meraka/dictionarymaker/testing/DictionaryMakerTestCase.java (DictionaryMakerTestCase): added this class to be a general 
	test case for the project
	* src-test/java/za/org/meraka/dictionarymaker/testing/DictionarymakerUITestSuite.java (suite): test suit for all the ui test cases
	* src/java/za/org/meraka/dictionarymaker/ui/RenameDialog.java: This dialog is a generic dialog to be used to rename 
	* phoneme's and grapheme's from their old name to their new name. 	added names for the textfields	
	* src/java/za/org/meraka/dictionarymaker/ui/GraphemePanel.java: Panel used to manipulate graphemes.

2006-02-17  tfogwill  <tfogwill@users.sourceforge.net>

	* Added CheckStyle support
	* Added FindBugs support

2006-02-17  Andries  <avrensbu@temp>

	* src/java/za/org/meraka/dictionarymaker/project/ProjectSettings.java: moved Constants to project.ProjectSettings
	* src/java/za/org/meraka/dictionarymaker/model/Word.java (compareTo): comparable by ordinal value
	added get/set status and status types
	* src/java/za/org/meraka/dictionarymaker/model/Category.java: chaneged hashset to arraylist to preserve loaded order
	* src/java/za/org/meraka/dictionarymaker/model/Dictionary.java: moved list og catagories to project
	* src/java/za/org/meraka/dictionarymaker/ui/PhonemeViewer.java: fixed border size that phoneme view does not jump when panel scrollbar is visible
	* src/java/za/org/meraka/dictionarymaker/ui/ExpandedPhonemePanel.java: added config button 
	* src/java/za/org/meraka/dictionarymaker/ui/DictionaryMaker.java (DictionaryMaker): set parentframe in Constants
	* src/java/za/org/meraka/dictionarymaker/utils/Constants.java: Added singleton

2006-02-15  tfogwill  <tfogwill@users.sourceforge.net>

	* added lib and bin directories
	* added launch script
	
2006-02-09  tfogwill  <tfogwill@users.sourceforge.net>
	* created new directory structure
	* fixed javadoc task in build.xml
	* Add new(better) ant build filesi	
	* Add dictionary data (for testing)
	* created Project Notes file
	* created base package structure
	* Added coding conventions doc
	
