From 06ec8c88556b02782c7b91a233de91eaf4a1439d Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Tue, 09 Jun 2009 12:28:05 +0000
Subject: [PATCH] Fix for issue 3550 (Consider making the control panel able to manage remote servers)

---
 opends/src/guitools/org/opends/guitools/controlpanel/ui/ImportLDIFPanel.java |   68 +++++++++++++++++++++++++++++----
 1 files changed, 59 insertions(+), 9 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/ui/ImportLDIFPanel.java b/opends/src/guitools/org/opends/guitools/controlpanel/ui/ImportLDIFPanel.java
index 5fa2d5b..bb17888 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/ui/ImportLDIFPanel.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/ui/ImportLDIFPanel.java
@@ -48,6 +48,7 @@
 import javax.swing.JLabel;
 import javax.swing.JRadioButton;
 import javax.swing.JTextField;
+import javax.swing.SwingUtilities;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 import javax.swing.event.DocumentEvent;
@@ -55,6 +56,7 @@
 
 import org.opends.guitools.controlpanel.datamodel.BackendDescriptor;
 import org.opends.guitools.controlpanel.datamodel.ControlPanelInfo;
+import org.opends.guitools.controlpanel.datamodel.ServerDescriptor;
 import org.opends.guitools.controlpanel.event.BrowseActionListener;
 import org.opends.guitools.controlpanel.event.ConfigurationChangeEvent;
 import org.opends.guitools.controlpanel.task.Task;
@@ -84,6 +86,9 @@
   private JTextField skipsFile;
   private JCheckBox overwriteRejectsFile;
   private JCheckBox overwriteSkipsFile;
+  private JButton bBrowse;
+  private JButton rejectsBrowse;
+  private JButton skipsBrowse;
 
   private JLabel lBackend;
   private JLabel lNoBackendsFound;
@@ -92,6 +97,9 @@
   private JLabel lSchemaValidation;
   private JLabel lRejectsFile;
   private JLabel lSkipsFile;
+  private JLabel lRemoteFileHelp;
+  private JLabel lRemoteRejectsHelp;
+  private JLabel lRemoteSkipsHelp;
 
   private DocumentListener documentListener;
 
@@ -204,7 +212,7 @@
     gbc.weightx = 1.0;
     gbc.fill = GridBagConstraints.HORIZONTAL;
     add(file, gbc);
-    JButton bBrowse = Utilities.createButton(
+    bBrowse = Utilities.createButton(
         INFO_CTRL_PANEL_BROWSE_BUTTON_LABEL.get());
     bBrowse.addActionListener(
         new BrowseActionListener(file,
@@ -214,6 +222,16 @@
     gbc.weightx = 0.0;
     bBrowse.setOpaque(false);
     add(bBrowse, gbc);
+
+    lRemoteFileHelp = Utilities.createInlineHelpLabel(
+        INFO_CTRL_PANEL_REMOTE_SERVER_PATH.get());
+    gbc.gridx = 1;
+    gbc.gridwidth = 2;
+    gbc.insets.top = 3;
+    gbc.insets.left = 10;
+    gbc.gridy ++;
+    add(lRemoteFileHelp, gbc);
+
     gbc.gridx = 1;
     gbc.gridy ++;
     gbc.insets.left = 30;
@@ -310,7 +328,7 @@
     gbc.weightx = 1.0;
     gbc.fill = GridBagConstraints.HORIZONTAL;
     add(rejectsFile, gbc);
-    final JButton rejectsBrowse =
+    rejectsBrowse =
       Utilities.createButton(INFO_CTRL_PANEL_BROWSE_BUTTON_LABEL.get());
     rejectsBrowse.addActionListener(
         new BrowseActionListener(rejectsFile,
@@ -321,6 +339,16 @@
     gbc.insets.left = 10;
     rejectsBrowse.setOpaque(false);
     add(rejectsBrowse, gbc);
+
+    lRemoteRejectsHelp = Utilities.createInlineHelpLabel(
+        INFO_CTRL_PANEL_REMOTE_SERVER_PATH.get());
+    gbc.gridx = 1;
+    gbc.gridwidth = 2;
+    gbc.insets.top = 3;
+    gbc.insets.left = 10;
+    gbc.gridy ++;
+    add(lRemoteRejectsHelp, gbc);
+
     gbc.gridx = 1;
     gbc.gridy ++;
     gbc.insets.left = 30;
@@ -370,7 +398,7 @@
     gbc.weightx = 1.0;
     gbc.fill = GridBagConstraints.HORIZONTAL;
     add(skipsFile, gbc);
-    final JButton skipsBrowse =
+    skipsBrowse =
       Utilities.createButton(INFO_CTRL_PANEL_BROWSE_BUTTON_LABEL.get());
     skipsBrowse.addActionListener(
         new BrowseActionListener(skipsFile,
@@ -382,6 +410,15 @@
     skipsBrowse.setOpaque(false);
     add(skipsBrowse, gbc);
 
+    lRemoteSkipsHelp = Utilities.createInlineHelpLabel(
+        INFO_CTRL_PANEL_REMOTE_SERVER_PATH.get());
+    gbc.gridx = 1;
+    gbc.gridwidth = 2;
+    gbc.insets.top = 3;
+    gbc.insets.left = 10;
+    gbc.gridy ++;
+    add(lRemoteSkipsHelp, gbc);
+
     gbc.gridx = 1;
     gbc.gridy ++;
     gbc.insets.left = 30;
@@ -446,10 +483,23 @@
    */
   public void configurationChanged(ConfigurationChangeEvent ev)
   {
-    updateSimpleBackendComboBoxModel(backends, lNoBackendsFound,
-        ev.getNewDescriptor());
-    updateErrorPaneAndOKButtonIfAuthRequired(getInfo().getServerDescriptor(),
-        INFO_CTRL_PANEL_AUTHENTICATION_REQUIRED_FOR_IMPORT.get());
+    ServerDescriptor desc = ev.getNewDescriptor();
+    updateSimpleBackendComboBoxModel(backends, lNoBackendsFound, desc);
+    updateErrorPaneAndOKButtonIfAuthRequired(desc,
+      isLocal() ? INFO_CTRL_PANEL_AUTHENTICATION_REQUIRED_FOR_IMPORT.get() :
+      INFO_CTRL_PANEL_CANNOT_CONNECT_TO_REMOTE_DETAILS.get(desc.getHostname()));
+    SwingUtilities.invokeLater(new Runnable()
+    {
+      public void run()
+      {
+        lRemoteFileHelp.setVisible(!isLocal());
+        bBrowse.setVisible(isLocal());
+        rejectsBrowse.setVisible(isLocal());
+        skipsBrowse.setVisible(isLocal());
+        lRemoteRejectsHelp.setVisible(!isLocal());
+        lRemoteSkipsHelp.setVisible(!isLocal());
+      }
+    });
   }
 
   /**
@@ -483,7 +533,7 @@
     {
       errors.add(INFO_NO_LDIF_PATH.get());
       setPrimaryInvalid(lFile);
-    } else if (!Utils.fileExists(ldifPath))
+    } else if (isLocal() && !Utils.fileExists(ldifPath))
     {
       errors.add(INFO_LDIF_FILE_DOES_NOT_EXIST.get());
       setPrimaryInvalid(lFile);
@@ -622,7 +672,7 @@
         Collection<Message> incompatibilityReasons)
     {
       boolean canLaunch = true;
-      if (state == State.RUNNING)
+      if (state == State.RUNNING && runningOnSameServer(taskToBeLaunched))
       {
         // All the operations are incompatible if they apply to this
         // backend.

--
Gitblit v1.10.0