From db131a4757955895f6eabd325dfd1126b2d6aa8c Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Tue, 27 Oct 2009 18:04:55 +0000
Subject: [PATCH] Fix for issue 4323 (Indexes: remove id2children and id2subtree from control panel) Fix for issue 4322 (Indexes: rebuild-all not available in the control-panel) Identify the indexes and check whether rebuildAll should be called or not.

---
 opends/src/guitools/org/opends/guitools/controlpanel/ui/RebuildIndexPanel.java |   44 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/ui/RebuildIndexPanel.java b/opends/src/guitools/org/opends/guitools/controlpanel/ui/RebuildIndexPanel.java
index 77ae9b9..0f09378 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/ui/RebuildIndexPanel.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/ui/RebuildIndexPanel.java
@@ -33,6 +33,7 @@
 import java.awt.GridBagConstraints;
 import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
@@ -49,6 +50,7 @@
 import org.opends.guitools.controlpanel.datamodel.BackendDescriptor;
 import org.opends.guitools.controlpanel.datamodel.CategorizedComboBoxElement;
 import org.opends.guitools.controlpanel.datamodel.ControlPanelInfo;
+import org.opends.guitools.controlpanel.datamodel.IndexDescriptor;
 import org.opends.guitools.controlpanel.datamodel.ServerDescriptor;
 import org.opends.guitools.controlpanel.datamodel.SortableListModel;
 import org.opends.guitools.controlpanel.event.ConfigurationChangeEvent;
@@ -230,7 +232,9 @@
    */
   private void refreshContents(final ServerDescriptor desc)
   {
-    updateIndexMap(desc, hmIndexes);
+    super.updateIndexMap(desc, hmIndexes);
+    filterIndexes(hmIndexes);
+
     updateBaseDNComboBoxModel((DefaultComboBoxModel)baseDNs.getModel(), desc);
 
     // Check that all backends
@@ -279,7 +283,7 @@
         addRemove.getSelectedList().repaint();
 
         Utilities.updateViewPositions(pos);
-        if (!desc.isLocal() && false)
+        if (!desc.isLocal())
         {
           displayErrorMessage(INFO_CTRL_PANEL_SERVER_REMOTE_SUMMARY.get(),
           INFO_CTRL_PANEL_SERVER_MUST_BE_LOCAL_REBUILD_INDEX_SUMMARY.get());
@@ -399,4 +403,40 @@
     }
     return dn;
   }
+
+  private void filterIndexes(
+      HashMap<String, SortedSet<AbstractIndexDescriptor>> hmIndexes)
+  {
+ // Remove the indexes that are not to be added.
+    for (SortedSet<AbstractIndexDescriptor> indexes : hmIndexes.values())
+    {
+      ArrayList<AbstractIndexDescriptor> toRemove =
+        new ArrayList<AbstractIndexDescriptor>();
+      for (AbstractIndexDescriptor index : indexes)
+      {
+        if (!mustBeDisplayed(index))
+        {
+          toRemove.add(index);
+        }
+      }
+      indexes.removeAll(toRemove);
+    }
+  }
+
+  private boolean mustBeDisplayed(AbstractIndexDescriptor index)
+  {
+    boolean mustBeDisplayed = true;
+    if (index instanceof IndexDescriptor)
+    {
+      for (String name : RebuildIndexTask.INDEXES_NOT_TO_SPECIFY)
+      {
+        if (name.equalsIgnoreCase(index.getName()))
+        {
+          mustBeDisplayed = false;
+          break;
+        }
+      }
+    }
+    return mustBeDisplayed;
+  }
 }

--
Gitblit v1.10.0