Index: /trunk/gli/src/org/greenstone/gatherer/GAuthenticator.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/GAuthenticator.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/GAuthenticator.java	(revision 6318)
@@ -41,4 +41,5 @@
 import java.net.*;
 import javax.swing.*;
+import org.greenstone.gatherer.gui.GLIButton;
 
 /** Provides a graphic authenticator for network password requests.
@@ -89,7 +90,9 @@
 	Dictionary.setTooltip(password, "GAuthenticator.Password_Tooltip");
 	JPanel button_panel = new JPanel();
-	ok_button = new JButton();
+	ok_button = new GLIButton();
+	ok_button.setMnemonic(KeyEvent.VK_O);
 	Dictionary.setBoth(ok_button, "General.OK", "General.OK_Tooltip");
-	cancel_button = new JButton();
+	cancel_button = new GLIButton();
+	cancel_button.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(cancel_button, "General.Cancel", "General.Cancel_Tooltip");
 
Index: /trunk/gli/src/org/greenstone/gatherer/cdm/ClassifierManager.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/cdm/ClassifierManager.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/cdm/ClassifierManager.java	(revision 6318)
@@ -52,4 +52,5 @@
 import org.greenstone.gatherer.gui.DoubleImageButton;
 import org.greenstone.gatherer.gui.GComboBox;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.msm.MSMEvent;
 import org.greenstone.gatherer.msm.MSMListener;
@@ -571,10 +572,12 @@
 	    Collections.sort(library);
 	    // Create
-	    add = new JButton();
+	    add = new GLIButton();
+	    add.setMnemonic(KeyEvent.VK_A);
 	    Dictionary.registerBoth(add, "CDM.ClassifierManager.Add", "CDM.ClassifierManager.Add_Tooltip");
 	    JPanel button_pane = new JPanel();
 	    JPanel central_pane = new JPanel();
-	    configure = new JButton();
+	    configure = new GLIButton();
 	    configure.setEnabled(false);
+	    configure.setMnemonic(KeyEvent.VK_C);
 	    Dictionary.registerBoth(configure, "CDM.ClassifierManager.Configure", "CDM.ClassifierManager.Configure_Tooltip");
 	    JPanel header_pane = new JPanel();
@@ -608,6 +611,7 @@
 	    JPanel classifier_list_pane = new JPanel();
 	    JPanel classifier_pane = new JPanel();
-	    remove = new JButton();
+	    remove = new GLIButton();
 	    remove.setEnabled(false);
+	    remove.setMnemonic(KeyEvent.VK_R);
 	    Dictionary.registerBoth(remove, "CDM.ClassifierManager.Remove", "CDM.ClassifierManager.Remove_Tooltip");
 
Index: /trunk/gli/src/org/greenstone/gatherer/cdm/CollectionConfiguration.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/cdm/CollectionConfiguration.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/cdm/CollectionConfiguration.java	(revision 6318)
@@ -34,4 +34,5 @@
 import org.greenstone.gatherer.Gatherer;
 import org.greenstone.gatherer.cdm.CommandTokenizer;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.msm.MSMUtils;
 import org.greenstone.gatherer.util.DOMTree;
@@ -337,5 +338,6 @@
 	JPanel content_pane = (JPanel) dialog.getContentPane();
 	final DOMTree tree = new DOMTree(document);
-	JButton refresh_button = new JButton("Refresh Tree");
+	JButton refresh_button = new GLIButton("Refresh Tree");
+	refresh_button.setMnemonic(KeyEvent.VK_R);
 	refresh_button.addActionListener(new ActionListener() {
 		public void actionPerformed(ActionEvent event) {
@@ -1228,5 +1230,4 @@
 	Element command_element = null;
 	boolean use_metadata_files = false;
-	boolean show_progress = false;
 	try {
 		CommandTokenizer tokenizer = new CommandTokenizer(command_str);
@@ -1250,7 +1251,4 @@
 			use_metadata_files = true;
 			}
-			else if(name.substring(1).equals(SHOW_PROGRESS_ARGUMENT)) {
-			   show_progress = true;
-			}
 			option_element.setAttribute(NAME_ATTRIBUTE, name.substring(1));
 			option_element.setAttribute(ASSIGNED_ATTRIBUTE, TRUE_STR);
@@ -1277,5 +1275,5 @@
 		// We must have some RecPlug options: use_metadata_files, and show_progress
 		if (type.equals(RECPLUG_STR)) {
-			if (!use_metadata_files) {
+		    if (!use_metadata_files) {
 			Element option_element = document.createElement(OPTION_ELEMENT);
 			option_element.setAttribute(NAME_ATTRIBUTE, USE_METADATA_FILES_ARGUMENT);
@@ -1284,13 +1282,5 @@
 			command_element.appendChild(option_element);
 			option_element = null;
-			}
-			if(!show_progress) {
-			   Element option_element = document.createElement(OPTION_ELEMENT);
-			   option_element.setAttribute(NAME_ATTRIBUTE, SHOW_PROGRESS_ARGUMENT);
-			   option_element.setAttribute(ASSIGNED_ATTRIBUTE, TRUE_STR);
-			   option_element.setAttribute(CUSTOM_ATTRIBUTE, TRUE_STR);
-			   command_element.appendChild(option_element);
-			   option_element = null;
-			}
+		    }
 		}
 		type = null;
Index: /trunk/gli/src/org/greenstone/gatherer/cdm/FormatManager.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/cdm/FormatManager.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/cdm/FormatManager.java	(revision 6318)
@@ -47,4 +47,5 @@
 import org.greenstone.gatherer.cdm.DOMProxyListModel;
 import org.greenstone.gatherer.cdm.Format;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.msm.ElementWrapper;
 import org.greenstone.gatherer.util.StaticStrings;
@@ -305,5 +306,5 @@
 	    Dictionary.registerText(editor_label, "CDM.FormatManager.Editor");
 
-	    //default_button = new JButton();
+	    //default_button = new GLIButton();
 	    //default_button.setEnabled(false);
 	    //default_button.setMnemonic(KeyEvent.VK_D);
@@ -324,5 +325,5 @@
 	    Dictionary.registerTooltip(variable_combobox, "CDM.FormatManager.Variable_Tooltip");
 
-	    insert_button = new JButton();
+	    insert_button = new GLIButton();
 	    insert_button.setMnemonic(KeyEvent.VK_I);
 	    Dictionary.registerBoth(insert_button, "CDM.FormatManager.Insert", "CDM.FormatManager.Insert_Tooltip");
@@ -333,13 +334,13 @@
 
 	    JPanel button_pane = new JPanel();
-	    add_button = new JButton();
+	    add_button = new GLIButton();
 	    add_button.setEnabled(false);
 	    add_button.setMnemonic(KeyEvent.VK_A);
 	    Dictionary.registerBoth(add_button, "CDM.FormatManager.Add", "CDM.FormatManager.Add_Tooltip");
-	    replace_button = new JButton();
+	    replace_button = new GLIButton();
 	    replace_button.setEnabled(false);
 	    replace_button.setMnemonic(KeyEvent.VK_C);
 	    Dictionary.registerBoth(replace_button, "CDM.FormatManager.Replace", "CDM.FormatManager.Replace_Tooltip");
-	    remove_button = new JButton();
+	    remove_button = new GLIButton();
 	    remove_button.setEnabled(false);
 	    remove_button.setMnemonic(KeyEvent.VK_R);
Index: /trunk/gli/src/org/greenstone/gatherer/cdm/IndexManager.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/cdm/IndexManager.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/cdm/IndexManager.java	(revision 6318)
@@ -42,4 +42,5 @@
 import org.greenstone.gatherer.gui.DoubleImageButton;
 import org.greenstone.gatherer.gui.GComboBox;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.msm.ElementWrapper;
 import org.greenstone.gatherer.msm.MSMUtils;
@@ -596,13 +597,13 @@
 
 	    JPanel button_pane = new JPanel();
-	    add_button = new JButton();
+	    add_button = new GLIButton();
 	    add_button.setEnabled(false);
 	    add_button.setMnemonic(KeyEvent.VK_A);
 	    Dictionary.registerBoth(add_button, "CDM.IndexManager.Add_Index", "CDM.IndexManager.Add_Index_Tooltip");
-	    set_default_button = new JButton();
+	    set_default_button = new GLIButton();
 	    set_default_button.setEnabled(false);
 	    set_default_button.setMnemonic(KeyEvent.VK_S);
 	    Dictionary.registerBoth(set_default_button, "CDM.IndexManager.Set_Default", "CDM.IndexManager.Set_Default_Tooltip");
-	    remove_button = new JButton();
+	    remove_button = new GLIButton();
 	    remove_button.setEnabled(false);
 	    remove_button.setMnemonic(KeyEvent.VK_R);
@@ -981,20 +982,20 @@
 	    JPanel index_button_panel = new JPanel();
 
-	    add_index_button = new JButton();
+	    add_index_button = new GLIButton();
 	    add_index_button.setEnabled(false);
 	    add_index_button.setMnemonic(KeyEvent.VK_A);
 	    Dictionary.registerBoth(add_index_button, "CDM.IndexManager.Add_Index", "CDM.IndexManager.Add_Index_Tooltip");
 
-	    add_all_button = new JButton();
+	    add_all_button = new GLIButton();
 	    add_all_button.setEnabled(true);
 	    add_all_button.setMnemonic(KeyEvent.VK_L);
 	    Dictionary.registerBoth(add_all_button, "CDM.IndexManager.MGPP.Add_All_Metadata", "CDM.IndexManager.MGPP.Add_All_Metadata_Tooltip");
 
-	    replace_button = new JButton();
+	    replace_button = new GLIButton();
 	    replace_button.setEnabled(false);
 	    replace_button.setMnemonic(KeyEvent.VK_C);
 	    Dictionary.registerBoth(replace_button, "CDM.IndexManager.MGPP.Replace_Index", "CDM.IndexManager.MGPP.Replace_Index_Tooltip");
 
-	    remove_index_button = new JButton();
+	    remove_index_button = new GLIButton();
 	    remove_index_button.setEnabled(false);
 	    remove_index_button.setMnemonic(KeyEvent.VK_A);
@@ -1115,10 +1116,10 @@
 	    JPanel level_button_panel = new JPanel();
 
-	    add_level_button = new JButton("CDM.IndexManager.MGPP.Add_Level");
+	    add_level_button = new GLIButton("CDM.IndexManager.MGPP.Add_Level");
 	    add_level_button.setEnabled(false);
 	    add_level_button.setMnemonic(KeyEvent.VK_A);
 	    Dictionary.registerBoth(add_level_button, "CDM.IndexManager.MGPP.Add_Level", "CDM.IndexManager.MGPP.Add_Level_Tooltip");
 
-	    remove_level_button = new JButton("CDM.IndexManager.MGPP.Remove_Level");
+	    remove_level_button = new GLIButton("CDM.IndexManager.MGPP.Remove_Level");
 	    remove_level_button.setEnabled(false);
 	    remove_level_button.setMnemonic(KeyEvent.VK_A);
Index: /trunk/gli/src/org/greenstone/gatherer/cdm/LanguageManager.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/cdm/LanguageManager.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/cdm/LanguageManager.java	(revision 6318)
@@ -46,4 +46,5 @@
 import org.greenstone.gatherer.cdm.Language;
 import org.greenstone.gatherer.cdm.LanguageListCellRenderer;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.w3c.dom.*;
 
@@ -294,14 +295,14 @@
 	    JPanel button_panel = new JPanel();
 
-	    add_button = new JButton();
+	    add_button = new GLIButton();
 	    add_button.setMnemonic(KeyEvent.VK_A);
 	    Dictionary.registerBoth(add_button, "CDM.LanguageManager.Add", "CDM.LanguageManager.Add_Tooltip");
 
-	    remove_button = new JButton();
+	    remove_button = new GLIButton();
 	    remove_button.setMnemonic(KeyEvent.VK_R);
 	    remove_button.setEnabled(false);
 	    Dictionary.registerBoth(remove_button, "CDM.LanguageManager.Remove", "CDM.LanguageManager.Remove_Tooltip");
 
-	    clear_button = new JButton();
+	    clear_button = new GLIButton();
 	    clear_button.setMnemonic(KeyEvent.VK_C);
 	    // If there is a default language, then this is enabled
@@ -309,5 +310,5 @@
 	    Dictionary.registerBoth(clear_button, "CDM.LanguageManager.Clear_Default", "CDM.LanguageManager.Clear_Default_Tooltip");
 
-	    set_button = new JButton();
+	    set_button = new GLIButton();
 	    set_button.setMnemonic(KeyEvent.VK_S);
 	    set_button.setEnabled(false);
Index: /trunk/gli/src/org/greenstone/gatherer/cdm/PlugInManager.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/cdm/PlugInManager.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/cdm/PlugInManager.java	(revision 6318)
@@ -46,4 +46,5 @@
 import org.greenstone.gatherer.gui.DoubleImageButton;
 import org.greenstone.gatherer.gui.GComboBox;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.msm.MSMUtils;
 import org.greenstone.gatherer.util.StaticStrings;
@@ -590,5 +591,5 @@
 	public PlugInControl() {
 	    // Create
-	    add = new JButton();
+	    add = new GLIButton();
 	    add.setMnemonic(KeyEvent.VK_A);
 	    Dictionary.registerBoth(add, "CDM.PlugInManager.Add", "CDM.PlugInManager.Add_Tooltip");
@@ -597,5 +598,5 @@
 	    central_pane = new JPanel();
 
-	    configure = new JButton();
+	    configure = new GLIButton();
 	    configure.setEnabled(false);
 	    configure.setMnemonic(KeyEvent.VK_C);
@@ -662,5 +663,5 @@
 	    plugin_pane = new JPanel();
 
-	    remove = new JButton();
+	    remove = new GLIButton();
 	    remove.setEnabled(false);
 	    remove.setMnemonic(KeyEvent.VK_R);
Index: /trunk/gli/src/org/greenstone/gatherer/cdm/SearchTypeManager.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/cdm/SearchTypeManager.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/cdm/SearchTypeManager.java	(revision 6318)
@@ -45,4 +45,5 @@
 import org.greenstone.gatherer.gui.DoubleImageButton;
 import org.greenstone.gatherer.gui.GComboBox;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.msm.MSMUtils;
 import org.greenstone.gatherer.util.Utility;
@@ -219,10 +220,10 @@
 
 	    JPanel button_panel = new JPanel();
-	    add_button = new JButton();
+	    add_button = new GLIButton();
 	    add_button.setEnabled(false);
 	    add_button.setMnemonic(KeyEvent.VK_A);
 	    Dictionary.registerBoth(add_button, "CDM.SearchTypeManager.Add", "CDM.SearchTypeManager.Add_Tooltip");
 
-	    remove_button = new JButton();
+	    remove_button = new GLIButton();
 	    remove_button.setEnabled(false);
 	    remove_button.setMnemonic(KeyEvent.VK_R);
Index: /trunk/gli/src/org/greenstone/gatherer/cdm/SubcollectionIndexManager.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/cdm/SubcollectionIndexManager.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/cdm/SubcollectionIndexManager.java	(revision 6318)
@@ -40,4 +40,5 @@
 import org.greenstone.gatherer.cdm.Subcollection;
 import org.greenstone.gatherer.cdm.SubcollectionIndex;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.msm.ElementWrapper;
 import org.greenstone.gatherer.util.ExclusiveListSelectionListener;
@@ -223,10 +224,10 @@
 	    JPanel button_pane = new JPanel();
 
-	    add_index_button = new JButton();
+	    add_index_button = new GLIButton();
 	    add_index_button.setMnemonic(KeyEvent.VK_A);
 	    add_index_button.setEnabled(false);
 	    Dictionary.registerBoth(add_index_button, "CDM.SubcollectionIndexManager.Add_Subindex", "CDM.SubcollectionIndexManager.Add_Subindex_Tooltip");
 
-	    clear_default_button = new JButton();
+	    clear_default_button = new GLIButton();
 	    clear_default_button.setMnemonic(KeyEvent.VK_C);
 	    clear_default_button.setEnabled(default_index != null);
@@ -247,10 +248,10 @@
 	    default_value_field.setEditable(false);
 
-	    remove_index_button = new JButton();
+	    remove_index_button = new GLIButton();
 	    remove_index_button.setMnemonic(KeyEvent.VK_R);
 	    remove_index_button.setEnabled(false);
 	    Dictionary.registerBoth(remove_index_button, "CDM.SubcollectionIndexManager.Remove_Subindex", "CDM.SubcollectionIndexManager.Remove_Subindex_Tooltip");
 
-	    set_default_button = new JButton();
+	    set_default_button = new GLIButton();
 	    set_default_button.setMnemonic(KeyEvent.VK_S);
 	    set_default_button.setEnabled(false);
Index: /trunk/gli/src/org/greenstone/gatherer/cdm/SubcollectionManager.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/cdm/SubcollectionManager.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/cdm/SubcollectionManager.java	(revision 6318)
@@ -43,4 +43,5 @@
 import org.greenstone.gatherer.cdm.DOMProxyListModel;
 import org.greenstone.gatherer.cdm.Subcollection;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.NonWhitespaceField;
 import org.greenstone.gatherer.msm.ElementWrapper;
@@ -192,13 +193,13 @@
 
 	    JPanel button_pane_3 = new JPanel();
-	    add_button = new JButton();
+	    add_button = new GLIButton();
 	    add_button.setMnemonic(KeyEvent.VK_A);
 	    add_button.setEnabled(false);
 	    Dictionary.registerBoth(add_button, "CDM.SubcollectionManager.Add", "CDM.SubcollectionManager.Add_Tooltip");
-	    remove_button = new JButton();
+	    remove_button = new GLIButton();
 	    remove_button.setMnemonic(KeyEvent.VK_R);
 	    remove_button.setEnabled(false);
 	    Dictionary.registerBoth(remove_button, "CDM.SubcollectionManager.Remove", "CDM.SubcollectionManager.Remove_Tooltip");
-	    update_button = new JButton();
+	    update_button = new GLIButton();
 	    update_button.setMnemonic(KeyEvent.VK_U);
 	    update_button.setEnabled(false);
Index: /trunk/gli/src/org/greenstone/gatherer/cdm/TranslationView.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/cdm/TranslationView.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/cdm/TranslationView.java	(revision 6318)
@@ -42,4 +42,5 @@
 import org.greenstone.gatherer.cdm.LanguageListCellRenderer;
 import org.greenstone.gatherer.cdm.SubcollectionIndex;
+import org.greenstone.gatherer.gui.GLIButton;
 
 /** This class provides a graphical interface to allow a user to quickly and conviently (ie all in one place) translate the text fragments associated with general metadata and indexes into each of the assigned languages in the collection. It should provide clear controls for the editing of these text fragments, plus clear indicate what languages still need further translation, which it will do through a combination of coloring and other visual indicators.
@@ -260,13 +261,13 @@
 
 	    JPanel button_pane = new JPanel();
-	    add_button = new JButton();
+	    add_button = new GLIButton();
 	    add_button.setEnabled(false);
 	    add_button.setMnemonic(KeyEvent.VK_A);
 	    Dictionary.registerBoth(add_button, "CDM.TranslationManager.Add", "CDM.TranslationManager.Add_Tooltip");
-	    replace_button = new JButton();
+	    replace_button = new GLIButton();
 	    replace_button.setEnabled(false);
 	    replace_button.setMnemonic(KeyEvent.VK_C);
 	    Dictionary.registerBoth(replace_button, "CDM.TranslationManager.Replace", "CDM.TranslationManager.Replace_Tooltip");
-	    remove_button = new JButton();
+	    remove_button = new GLIButton();
 	    remove_button.setEnabled(false);
 	    remove_button.setMnemonic(KeyEvent.VK_R);
Index: /trunk/gli/src/org/greenstone/gatherer/collection/DeleteCollectionPrompt.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/collection/DeleteCollectionPrompt.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/collection/DeleteCollectionPrompt.java	(revision 6318)
@@ -46,4 +46,5 @@
 import org.greenstone.gatherer.collection.BasicCollectionConfiguration;
 import org.greenstone.gatherer.collection.Collection;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.ModalDialog;
 import org.greenstone.gatherer.gui.SimpleMenuBar;
@@ -95,5 +96,5 @@
     public DeleteCollectionPrompt() {
 	super(Gatherer.g_man);
-	close_button = new JButton();
+	close_button = new GLIButton();
 	close_button.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(close_button, "General.Close", "General.Close_Tooltip");
@@ -110,5 +111,5 @@
 	Dictionary.setText(list_label, "DeleteCollectionPrompt.Collection_List");
 	list_model = new DefaultListModel();
-	ok_button = new JButton();
+	ok_button = new GLIButton();
 	ok_button.setMnemonic(KeyEvent.VK_D);
 	Dictionary.setBoth(ok_button, "DeleteCollectionPrompt.Delete", "DeleteCollectionPrompt.Delete_Tooltip");
Index: /trunk/gli/src/org/greenstone/gatherer/collection/ExportCollectionPrompt.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/collection/ExportCollectionPrompt.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/collection/ExportCollectionPrompt.java	(revision 6318)
@@ -49,4 +49,5 @@
 import org.greenstone.gatherer.collection.BasicCollectionConfiguration;
 import org.greenstone.gatherer.collection.Collection;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.ModalDialog;
 import org.greenstone.gatherer.gui.SimpleMenuBar;
@@ -114,5 +115,5 @@
     public ExportCollectionPrompt() {
 	super(Gatherer.g_man, true);
-	cancel_button = new JButton();
+	cancel_button = new GLIButton();
 	cancel_button.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(cancel_button, "General.Close", "General.Close_Tooltip");
@@ -138,5 +139,5 @@
 	list_label = new JLabel();
 	Dictionary.setText(list_label, "DeleteCollectionPrompt.Collection_List");
-	ok_button = new JButton();
+	ok_button = new GLIButton();
 	ok_button.setMnemonic(KeyEvent.VK_D);
 	Dictionary.setBoth(ok_button, "ExportCollectionPrompt.Export", "ExportCollectionPrompt.Export_Tooltip");
@@ -545,5 +546,6 @@
 
 	    JPanel button_pane = new JPanel();
-	    JButton close_button = new JButton("Close");
+	    JButton close_button = new GLIButton("Close");
+	    close_button.setMnemonic(KeyEvent.VK_C);
 	    close_button.addActionListener(new CloseButtonListener());
 
Index: /trunk/gli/src/org/greenstone/gatherer/collection/SaveCollectionBox.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/collection/SaveCollectionBox.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/collection/SaveCollectionBox.java	(revision 6318)
@@ -42,4 +42,5 @@
 import org.greenstone.gatherer.Dictionary;
 import org.greenstone.gatherer.Gatherer;
+import org.greenstone.gatherer.gui.GLIButton;
 
 /** Provides a prompt allowing the user some choice in whether a collection saves. */
