From b482986150100dfd464693ca9861a69734b006da Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Thu, 19 Feb 2009 16:18:48 +0000
Subject: [PATCH] Fix for issue 3813 (Minor enhancements for the Control Panel authentication)

---
 opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusPanel.java |  117 ++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 73 insertions(+), 44 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusPanel.java b/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusPanel.java
index 43cfbb8..cc8f23c 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusPanel.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusPanel.java
@@ -61,6 +61,7 @@
 import org.opends.guitools.controlpanel.datamodel.ConnectionHandlerTableModel;
 import org.opends.guitools.controlpanel.datamodel.ServerDescriptor;
 import org.opends.guitools.controlpanel.event.ConfigurationChangeEvent;
+import org.opends.guitools.controlpanel.event.ScrollPaneBorderListener;
 import org.opends.guitools.controlpanel.ui.components.LabelWithHelpIcon;
 import org.opends.guitools.controlpanel.ui.renderer.BaseDNCellRenderer;
 import org.opends.guitools.controlpanel.ui.renderer.CustomCellRenderer;
@@ -104,8 +105,6 @@
   private ConnectionHandlerTableModel connectionHandlerTableModel;
   private JTable connectionHandlersTable;
 
-  private JButton authenticate;
-
   /**
    * Default constructor.
    *
@@ -117,50 +116,46 @@
     gbc.gridx = 0;
     gbc.gridy = 0;
     gbc.gridwidth = 1;
-    addErrorPane(gbc);
-    gbc.gridy ++;
-    gbc.fill = GridBagConstraints.HORIZONTAL;
-    gbc.insets = new Insets(0, 0, 0, 0);
+    createErrorPane();
+    gbc.insets = new Insets(20, 20, 10, 20);
+    gbc.fill = GridBagConstraints.BOTH;
     gbc.weightx = 1.0;
-    add(createServerStatusPanel(), gbc);
+    add(errorPane, gbc);
+    JPanel inScrollPanel = new JPanel(new GridBagLayout());
+    inScrollPanel.setOpaque(false);
+    gbc.gridy ++;
+    gbc.weighty = 1.0;
+    JScrollPane scroll = Utilities.createBorderLessScrollBar(inScrollPanel);
+    gbc.insets = new Insets(0, 0, 0, 0);
+    add(scroll, gbc);
+    ScrollPaneBorderListener.createFullBorderListener(scroll);
 
-    gbc.insets.top = 15;
+    gbc.gridy = 0;
+    gbc.gridx = 0;
+    gbc.fill = GridBagConstraints.HORIZONTAL;
+    gbc.weightx = 1.0;
+    gbc.insets = new Insets(15, 10, 0, 10);
+    gbc.weighty = 0.0;
+    inScrollPanel.add(createServerStatusPanel(), gbc);
 
     gbc.gridy ++;
-    add(createServerDetailsPanel(), gbc);
+    inScrollPanel.add(createServerDetailsPanel(), gbc);
 
-    // To compensate titled border.
-    gbc.insets.left = 3;
-    gbc.insets.right = 3;
+//  To compensate titled border.
+    gbc.insets.left += 3;
+    gbc.insets.right += 3;
     gbc.gridy ++;
-    add(createListenersPanel(), gbc);
+    inScrollPanel.add(createListenersPanel(), gbc);
 
     gbc.gridy ++;
-    add(createBackendsPanel(), gbc);
-
-    addBottomGlue(gbc);
+    gbc.insets.bottom = 20;
+    inScrollPanel.add(createBackendsPanel(), gbc);
 
     gbc.gridy ++;
-    gbc.anchor = GridBagConstraints.EAST;
-    authenticate = Utilities.createButton(
-        INFO_AUTHENTICATE_BUTTON_LABEL.get());
-    authenticate.setToolTipText(
-        INFO_AUTHENTICATE_CONTROL_PANEL_BUTTON_TOOLTIP.get().toString());
-    authenticate.setOpaque(false);
-    gbc.fill = GridBagConstraints.NONE;
-    gbc.insets.bottom = 0;
-    authenticate.setOpaque(false);
-    authenticate.addActionListener(new ActionListener()
-    {
-      /**
-       * {@inheritDoc}
-       */
-      public void actionPerformed(ActionEvent ev)
-      {
-        authenticate();
-      }
-    });
-    add(authenticate, gbc);
+    gbc.weighty = 1.0;
+    gbc.insets = new Insets(0, 0, 0, 0);
+    gbc.fill = GridBagConstraints.VERTICAL;
+    inScrollPanel.add(Box.createVerticalGlue(), gbc);
   }
 
   /**
@@ -168,11 +163,7 @@
    */
   public Component getPreferredFocusComponent()
   {
-    if (authenticate.isVisible())
-    {
-      return authenticate;
-    }
-    else if (startButton.isVisible())
+    if (startButton.isVisible())
     {
       return startButton;
     }
@@ -182,6 +173,15 @@
     }
   }
 
+
+  /**
+   * {@inheritDoc}
+   */
+  public boolean requiresBorder()
+  {
+    return false;
+  }
+
   private void recalculateSizes()
   {
     Utilities.updateTableSizes(replicationBaseDNsTable);
@@ -248,7 +248,28 @@
     Collection<OpenDsException> exceptions = desc.getExceptions();
     if (exceptions.size() == 0)
     {
-      errorPane.setVisible(false);
+      boolean errorPaneVisible = false;
+      if (desc.getStatus() == ServerDescriptor.ServerStatus.STARTED)
+      {
+        if (!desc.isAuthenticated())
+        {
+          errorPaneVisible = true;
+          MessageBuilder mb = new MessageBuilder();
+          mb.append(
+              INFO_CTRL_PANEL_AUTH_REQUIRED_TO_BROWSE_MONITORING_SUMMARY.
+              get());
+          mb.append("<br><br>"+getAuthenticateHTML());
+          Message title =
+            INFO_CTRL_PANEL_AUTHENTICATION_REQUIRED_SUMMARY.get();
+          updateErrorPane(errorPane, title,
+              ColorAndFontConstants.errorTitleFont,
+              mb.toMessage(), ColorAndFontConstants.defaultFont);
+        }
+      }
+      if (errorPane.isVisible() != errorPaneVisible)
+      {
+        errorPane.setVisible(errorPaneVisible);
+      }
     }
     else
     {
@@ -267,6 +288,16 @@
         }
         mb.append(error);
       }
+      if (desc.getStatus() == ServerDescriptor.ServerStatus.STARTED)
+      {
+        if (!desc.isAuthenticated())
+        {
+          mb.append(
+     INFO_CTRL_PANEL_AUTH_REQUIRED_TO_BROWSE_MONITORING_SUMMARY.
+     get());
+          mb.append("<br><br>"+getAuthenticateHTML());
+        }
+      }
       updateErrorPane(errorPane, title, ColorAndFontConstants.errorTitleFont,
           mb.toMessage(), ColorAndFontConstants.defaultFont);
 
@@ -422,8 +453,6 @@
     connectionHandlersTable.getTableHeader().setVisible(hasConnectionHandlers);
     connectionHandlerTableEmpty.setVisible(!hasConnectionHandlers);
 
-    authenticate.setVisible(!isAuthenticated && isRunning);
-
     recalculateSizes();
 
     Utilities.updateViewPositions(pos);

--
Gitblit v1.10.0