Index: /gli/trunk/src/org/greenstone/gatherer/cdm/PluginManager.java
===================================================================
--- /gli/trunk/src/org/greenstone/gatherer/cdm/PluginManager.java	(revision 17034)
+++ /gli/trunk/src/org/greenstone/gatherer/cdm/PluginManager.java	(revision 17035)
@@ -70,4 +70,7 @@
     private JPanel separator;
     private Plugin separator_plugin;
+
+  /** The number of plugins that are fixed 'below the line' */
+  private static int NUM_FIXED_PLUGINS = 3; 
     /** Constructor.
      */
@@ -117,6 +120,6 @@
 	    if (!plugin.isAbstract()) {
 		String plugin_name = plugin.getName();
-		if (!plugin_name.equals(StaticStrings.ARCPLUG_STR) && !plugin_name.equals(StaticStrings.RECPLUG_STR)) {
-		    available.add(plugin);
+		if (!plugin_name.equals(StaticStrings.ARCPLUG_STR) && !plugin_name.equals(StaticStrings.RECPLUG_STR) && !plugin_name.equals(StaticStrings.METADATAXMLPLUG_STR)) {
+		  available.add(plugin);
 		}
 	    }
@@ -196,5 +199,5 @@
      */
     private void assignPlugin(Plugin plugin) {
-	if(plugin.getName().equals(StaticStrings.RECPLUG_STR) || plugin.getName().equals(StaticStrings.ARCPLUG_STR)) {
+      if(plugin.getName().equals(StaticStrings.RECPLUG_STR) || plugin.getName().equals(StaticStrings.ARCPLUG_STR) || plugin.getName().equals(StaticStrings.METADATAXMLPLUG_STR)) {
 	    addAfter(plugin, separator_plugin); // Adds after separator
 	} else {
@@ -273,5 +276,5 @@
 	int result = super.getSize();
 	if(modify_row_count) {
-	    result = result-3;
+	  result = result-(NUM_FIXED_PLUGINS+1);
 	}
 	return result;
@@ -295,9 +298,9 @@
     private void movePlugin(Plugin plugin, boolean direction, boolean all) {
 	// Can't ever move RecPlug or ArcPlug
-	if(super.getSize() < 4) {
+      if(super.getSize() < (NUM_FIXED_PLUGINS+2)) {
 	    //DebugStream.println("Not enough plugins to allow moving.");
 	    return;
 	}
-	if(plugin.getName().equals(StaticStrings.ARCPLUG_STR) || plugin.getName().equals(StaticStrings.RECPLUG_STR)) {
+	if(plugin.getName().equals(StaticStrings.ARCPLUG_STR) || plugin.getName().equals(StaticStrings.RECPLUG_STR) || plugin.getName().equals(StaticStrings.METADATAXMLPLUG_STR)) {
 	    JOptionPane.showMessageDialog(Gatherer.g_man, Dictionary.get("CDM.Move.Fixed"), Dictionary.get("CDM.Move.Title"), JOptionPane.ERROR_MESSAGE);
 	    return;
@@ -364,5 +367,5 @@
 		Plugin plugin = (Plugin) getElementAt(index);
 		String name = plugin.getName();
-		if(name.equals(StaticStrings.RECPLUG_STR) || name.equals(StaticStrings.ARCPLUG_STR)) {
+		if(name.equals(StaticStrings.RECPLUG_STR) || name.equals(StaticStrings.ARCPLUG_STR) || name.equals(StaticStrings.METADATAXMLPLUG_STR)) {
 		    found_fixed = true;
 		    index--;
@@ -398,6 +401,6 @@
 
 
-    /** Inform the model to hide/show the last three lines on the list.
-     * @param modify_row_count true to hide the last three lines, false otherwise
+    /** Inform the model to hide/show the last four lines on the list.
+     * @param modify_row_count true to hide the last four lines, false otherwise
      */
     private void setHideLines(boolean modify_row_count) {
@@ -405,8 +408,8 @@
 	int original_size = super.getSize();
 	if(modify_row_count) {
-	    fireIntervalRemoved(this, original_size - 4, original_size - 1);
+	  fireIntervalRemoved(this, original_size - (NUM_FIXED_PLUGINS+2), original_size - 1);
 	}
 	else {
-	    fireIntervalAdded(this, original_size - 4, original_size - 1);
+	  fireIntervalAdded(this, original_size - (NUM_FIXED_PLUGINS+2), original_size - 1);
 	}
     }
@@ -724,11 +727,9 @@
             String plugin_name = selected_plugin.getName();
             // Some buttons are only available for plugins other than ArcPlug and RecPlug
-            if(plugin_name.equals(StaticStrings.ARCPLUG_STR) || plugin_name.equals(StaticStrings.RECPLUG_STR) ) {
+            if(plugin_name.equals(StaticStrings.ARCPLUG_STR) || plugin_name.equals(StaticStrings.RECPLUG_STR) || plugin_name.equals(StaticStrings.METADATAXMLPLUG_STR)) {
               move_up_button.setEnabled(false);
               move_down_button.setEnabled(false);
               remove.setEnabled(false);
-            } else if (plugin_name.equals(StaticStrings.METADATAXMLPLUG_STR)) {
-              remove.setEnabled(false);
-            }
+            } 
             
             else {