@@ -115,5 +116,5 @@
 	content_pane.add(button_pane);
 	// We add both mnemonics and key listener so that the 'y' of yes is underlined, but pressing just [Y] (rather than [CTL]-[Y]) performs a systematic click.
-	yes = new JButton();
+	yes = new GLIButton();
 	yes.addActionListener(this);
 	KeyListenerImpl key_listener = new KeyListenerImpl(); 
@@ -122,5 +123,5 @@
 	Dictionary.setBoth(yes, "General.Yes", "General.Yes_Tooltip");
 	button_pane.add(yes);
-	no = new JButton();
+	no = new GLIButton();
 	no.addActionListener(this);
 	no.addKeyListener(key_listener);
@@ -128,5 +129,5 @@
 	Dictionary.setBoth(no, "General.No", "General.No_Tooltip");
 	button_pane.add(no);
-	cancel = new JButton();
+	cancel = new GLIButton();
 	cancel.addActionListener(this);
 	cancel.addKeyListener(key_listener);
Index: /trunk/gli/src/org/greenstone/gatherer/gui/AboutDialog.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/AboutDialog.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/AboutDialog.java	(revision 6318)
@@ -42,4 +42,5 @@
 import org.greenstone.gatherer.Dictionary;
 import org.greenstone.gatherer.Gatherer;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.util.Utility;
 
@@ -84,5 +85,6 @@
 
 	JPanel button_pane = new JPanel();
-	close_button = new JButton();
+	close_button = new GLIButton();
+	close_button.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(close_button, "General.Close", "General.Close_Tooltip");
 
Index: /trunk/gli/src/org/greenstone/gatherer/gui/BrowsingPane.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/BrowsingPane.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/BrowsingPane.java	(revision 6318)
@@ -45,4 +45,5 @@
 import org.greenstone.gatherer.Dictionary;
 import org.greenstone.gatherer.Gatherer;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.util.GURL;
 import org.greenstone.gatherer.util.Utility;
@@ -87,17 +88,21 @@
 	JPanel left_button_pane = new JPanel();
 
-	back_button = new JButton(Utility.getImage("back.gif"));
+	back_button = new GLIButton(Utility.getImage("back.gif"));
 	back_button.setEnabled(false);
+	back_button.setMnemonic(KeyEvent.VK_BACK_SPACE);
 	Dictionary.registerTooltip(back_button, "Browser.Back_Tooltip");
 
-	// refresh_button = new JButton(Utility.getImage("reload.gif"));
+	// refresh_button = new GLIButton(Utility.getImage("reload.gif"));
 	// refresh_button.setEnabled(false);
+	// refresh_button.setMnemonic(KeyEvent.VK_R);
 	// Dictionary.registerTooltip(refresh_button, "Browser.Reload");
 
-	bookmarks_button = new JButton(Utility.getImage("bookmark.gif"));
+	bookmarks_button = new GLIButton(Utility.getImage("bookmark.gif"));
 	bookmarks_button.setEnabled(false);
+	bookmarks_button.setMnemonic(KeyEvent.VK_M);
 	Dictionary.registerTooltip(bookmarks_button, "Browser.Bookmarks");
 
-	home_button = new JButton(Utility.getImage("home.gif"));
+	home_button = new GLIButton(Utility.getImage("home.gif"));
+	home_button.setMnemonic(KeyEvent.VK_H);
 	Dictionary.registerTooltip(home_button, "Browser.Home_Tooltip");
 
@@ -107,13 +112,16 @@
 
 	JPanel right_button_pane = new JPanel();
-	go_button = new JButton(Utility.getImage("go.gif"));
+	go_button = new GLIButton(Utility.getImage("go.gif"));
+	go_button.setMnemonic(KeyEvent.VK_ENTER);
 	Dictionary.registerTooltip(go_button, "Browser.Go_Tooltip");
 
-	stop_button = new JButton(Utility.getImage("stop.gif"));
+	stop_button = new GLIButton(Utility.getImage("stop.gif"));
 	stop_button.setEnabled(false);
+	stop_button.setMnemonic(KeyEvent.VK_S);
 	Dictionary.registerTooltip(stop_button, "Browser.Stop_Tooltip");
 
-	forward_button = new JButton(Utility.getImage("forward.gif"));
+	forward_button = new GLIButton(Utility.getImage("forward.gif"));
 	forward_button.setEnabled(false);
+	forward_button.setMnemonic(KeyEvent.VK_F);
 	Dictionary.registerTooltip(forward_button, "Browser.Forward_Tooltip");
 
Index: /trunk/gli/src/org/greenstone/gatherer/gui/CollectionPane.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/CollectionPane.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/CollectionPane.java	(revision 6318)
@@ -52,4 +52,5 @@
 import org.greenstone.gatherer.gui.Filter;
 import org.greenstone.gatherer.gui.GComboBox;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.tree.DragTree;
 import org.greenstone.gatherer.gui.tree.WorkspaceTree;
@@ -138,14 +139,16 @@
 	
 	// Create components.
-	stop_action = new JButton();
+	stop_action = new GLIButton();
 	stop_action.addActionListener(this);
 	stop_action.setEnabled(false);
+	stop_action.setMnemonic(KeyEvent.VK_S);
 	file_queue.registerStopButton(stop_action);
 	Dictionary.registerBoth(stop_action, "Collection.Stop", "Collection.Stop_Tooltip");
 	
-	new_folder = new JButton(Utility.getImage("folder.gif"));
+	new_folder = new GLIButton(Utility.getImage("folder.gif"));
 	new_folder.addActionListener(this);
 	new_folder.setEnabled(false);
 	new_folder.setMinimumSize(MIN_SIZE);
+	new_folder.setMnemonic(KeyEvent.VK_N);
 	new_folder.setPreferredSize(MIN_SIZE);
 	Dictionary.registerTooltip(new_folder, "Collection.New_Folder_Tooltip");
@@ -735,8 +738,10 @@
 		name_field = new JTextField(file.getName());
 		JPanel button_pane = new JPanel();
-		ok_button = new JButton();
+		ok_button = new GLIButton();
 		ok_button.setEnabled(name_field.getText().length() > 0);
+		ok_button.setMnemonic(KeyEvent.VK_O);
 		Dictionary.setBoth(ok_button, "General.OK", "General.OK_Tooltip");
-		cancel_button = new JButton();
+		cancel_button = new GLIButton();
+		cancel_button.setMnemonic(KeyEvent.VK_C);
 		Dictionary.setBoth(cancel_button, "General.Cancel", "General.Cancel_Tooltip");
 
Index: /trunk/gli/src/org/greenstone/gatherer/gui/CreatePane.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/CreatePane.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/CreatePane.java	(revision 6318)
@@ -49,4 +49,5 @@
 import org.greenstone.gatherer.collection.BuildOptions;
 import org.greenstone.gatherer.collection.Collection;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.OptionsPane;
 import org.greenstone.gatherer.shell.GBasicProgressMonitor;
@@ -205,18 +206,21 @@
 
 	// Buttons
-	build_button = new JButton();
+	build_button = new GLIButton();
 	build_button.addActionListener(new BuildButtonListener());
+	build_button.setMnemonic(KeyEvent.VK_B);
 	build_button.setPreferredSize(BUTTON_SIZE);
 	Dictionary.registerBoth(build_button, "CreatePane.Build_Collection", "CreatePane.Build_Collection_Tooltip");
 
-	cancel_button = new JButton();
+	cancel_button = new GLIButton();
 	cancel_button.addActionListener(new CancelButtonListener());
 	cancel_button.setEnabled(false);
+	cancel_button.setMnemonic(KeyEvent.VK_C);
 	cancel_button.setPreferredSize(BUTTON_SIZE);
 	Dictionary.registerBoth(cancel_button, "CreatePane.Cancel_Build", "CreatePane.Cancel_Build_Tooltip");
 
-	preview_button = new JButton();
+	preview_button = new GLIButton();
 	preview_button.addActionListener(new PreviewButtonListener());
 	preview_button.setEnabled(false);
+	preview_button.setMnemonic(KeyEvent.VK_P);
 	preview_button.setPreferredSize(BUTTON_SIZE);
 	Dictionary.registerBoth(preview_button, "CreatePane.Preview_Collection", "CreatePane.Preview_Collection_Tooltip");
Index: /trunk/gli/src/org/greenstone/gatherer/gui/DoubleImageButton.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/DoubleImageButton.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/DoubleImageButton.java	(revision 6318)
@@ -1,6 +1,43 @@
+/**
+ *#########################################################################
+ *
+ * A component of the Gatherer application, part of the Greenstone digital
+ * library suite from the New Zealand Digital Library Project at the
+ * University of Waikato, New Zealand.
+ *
+ * <BR><BR>
+ *
+ * Author: John Thompson, Greenstone Digital Library, University of Waikato
+ *
+ * <BR><BR>
+ *
+ * Copyright (C) 1999 New Zealand Digital Library Project
+ *
+ * <BR><BR>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * <BR><BR>
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * <BR><BR>
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *########################################################################
+ */
 package org.greenstone.gatherer.gui;
 
 import java.awt.*;
 import javax.swing.*;
+import org.greenstone.gatherer.util.Utility;
 
 /** A button that allows for an icon at both the left and right sides. */
@@ -17,5 +54,5 @@
     public DoubleImageButton(String title, ImageIcon enabled_icon, ImageIcon disabled_icon) {
 	super(title);
-
+	setOpaque(!Utility.isMac());
 	setPreferredSize(SIZE);
 
Index: /trunk/gli/src/org/greenstone/gatherer/gui/EditorDialog.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/EditorDialog.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/EditorDialog.java	(revision 6318)
@@ -42,4 +42,5 @@
 import org.greenstone.gatherer.Dictionary;
 import org.greenstone.gatherer.Gatherer;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.SimpleMenuBar;
 import org.greenstone.gatherer.gui.ModalDialog;
@@ -98,8 +99,8 @@
 	Dictionary.setTooltip(text, "MetaEdit.Value_Field_Tooltip");
 
-	cancel = new JButton();
+	cancel = new GLIButton();
 	cancel.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(cancel, "General.Cancel", "General.Pure_Cancel_Tooltip");
-	ok = new JButton();
+	ok = new GLIButton();
 	ok.setMnemonic(KeyEvent.VK_O);
 	Dictionary.setBoth(ok, "General.OK", "General.OK_Tooltip");
Index: /trunk/gli/src/org/greenstone/gatherer/gui/ExternalCollectionPrompt.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/ExternalCollectionPrompt.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/ExternalCollectionPrompt.java	(revision 6318)
@@ -1,2 +1,38 @@
+/**
+ *#########################################################################
+ *
+ * A component of the Gatherer application, part of the Greenstone digital
+ * library suite from the New Zealand Digital Library Project at the
+ * University of Waikato, New Zealand.
+ *
+ * <BR><BR>
+ *
+ * Author: John Thompson, Greenstone Project, NZDL, University of Waikato
+ *
+ * <BR><BR>
+ *
+ * Copyright (C) 2003 New Zealand Digital Library Project
+ *
+ * <BR><BR>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * <BR><BR>
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * <BR><BR>
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *########################################################################
+ */
 package org.greenstone.gatherer.gui;
 
@@ -11,4 +47,5 @@
 import org.greenstone.gatherer.checklist.CheckList;
 import org.greenstone.gatherer.checklist.Entry;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.SimpleMenuBar;
 import org.greenstone.gatherer.gui.ModalDialog;
@@ -80,8 +117,8 @@
 	*/
 	JPanel button_pane = new JPanel();
-	JButton ok_button = new JButton();
+	JButton ok_button = new GLIButton();
 	ok_button.setMnemonic(KeyEvent.VK_O);
 	Dictionary.setBoth(ok_button, "General.OK", "General.OK_Tooltip");
-	JButton cancel_button = new JButton();
+	JButton cancel_button = new GLIButton();
 	cancel_button.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(cancel_button, "General.Cancel", "General.Pure_Cancel_Tooltip");
Index: /trunk/gli/src/org/greenstone/gatherer/gui/FileAssociationDialog.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/FileAssociationDialog.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/FileAssociationDialog.java	(revision 6318)
@@ -49,4 +49,5 @@
 import org.greenstone.gatherer.file.FileAssociationManager;
 import org.greenstone.gatherer.gui.GComboBox;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.ModalDialog;
 import org.greenstone.gatherer.gui.NonWhitespaceField;
@@ -120,26 +121,24 @@
 	JPanel command_pane = new JPanel();
 	command_field = new JTextField();
-	browse_button = new JButton();
+	browse_button = new GLIButton();
 	browse_button.setEnabled(!Utility.isMac());
 	browse_button.setMnemonic(KeyEvent.VK_B);
-	browse_button.setOpaque(false);
+
+	JPanel button_pane = new JPanel();
 	
-
-	JPanel button_pane = new JPanel();
-	add_button = new JButton();
+	add_button = new GLIButton();
 	add_button.setEnabled(false);
 	add_button.setMnemonic(KeyEvent.VK_A);
-	add_button.setOpaque(false);
-	replace_button = new JButton();
+
+	replace_button = new GLIButton();
 	replace_button.setEnabled(false);
 	replace_button.setMnemonic(KeyEvent.VK_P);
-	replace_button.setOpaque(false);
-	remove_button = new JButton();
+
+	remove_button = new GLIButton();
 	remove_button.setEnabled(false);
 	remove_button.setMnemonic(KeyEvent.VK_R);
-	remove_button.setOpaque(false);
-	close_button = new JButton();
+
+	close_button = new GLIButton();
 	close_button.setMnemonic(KeyEvent.VK_C);
-	close_button.setOpaque(false);
 
 	// Connection
Index: /trunk/gli/src/org/greenstone/gatherer/gui/GProgressBar.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/GProgressBar.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/GProgressBar.java	(revision 6318)
@@ -44,4 +44,5 @@
 import org.greenstone.gatherer.Gatherer;
 import org.greenstone.gatherer.collection.Job;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.util.Utility;
 
@@ -101,7 +102,8 @@
 	inner_pane.setBorder(BorderFactory.createEmptyBorder(2,2,2,2));
 
-	action = new JButton(Utility.getImage("vcrplay.gif"));
+	action = new GLIButton(Utility.getImage("vcrplay.gif"));
 	action.addActionListener(this);
 	action.addActionListener(owner);
+	action.setMnemonic(KeyEvent.VK_ENTER);
 	Dictionary.setTooltip(action, "Mirroring.Job.Start_Tooltip");
 
@@ -126,7 +128,8 @@
 	center_pane.add(results_status);
 
-	cancel = new JButton(Utility.getImage("vcrstop.gif"));
+	cancel = new GLIButton(Utility.getImage("vcrstop.gif"));
 	cancel.addActionListener(owner);
 	cancel.addActionListener(this);
+	cancel.setMnemonic(KeyEvent.VK_BACK_SPACE);
 	Dictionary.setTooltip(cancel, "Mirroring.Job.Stop_Tooltip");
 
Index: /trunk/gli/src/org/greenstone/gatherer/gui/LockFileDialog.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/LockFileDialog.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/LockFileDialog.java	(revision 6318)
@@ -1,2 +1,38 @@
+/**
+ *#########################################################################
+ *
+ * A component of the Gatherer application, part of the Greenstone digital
+ * library suite from the New Zealand Digital Library Project at the
+ * University of Waikato, New Zealand.
+ *
+ * <BR><BR>
+ *
+ * Author: John Thompson, Greenstone Digital Library, University of Waikato
+ *
+ * <BR><BR>
+ *
+ * Copyright (C) 1999 New Zealand Digital Library Project
+ *
+ * <BR><BR>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * <BR><BR>
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * <BR><BR>
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *########################################################################
+ */
 package org.greenstone.gatherer.gui;
 
@@ -7,4 +43,5 @@
 import org.greenstone.gatherer.Dictionary;
 import org.greenstone.gatherer.Gatherer;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.SimpleMenuBar;
 import org.greenstone.gatherer.gui.ModalDialog;
@@ -92,8 +129,8 @@
 	Dictionary.setText(central_label, "LockFileDialog.Lockfile_Message_Two");
 	JPanel button_pane = new JPanel();
-	ok_button = new JButton();
+	ok_button = new GLIButton();
 	ok_button.setMnemonic(KeyEvent.VK_O);
 	Dictionary.setBoth(ok_button, "General.OK", "LockFileDialog.OK_Tooltip");
-	cancel_button = new JButton();
+	cancel_button = new GLIButton();
 	cancel_button.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(cancel_button, "General.Cancel", "LockFileDialog.Cancel_Tooltip");
Index: /trunk/gli/src/org/greenstone/gatherer/gui/MetaEditPane.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/MetaEditPane.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/MetaEditPane.java	(revision 6318)
@@ -51,4 +51,5 @@
 import org.greenstone.gatherer.gui.Filter;
 import org.greenstone.gatherer.gui.GComboBox;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.MetaEditPrompt;
 import org.greenstone.gatherer.gui.TransformCharacterTextField;
@@ -147,5 +148,5 @@
 	this.tree_sync = tree_sync;
 
-	add = new JButton();
+	add = new GLIButton();
 	add.addActionListener(this);
 	add.setEnabled(false);
@@ -154,5 +155,5 @@
 	Dictionary.registerBoth(add, "MetaEdit.Accumulate", "MetaEdit.Accumulate_Tooltip");
 
-	update = new JButton();
+	update = new GLIButton();
 	update.addActionListener(this);
 	update.setEnabled(false);
@@ -161,5 +162,5 @@
 	Dictionary.registerBoth(update, "MetaEdit.Overwrite", "MetaEdit.Overwrite_Tooltip");
 
-	remove = new JButton();
+	remove = new GLIButton();
 	remove.addActionListener(this);
 	remove.setEnabled(false);
@@ -168,5 +169,5 @@
 	Dictionary.registerBoth(remove, "MetaEdit.Remove", "MetaEdit.Remove_Tooltip");
 
-	expand = new JButton();
+	expand = new GLIButton();
 	expand.addActionListener(this);
 	expand.setEnabled(true);
@@ -175,5 +176,5 @@
 	Dictionary.registerBoth(expand, "MetaEdit.Expand", "MetaEdit.Expand_Tooltip");
 
-	expand_for_extracted = new JButton();
+	expand_for_extracted = new GLIButton();
 	expand_for_extracted.addActionListener(this);
 	expand_for_extracted.setEnabled(true);
Index: /trunk/gli/src/org/greenstone/gatherer/gui/MetaEditPrompt.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/MetaEditPrompt.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/MetaEditPrompt.java	(revision 6318)
@@ -33,4 +33,5 @@
 import org.greenstone.gatherer.Dictionary;
 import org.greenstone.gatherer.Gatherer;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.SimpleMenuBar;
 import org.greenstone.gatherer.gui.ModalDialog;
@@ -128,40 +129,40 @@
 	JPanel buttons_pane = new JPanel();
 
-	accumulate = new JButton();
+	accumulate = new GLIButton();
 	accumulate.setEnabled(type == ADD_PROMPT);
 	accumulate.setMnemonic(KeyEvent.VK_A);
 	Dictionary.setBoth(accumulate, "MetaEdit.Accumulate", "MetaEdit.Accumulate_Tooltip");
 
-	accumulate_all = new JButton();
+	accumulate_all = new GLIButton();
 	accumulate_all.setEnabled(type == ADD_PROMPT && multiple_selection);
 	accumulate_all.setMnemonic(KeyEvent.VK_L);
 	Dictionary.setBoth(accumulate_all, "MetaEditPrompt.Accumulate_All", "MetaEditPrompt.Accumulate_All_Tooltip");
 
-	overwrite = new JButton();
+	overwrite = new GLIButton();
 	overwrite.setEnabled(type == UPDATE_PROMPT);
 	overwrite.setMnemonic(KeyEvent.VK_R);
 	Dictionary.setBoth(overwrite, "MetaEdit.Overwrite", "MetaEdit.Overwrite_Tooltip");
 
-	overwrite_all = new JButton();
+	overwrite_all = new GLIButton();
 	overwrite_all.setEnabled(type == UPDATE_PROMPT && multiple_selection);
 	overwrite_all.setMnemonic(KeyEvent.VK_P);
 	Dictionary.setBoth(overwrite_all, "MetaEditPrompt.Overwrite_All", "MetaEditPrompt.Overwrite_All_Tooltip");
 
-	remove = new JButton();
+	remove = new GLIButton();
 	remove.setEnabled(type == REMOVE_PROMPT);
 	remove.setMnemonic(KeyEvent.VK_R);
 	Dictionary.setBoth(remove, "MetaEdit.Remove", "MetaEdit.Remove_Tooltip");
 
-	remove_all = new JButton();
+	remove_all = new GLIButton();
 	remove_all.setEnabled(type == REMOVE_PROMPT && multiple_selection);
 	remove_all.setMnemonic(KeyEvent.VK_A);
 	Dictionary.setBoth(remove_all, "MetaEditPrompt.Remove_All", "MetaEditPrompt.Remove_All_Tooltip");
 
-	skip = new JButton();
+	skip = new GLIButton();
 	skip.setEnabled(multiple_selection);
 	skip.setMnemonic(KeyEvent.VK_S);
 	Dictionary.setBoth(skip, "MetaEditPrompt.Skip", "MetaEditPrompt.Skip_Tooltip");
 
-	cancel = new JButton();
+	cancel = new GLIButton();
 	cancel.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(cancel, "General.Cancel", "General.Cancel_Tooltip");
Index: /trunk/gli/src/org/greenstone/gatherer/gui/MirrorPane.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/MirrorPane.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/MirrorPane.java	(revision 6318)
@@ -49,4 +49,5 @@
 import org.greenstone.gatherer.WGet;
 import org.greenstone.gatherer.file.FileNode;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.util.Utility;
 
@@ -130,5 +131,6 @@
 
 	JPanel button_pane = new JPanel();
-	download_button = new JButton();
+	download_button = new GLIButton();
+	download_button.setMnemonic(KeyEvent.VK_ENTER);
 	Dictionary.registerBoth(download_button, "Mirroring.Download", "Mirroring.Download_Tooltip");
 
Index: /trunk/gli/src/org/greenstone/gatherer/gui/NewCollectionDetailsPrompt.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/NewCollectionDetailsPrompt.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/NewCollectionDetailsPrompt.java	(revision 6318)
@@ -6,7 +6,7 @@
  * University of Waikato, New Zealand.
  *
- * Author: John Thompson, Greenstone Digital Library, University of Waikato
+ * Author: John Thompson, Greenstone Project, NZDL, University of Waikato
  *
- * Copyright (C) 1999 New Zealand Digital Library Project
+ * Copyright (C) 2003 New Zealand Digital Library Project
  *
  * This program is free software; you can redistribute it and/or modify
@@ -37,4 +37,5 @@
 import org.greenstone.gatherer.Gatherer;
 import org.greenstone.gatherer.collection.BasicCollectionConfiguration;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.SimpleMenuBar;
 import org.greenstone.gatherer.gui.ModalDialog;
@@ -178,8 +179,8 @@
 
 	JPanel button_pane = new JPanel();
-	create_button = new JButton();
+	create_button = new GLIButton();
 	create_button.setMnemonic(KeyEvent.VK_O);
 	Dictionary.setBoth(create_button, "General.OK", "General.OK_Tooltip");
-	JButton cancel_button = new JButton();
+	JButton cancel_button = new GLIButton();
 	cancel_button.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(cancel_button, "General.Cancel", "General.Cancel_Tooltip");
Index: /trunk/gli/src/org/greenstone/gatherer/gui/NewCollectionMetadataPrompt.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/NewCollectionMetadataPrompt.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/NewCollectionMetadataPrompt.java	(revision 6318)
@@ -1,2 +1,28 @@
+/**
+ *#########################################################################
+ *
+ * A component of the Gatherer application, part of the Greenstone digital
+ * library suite from the New Zealand Digital Library Project at the
+ * University of Waikato, New Zealand.
+ *
+ * Author: John Thompson, Greenstone Digital Library, University of Waikato
+ *
+ * Copyright (C) 1999 New Zealand Digital Library Project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *########################################################################
+ */
 package org.greenstone.gatherer.gui;
 
@@ -11,4 +37,5 @@
 import org.greenstone.gatherer.checklist.CheckList;
 import org.greenstone.gatherer.checklist.Entry;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.SimpleMenuBar;
 import org.greenstone.gatherer.gui.ModalDialog;
@@ -84,8 +111,8 @@
 
 	JPanel button_pane = new JPanel();
-	JButton ok_button = new JButton();
+	JButton ok_button = new GLIButton();
 	ok_button.setMnemonic(KeyEvent.VK_O);
 	Dictionary.setBoth(ok_button, "General.OK", "General.OK_Tooltip");
-	JButton cancel_button = new JButton();
+	JButton cancel_button = new GLIButton();
 	cancel_button.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(cancel_button, "General.Cancel", "General.Pure_Cancel_Tooltip");
Index: /trunk/gli/src/org/greenstone/gatherer/gui/NewFolderPrompt.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/NewFolderPrompt.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/NewFolderPrompt.java	(revision 6318)
@@ -1,2 +1,38 @@
+/**
+ *#########################################################################
+ *
+ * A component of the Gatherer application, part of the Greenstone digital
+ * library suite from the New Zealand Digital Library Project at the
+ * University of Waikato, New Zealand.
+ *
+ * <BR><BR>
+ *
+ * Author: John Thompson, Greenstone Digital Library, University of Waikato
+ *
+ * <BR><BR>
+ *
+ * Copyright (C) 1999 New Zealand Digital Library Project
+ *
+ * <BR><BR>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * <BR><BR>
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * <BR><BR>
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *########################################################################
+ */
 package org.greenstone.gatherer.gui;
 
@@ -8,4 +44,5 @@
 import org.greenstone.gatherer.Gatherer;
 import org.greenstone.gatherer.file.FileNode;
+import org.greenstone.gatherer.gui.GLIButton;
 
 public class NewFolderPrompt
@@ -55,7 +92,9 @@
 
 	JPanel button_pane = new JPanel();
-	ok_button = new JButton();
+	ok_button = new GLIButton();
+	ok_button.setMnemonic(KeyEvent.VK_O);
 	Dictionary.setBoth(ok_button, "General.OK", "General.OK_Tooltip");
-	cancel_button = new JButton();
+	cancel_button = new GLIButton();
+	cancel_button.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(cancel_button, "General.Cancel", "General.Pure_Cancel_Tooltip");
 
Index: /trunk/gli/src/org/greenstone/gatherer/gui/NewMetaSetPrompt.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/NewMetaSetPrompt.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/NewMetaSetPrompt.java	(revision 6318)
@@ -1,2 +1,38 @@
+/**
+ *#########################################################################
+ *
+ * A component of the Gatherer application, part of the Greenstone digital
+ * library suite from the New Zealand Digital Library Project at the
+ * University of Waikato, New Zealand.
+ *
+ * <BR><BR>
+ *
+ * Author: Katherine Don, Greenstone Digital Library, University of Waikato
+ *
+ * <BR><BR>
+ *
+ * Copyright (C) 1999 New Zealand Digital Library Project
+ *
+ * <BR><BR>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * <BR><BR>
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * <BR><BR>
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *########################################################################
+ */
 package org.greenstone.gatherer.gui;
 
@@ -7,5 +43,5 @@
 import javax.swing.*;
 import javax.swing.event.*;
-import javax.swing.*;
+ import javax.swing.*;
 import javax.swing.event.*;
 import javax.swing.text.*;
@@ -14,4 +50,5 @@
 import org.greenstone.gatherer.checklist.CheckList;
 import org.greenstone.gatherer.checklist.Entry;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.SimpleMenuBar;
 import org.greenstone.gatherer.gui.ModalDialog;
@@ -78,8 +115,10 @@
 	button_pane.setOpaque(false);
 	
-	JButton ok_button = new JButton();
+	JButton ok_button = new GLIButton();
+	ok_button.setMnemonic(KeyEvent.VK_O);
 	Dictionary.setBoth(ok_button, "General.OK", "General.OK_Tooltip");
 	ok_button.setEnabled(false);
-	JButton cancel_button = new JButton();
+	JButton cancel_button = new GLIButton();
+	cancel_button.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(cancel_button, "General.Cancel", "General.Pure_Cancel_Tooltip");
 	TextFieldEnabler ok_button_enabler = new TextFieldEnabler(ok_button);
Index: /trunk/gli/src/org/greenstone/gatherer/gui/PreviewPane.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/PreviewPane.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/PreviewPane.java	(revision 6318)
@@ -45,4 +45,5 @@
 import org.greenstone.gatherer.collection.Collection;
 import org.greenstone.gatherer.Gatherer;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.util.GURL;
 import org.greenstone.gatherer.util.Utility;
@@ -70,22 +71,26 @@
 
 	// Create components
-	back = new JButton(Utility.getImage("back.gif"));
+	back = new GLIButton(Utility.getImage("back.gif"));
 	back.addActionListener(new BackListener());
 	back.setEnabled(false);
+	back.setMnemonic(KeyEvent.VK_BACK_SPACE);
 	Dictionary.registerBoth(back, "Browser.Back", "Browser.Back_Tooltip");
 
-	home = new JButton(Utility.getImage("home.gif"));
+	home = new GLIButton(Utility.getImage("home.gif"));
 	home.addActionListener(new HomeListener());
 	home.setEnabled(false);
+	home.setMnemonic(KeyEvent.VK_H);
 	Dictionary.registerBoth(home, "Browser.Home", "Browser.Home_Tooltip");
 
-	forward = new JButton(Utility.getImage("forward.gif"));
+	forward = new GLIButton(Utility.getImage("forward.gif"));
 	forward.addActionListener(new ForwardListener());
 	forward.setEnabled(false);
+	forward.setMnemonic(KeyEvent.VK_F);
 	Dictionary.registerBoth(forward, "Browser.Forward", "Browser.Forward_Tooltip");
 
-	reload = new JButton(Utility.getImage("reload.gif"));
+	reload = new GLIButton(Utility.getImage("reload.gif"));
 	reload.addActionListener(new ReloadListener());
 	reload.setEnabled(false);
+	reload.setMnemonic(KeyEvent.VK_R);
 	Dictionary.registerBoth(reload, "Browser.Reload", "Browser.Reload_Tooltip");
 
Index: /trunk/gli/src/org/greenstone/gatherer/gui/SimpleOpenCollectionDialog.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/SimpleOpenCollectionDialog.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/SimpleOpenCollectionDialog.java	(revision 6318)
@@ -36,4 +36,5 @@
 import org.greenstone.gatherer.Gatherer;
 import org.greenstone.gatherer.collection.BasicCollectionConfiguration;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.ModalDialog;
 import org.greenstone.gatherer.util.StaticStrings;
@@ -88,12 +89,12 @@
 
 	JPanel button_pane = new JPanel();
-	open_button = new JButton();
+	open_button = new GLIButton();
 	open_button.setEnabled(false);
 	open_button.setMnemonic(KeyEvent.VK_O);
 	Dictionary.setBoth(open_button, "OpenCollectionDialog.Open", "OpenCollectionDialog.Open_Tooltip");
-	advanced_button = new JButton();
+	advanced_button = new GLIButton();
 	advanced_button.setMnemonic(KeyEvent.VK_B);
 	Dictionary.setBoth(advanced_button, "OpenCollectionDialog.Browse", "OpenCollectionDialog.Browse_Tooltip");
-	cancel_button = new JButton();
+	cancel_button = new GLIButton();
 	cancel_button.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(cancel_button, "General.Cancel", "General.Pure_Cancel_Tooltip");
Index: /trunk/gli/src/org/greenstone/gatherer/gui/metaaudit/AutofilterDialog.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/metaaudit/AutofilterDialog.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/metaaudit/AutofilterDialog.java	(revision 6318)
@@ -43,4 +43,5 @@
 import org.greenstone.gatherer.Dictionary;
 import org.greenstone.gatherer.Gatherer;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.metaaudit.Autofilter;
 import org.greenstone.gatherer.gui.metaaudit.Filter;
@@ -181,11 +182,11 @@
 	}
 	JPanel button_pane = new JPanel();
-	cancel_button = new JButton();
+	cancel_button = new GLIButton();
 	cancel_button.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(cancel_button, "General.Cancel", "General.Pure_Cancel_Tooltip");
-	remove_button = new JButton();
+	remove_button = new GLIButton();
 	remove_button.setMnemonic(KeyEvent.VK_R);
 	Dictionary.setBoth(remove_button, "Autofilter.Remove", "Autofilter.Remove_Tooltip");
-	set_button = new JButton();
+	set_button = new GLIButton();
 	set_button.setMnemonic(KeyEvent.VK_S);
 	Dictionary.setBoth(set_button, "Autofilter.Set", "Autofilter.Set_Tooltip");
Index: /trunk/gli/src/org/greenstone/gatherer/gui/metaaudit/MetaAuditFrame.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/gui/metaaudit/MetaAuditFrame.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/gui/metaaudit/MetaAuditFrame.java	(revision 6318)
@@ -46,4 +46,5 @@
 import org.greenstone.gatherer.file.FileNode;
 import org.greenstone.gatherer.util.TreeSynchronizer;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.SimpleMenuBar;
 import org.greenstone.gatherer.gui.ModalDialog;
@@ -114,5 +115,5 @@
 	JPanel button_pane = new JPanel();
 
-	JButton close_button = new JButton();
+	JButton close_button = new GLIButton();
 	close_button.setMnemonic(KeyEvent.VK_C);
 	Dictionary.registerBoth(close_button, "MetaAudit.Close", "MetaAudit.Close_Tooltip");
Index: /trunk/gli/src/org/greenstone/gatherer/mem/MetadataEditorManager.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/mem/MetadataEditorManager.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/mem/MetadataEditorManager.java	(revision 6318)
@@ -49,4 +49,5 @@
 import org.greenstone.gatherer.gui.ComboArea;
 import org.greenstone.gatherer.gui.GComboBox;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.SmarterTable;
 import org.greenstone.gatherer.gui.SmarterTree;
@@ -313,33 +314,46 @@
 	JPanel inner_button_pane = new JPanel();
 	inner_button_pane.setOpaque(false);
-	add_attribute = new JButton();
+	add_attribute = new GLIButton();
+	add_attribute.setMnemonic(KeyEvent.VK_4);
 	Dictionary.setBoth(add_attribute, "MEM.Add", "MEM.Add_Attribute_Tooltip");
-	add_element = new JButton();
+	add_element = new GLIButton();
+	add_element.setMnemonic(KeyEvent.VK_3);
 	Dictionary.setBoth(add_element, "MEM.Add", "MEM.Add_Element_Tooltip");
-	add_file = new JButton();
+	add_file = new GLIButton();
+	add_file.setMnemonic(KeyEvent.VK_2);
 	Dictionary.setBoth(add_file, "MEM.Add", "MEM.Add_File_Tooltip");
-	add_set = new JButton();
+	add_set = new GLIButton();
+	add_set.setMnemonic(KeyEvent.VK_1);
 	Dictionary.setBoth(add_set, "MEM.Add", "MEM.Add_Set_Tooltip");
-	add_value = new JButton();
+	add_value = new GLIButton();
+	add_value.setMnemonic(KeyEvent.VK_5);
 	Dictionary.setBoth(add_value, "MEM.Add", "MEM.Add_Value_Tooltip");
 
-	edit_attribute = new JButton();
+	edit_attribute = new GLIButton();
+	edit_attribute.setMnemonic(KeyEvent.VK_6);
 	Dictionary.setBoth(edit_attribute, "MEM.Edit", "MEM.Edit_Attribute_Tooltip");
-	edit_value = new JButton();
+	edit_value = new GLIButton();
+	edit_value.setMnemonic(KeyEvent.VK_7);
 	Dictionary.setBoth(edit_value, "MEM.Edit", "MEM.Edit_Value_Tooltip");
 
-	remove_attribute = new JButton();
+	remove_attribute = new GLIButton();
+	remove_attribute.setMnemonic(KeyEvent.VK_MINUS);
 	Dictionary.setBoth(remove_attribute, "MEM.Remove", "MEM.Remove_Attribute_Tooltip");
-	remove_element = new JButton();
+	remove_element = new GLIButton();
+	remove_element.setMnemonic(KeyEvent.VK_0);
 	Dictionary.setBoth(remove_element, "MEM.Remove", "MEM.Remove_Element_Tooltip");
-	remove_file = new JButton();
+	remove_file = new GLIButton();
+	remove_file.setMnemonic(KeyEvent.VK_9);
 	Dictionary.setBoth(remove_file, "MEM.Remove", "MEM.Remove_File_Tooltip");
-	remove_set = new JButton();
+	remove_set = new GLIButton();
+	remove_set.setMnemonic(KeyEvent.VK_8);
 	Dictionary.setBoth(remove_set, "MEM.Remove", "MEM.Remove_Set_Tooltip");
-	remove_value = new JButton();
+	remove_value = new GLIButton();
+	remove_value.setMnemonic(KeyEvent.VK_EQUALS);
 	Dictionary.setBoth(remove_value, "MEM.Remove", "MEM.Remove_Value_Tooltip");
 	setControls(false, false, false, false, false, false, false, false, false, false, false, false);
 
-	close = new JButton();
+	close = new GLIButton();
+	close.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(close, "General.Close", "General.Close_Tooltip");
 
@@ -616,7 +630,9 @@
 	    JPanel button_pane = new JPanel();
 	    button_pane.setOpaque(false);
-	    ok_button = new JButton();
+	    ok_button = new GLIButton();
+	    ok_button.setMnemonic(KeyEvent.VK_O);
 	    Dictionary.setBoth(ok_button, "General.OK", "General.OK_Tooltip");
-	    cancel_button = new JButton();
+	    cancel_button = new GLIButton();
+	    cancel_button.setMnemonic(KeyEvent.VK_C);
 	    Dictionary.setBoth(cancel_button, "General.Cancel", "General.Pure_Cancel_Tooltip");
 
@@ -1013,7 +1029,9 @@
 	    button_pane.setOpaque(false);
 
-	    ok_button = new JButton();
+	    ok_button = new GLIButton();
+	    ok_button.setMnemonic(KeyEvent.VK_O);
 	    Dictionary.setBoth(ok_button, "General.OK", "General.OK_Tooltip");
-	    cancel_button = new JButton();
+	    cancel_button = new GLIButton();
+	    cancel_button.setMnemonic(KeyEvent.VK_C);
 	    Dictionary.setBoth(cancel_button, "General.Cancel", "General.Pure_Cancel_Tooltip");
 
@@ -1150,7 +1168,9 @@
 	    button_pane.setOpaque(false);
 
-	    ok_button = new JButton();
+	    ok_button = new GLIButton();
+	    ok_button.setMnemonic(KeyEvent.VK_O);
 	    Dictionary.setBoth(ok_button, "General.OK", "General.OK_Tooltip");
-	    cancel_button = new JButton();
+	    cancel_button = new GLIButton();
+	    cancel_button.setMnemonic(KeyEvent.VK_C);
 	    Dictionary.setBoth(cancel_button, "General.Cancel", "General.Pure_Cancel_Tooltip");
 
@@ -1275,7 +1295,9 @@
 	    button_pane.setOpaque(false);
 
-	    ok_button = new JButton();
+	    ok_button = new GLIButton();
+	    ok_button.setMnemonic(KeyEvent.VK_O);
 	    Dictionary.setBoth(ok_button, "General.OK", "General.OK_Tooltip");
-	    cancel_button = new JButton();
+	    cancel_button = new GLIButton();
+	    cancel_button.setMnemonic(KeyEvent.VK_C);
 	    Dictionary.setBoth(cancel_button, "General.Cancel", "General.Pure_Cancel_Tooltip");
 	    TextFieldEnabler ok_button_enabler = new TextFieldEnabler(ok_button);
@@ -1404,8 +1426,10 @@
 	    button_pane.setOpaque(false);
 
-	    ok_button = new JButton();
+	    ok_button = new GLIButton();
+	    ok_button.setMnemonic(KeyEvent.VK_O);
 	    ok_button.setEnabled(false);
 	    Dictionary.setBoth(ok_button, "General.OK", "General.OK_Tooltip");
-	    cancel_button = new JButton();
+	    cancel_button = new GLIButton();
+	    cancel_button.setMnemonic(KeyEvent.VK_C);
 	    Dictionary.setBoth(cancel_button, "General.Cancel", "General.Pure_Cancel_Tooltip");
 	    TextFieldEnabler ok_button_enabler = new TextFieldEnabler(ok_button);
Index: /trunk/gli/src/org/greenstone/gatherer/msm/ExportMDSPrompt.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/msm/ExportMDSPrompt.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/msm/ExportMDSPrompt.java	(revision 6318)
@@ -47,4 +47,5 @@
 import org.greenstone.gatherer.msm.MetadataSetManager;
 import org.greenstone.gatherer.util.Utility;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.SimpleMenuBar;
 import org.greenstone.gatherer.gui.ModalDialog;
@@ -137,10 +138,11 @@
 	file_name = new JTextField(Utility.METADATA_DIR);
 	Dictionary.setTooltip(file_name, "MSMPrompt.Export_File_Tooltip");
-	browse_button = new JButton();
+	browse_button = new GLIButton();
+	browse_button.setMnemonic(KeyEvent.VK_B);
 	Dictionary.setBoth(browse_button, "General.Browse", "General.Browse_Tooltip");
 
 	JPanel button_pane = new JPanel();
 	if(export) {
-	    export_button = new JButton();
+	    export_button = new GLIButton();
 	    export_button.setEnabled(false);
 	    export_button.setMnemonic(KeyEvent.VK_E);
@@ -148,5 +150,5 @@
 	}
 	else {
-	    export_button = new JButton();
+	    export_button = new GLIButton();
 	    export_button.setEnabled(true);
 	    export_button.setMnemonic(KeyEvent.VK_I);
@@ -154,5 +156,5 @@
 	}
 
-	cancel_button = new JButton();
+	cancel_button = new GLIButton();
 	cancel_button.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(cancel_button, "General.Cancel", "General.Pure_Cancel_Tooltip");
Index: /trunk/gli/src/org/greenstone/gatherer/msm/GDMManager.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/msm/GDMManager.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/msm/GDMManager.java	(revision 6318)
@@ -46,4 +46,5 @@
 import org.greenstone.gatherer.Gatherer;
 import org.greenstone.gatherer.file.FileNode;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.MetaEditPrompt;
 import org.greenstone.gatherer.msm.ElementWrapper;
@@ -131,5 +132,6 @@
 	documents_in_cache_combobox = new JComboBox();
 	documents_in_cache_combobox.addItemListener(new DOMItemListener());
-	JButton refresh_button = new JButton("Refresh Tree");
+	JButton refresh_button = new GLIButton("Refresh Tree");
+	refresh_button.setMnemonic(KeyEvent.VK_R);
 	refresh_button.addActionListener(new ActionListener() {
 		public void actionPerformed(ActionEvent event) {
Index: /trunk/gli/src/org/greenstone/gatherer/msm/MSMPrompt.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/msm/MSMPrompt.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/msm/MSMPrompt.java	(revision 6318)
@@ -45,4 +45,5 @@
 import org.greenstone.gatherer.Dictionary;
 import org.greenstone.gatherer.Gatherer;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.gui.ModalDialog;
 import org.greenstone.gatherer.gui.SimpleMenuBar;
@@ -91,5 +92,5 @@
 
 	// Create components
-  	cancel = new JButton();
+  	cancel = new GLIButton();
   	cancel.addActionListener(this);
   	cancel.setEnabled(true);
@@ -181,5 +182,5 @@
 	JLabel attribute_name = new JLabel(att_new.getAttribute("name"));
 
-	add = new JButton();
+	add = new GLIButton();
  	add.addActionListener(this);
   	add.setEnabled(true);
@@ -187,11 +188,11 @@
   	Dictionary.registerBoth(add, "MSMPrompt.Add", "MSMPrompt.Add_Tooltip");
 
-  	replace = new JButton();
+  	replace = new GLIButton();
   	replace.addActionListener(this);
   	replace.setEnabled(false);
-  	replace.setMnemonic(KeyEvent.VK_R);
+  	replace.setMnemonic(KeyEvent.VK_P);
   	Dictionary.registerBoth(replace, "MSMPrompt.Replace", "MSMPrompt.Replace_Tooltip");
 
-        skip = new JButton();
+        skip = new GLIButton();
   	skip.addActionListener(this);
   	skip.setEnabled(true);
@@ -308,5 +309,5 @@
 	Dictionary.registerText(progress_label, "MSMPrompt.Progress");
 
-  	add = new JButton();
+  	add = new GLIButton();
  	add.addActionListener(this);
   	add.setEnabled(false);
@@ -314,5 +315,5 @@
   	Dictionary.registerBoth(add, "MSMPrompt.Add", "MSMPrompt.Add_Tooltip");
 
-  	merge = new JButton();
+  	merge = new GLIButton();
   	merge.addActionListener(this);
   	merge.setEnabled(true);
@@ -320,5 +321,5 @@
   	Dictionary.registerBoth(merge, "MSMPrompt.Merge", "MSMPrompt.Merge_Tooltip");
 
-  	rename = new JButton();
+  	rename = new GLIButton();
   	rename.addActionListener(this);
   	rename.setEnabled(false);
@@ -326,11 +327,11 @@
   	Dictionary.registerBoth(rename, "MSMPrompt.Rename", "MSMPrompt.Rename_Tooltip");
 
-  	replace = new JButton();
+  	replace = new GLIButton();
   	replace.addActionListener(this);
   	replace.setEnabled(false);
-  	replace.setMnemonic(KeyEvent.VK_R);
+  	replace.setMnemonic(KeyEvent.VK_P);
   	Dictionary.registerBoth(replace, "MSMPrompt.Replace", "MSMPrompt.Replace_Tooltip");
 
-  	skip = new JButton();
+  	skip = new GLIButton();
   	skip.addActionListener(this);
   	skip.setEnabled(true);
@@ -494,5 +495,5 @@
 	Dictionary.setTooltip(new_name, "MSMPrompt.New_Name_Tooltip");
 
-	JButton ok = new JButton();
+	JButton ok = new GLIButton();
 	ok.addActionListener(this);
 	ok.setMnemonic(KeyEvent.VK_O);
@@ -596,5 +597,5 @@
 	Dictionary.setText(dialog, "MSMPrompt.Select");
 
-	JButton ok = new JButton();
+	JButton ok = new GLIButton();
 	ok.addActionListener(this);
 	ok.setMnemonic(KeyEvent.VK_O);
@@ -707,19 +708,19 @@
 	Dictionary.setTooltip(element, "MSMPrompt.Select_Element_Element_Tooltip");
 
-	JButton add_button = new JButton();
+	JButton add_button = new GLIButton();
 	add_button.setEnabled(false);
 	add_button.setMnemonic(KeyEvent.VK_A);
 	Dictionary.setBoth(add_button, "MSMPrompt.Select_Element_Add", "MSMPrompt.Select_Element_Add_Tooltip");
 
-	JButton cancel_button = new JButton();
+	JButton cancel_button = new GLIButton();
 	cancel_button.setMnemonic(KeyEvent.VK_C);
 	Dictionary.setBoth(cancel_button, "General.Cancel", "General.Cancel_Tooltip");
 
-	JButton merge_button = new JButton();
+	JButton merge_button = new GLIButton();
 	merge_button.setEnabled(false);
 	merge_button.setMnemonic(KeyEvent.VK_M);
 	Dictionary.setBoth(merge_button, "MSMPrompt.Select_Element_Merge", "MSMPrompt.Select_Element_Merge_Tooltip");
 
-	JButton ignore_button = new JButton();
+	JButton ignore_button = new GLIButton();
 	ignore_button.setMnemonic(KeyEvent.VK_I);
 	Dictionary.setBoth(ignore_button, "MSMPrompt.Select_Element_Ignore", "MSMPrompt.Select_Element_Ignore_Tooltip");
@@ -857,90 +858,4 @@
     }
 
-    /** Prompts the user to select a metadata set from the given list. Uses the name parameter to attempt to automatically select the correct collection (ie the only collection that has an element with the same name).
-     * @param name The name of the metadata element whose set name is unknown.
-     * @return The metadata set the user has selected or null if no set selected.
-     */
-    /* final private MetadataSet selectSet(String name) {
-	String args[] = new String[1];
-	args[0] = name;
-
-	// Creation
-	MSMDialog dialog = new MSMDialog();
-	dialog.setModal(true);
-	dialog.setSize(SELECT_SET_SIZE);
-	dialog.setJMenuBar(new SimpleMenuBar("importingpreviouslyassignedmetadata"));
-	Dictionary.setText(dialog, "MSMPrompt.Select_Set_Title");
-
-	JPanel content_pane = (JPanel) dialog.getContentPane();
-	JPanel control_pane = new JPanel();
-	JTextArea instructions = new JTextArea();
-	instructions.setBackground(Gatherer.config.getColor("coloring.collection_tree_background", false));
-	instructions.setEditable(false);
-	instructions.setLineWrap(true);
-	instructions.setRows(SELECT_LINE_COUNT);
-	instructions.setWrapStyleWord(true);
-	Dictionary.setText(instructions, "MSMPrompt.Select_Set_Instructions", args);
-
-	JComboBox set = new JComboBox();
-	set.setBackground(Color.white);
-	set.addItem(Dictionary.get("MSMPrompt.Select_Set_None"));
-	Vector sets = manager.getSets();
-	for(int i = sets.size() - 1; i >= 0; i--) {
-	    set.addItem(sets.get(i));
-	}
-	Dictionary.setTooltip(set, "MSMPrompt.Select_Element_Set_Tooltip");
-
-	JButton ok = new JButton();
-	ActionListener ok_listener = new IgnoreListener(dialog);
-	ok.addActionListener(ok_listener); // Doesn't really ignore. Just disposes()
-	Dictionary.setBoth(ok, "General.OK", "General.OK_Tooltip");
-
-	// Select most likely set
-	if(name.indexOf(".") != -1) {
-	    String set_name = name.substring(0, name.indexOf("."));
-	    MetadataSet metadata_set = manager.getSet(set_name);
-	    if(metadata_set != null) {
-		set.setSelectedItem(metadata_set);
-	    }
-	    metadata_set = null;
-	    set_name = null;
-	}
-	else {
-	    Vector matches = manager.setsThatContain(name);
-	    if(matches.size() == 1) {
-		set.setSelectedItem(matches.get(0));
-	    }
-	    matches = null;
-	}
-
-	// Layout
-	control_pane.setLayout(new GridLayout(2,1));
-	control_pane.add(set);
-	control_pane.add(ok);
-	content_pane.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
-	content_pane.setLayout(new BorderLayout());
-	content_pane.add(new JScrollPane(instructions), BorderLayout.CENTER);
-	content_pane.add(control_pane, BorderLayout.SOUTH);
-
-	// Display
-	dialog.setLocation((screen_size.width - SELECT_SET_SIZE.width) / 2, (screen_size.height - SELECT_SET_SIZE.height) / 2);
-	dialog.setVisible(true);
-	Object value = set.getSelectedItem();
-	if(value instanceof MetadataSet) {
-	    return (MetadataSet) value;
-	}
-	value = null;
-	ok.removeActionListener(ok_listener);
-	ok_listener = null;
-	ok = null;
-	content_pane = null;
-	control_pane = null;
-	instructions = null;
-	set = null;
-	dialog.destroy();
-	dialog = null;
-	return null;
-	} */
-
     private class AddListener 
 	implements ActionListener {
Index: /trunk/gli/src/org/greenstone/gatherer/util/AppendLineOnlyFileDocument.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/util/AppendLineOnlyFileDocument.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/util/AppendLineOnlyFileDocument.java	(revision 6318)
@@ -8,6 +8,6 @@
 import javax.swing.event.*;
 import javax.swing.text.*;
-
 import org.greenstone.gatherer.Gatherer;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.util.StaticStrings;
 
@@ -614,5 +614,6 @@
 	final JTextArea text_area = new JTextArea(document);
 
-	JButton read_button = new JButton("Read Huge File");
+	JButton read_button = new GLIButton("Read Huge File");
+	read_button.setMnemonic(KeyEvent.VK_R);
 	read_button.addActionListener(new ActionListener() {
 		public void actionPerformed(ActionEvent event) {
Index: /trunk/gli/src/org/greenstone/gatherer/util/TreeModelTest.java
===================================================================
--- /trunk/gli/src/org/greenstone/gatherer/util/TreeModelTest.java	(revision 6317)
+++ /trunk/gli/src/org/greenstone/gatherer/util/TreeModelTest.java	(revision 6318)
@@ -1,2 +1,38 @@
+/**
+ *#########################################################################
+ *
+ * A component of the Gatherer application, part of the Greenstone digital
+ * library suite from the New Zealand Digital Library Project at the
+ * University of Waikato, New Zealand.
+ *
+ * <BR><BR>
+ *
+ * Author: John Thompson, Greenstone Digital Library, University of Waikato
+ *
+ * <BR><BR>
+ *
+ * Copyright (C) 1999 New Zealand Digital Library Project
+ *
+ * <BR><BR>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * <BR><BR>
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * <BR><BR>
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *########################################################################
+ */
 package org.greenstone.gatherer.util;
 
@@ -7,4 +43,5 @@
 import javax.swing.*;
 import javax.swing.tree.*;
+import org.greenstone.gatherer.gui.GLIButton;
 import org.greenstone.gatherer.util.DefaultSynchronizedTreeNode;
 import org.greenstone.gatherer.util.SynchronizedTreeModel;
@@ -109,9 +146,12 @@
 
 	JPanel button_panel = new JPanel();
-	JButton add_button = new JButton("Add Node");
+	JButton add_button = new GLIButton("Add Node");
+	add_button.setMnemonic(KeyEvent.VK_A);
 	dangerous_button = new JToggleButton("Dangerous!");
 	dangerous_button.setSelected(false);
-	JButton remove_button = new JButton("Remove Node");
-	JButton preset_button = new JButton("Preset Structure");
+	JButton remove_button = new GLIButton("Remove Node");
+	remove_button.setMnemonic(KeyEvent.VK_R);
+	JButton preset_button = new GLIButton("Preset Structure");
+	preset_button.setMnemonic(KeyEvent.VK_P);
 
 	// Connection
