From e9b9dbd7edb77833789858b1844d7c26de0a8279 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Tue, 04 Nov 2008 07:32:22 +0000
Subject: [PATCH] Fix for issue 3556 (Control panel : backup proposes  the same ID previouly used)

---
 opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java |   38 +++++++++++++++++++++++++++++++-------
 1 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java b/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java
index fe871a8..7007366 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java
@@ -96,6 +96,8 @@
 
   private ChangeListener changeListener;
 
+  private boolean backupIDInitialized = false;
+
   private static final Logger LOG =
     Logger.getLogger(BackupPanel.class.getName());
 
@@ -297,13 +299,6 @@
        */
       public void run()
       {
-        if (!backupDirectoryInitialized)
-        {
-          SimpleDateFormat dateFormat = new SimpleDateFormat(
-              ServerConstants.DATE_FORMAT_COMPACT_LOCAL_TIME);
-          final String id = dateFormat.format(new Date());
-          backupID.setText(id);
-        }
         allBackends.setVisible(backends.getModel().getSize() > 0);
       }
     });
@@ -320,6 +315,7 @@
     setPrimaryValid(lBackend);
     setPrimaryValid(lPath);
     setPrimaryValid(lAvailableBackups);
+    backupIDInitialized = false;
 
     final LinkedHashSet<Message> errors = new LinkedHashSet<Message>();
 
@@ -547,6 +543,34 @@
   }
 
   /**
+   * {@inheritDoc}
+   */
+  public void toBeDisplayed(boolean visible)
+  {
+    super.toBeDisplayed(visible);
+    if (visible && !backupIDInitialized)
+    {
+      initializeBackupID();
+    }
+    if (!visible)
+    {
+      backupIDInitialized = false;
+    }
+  }
+
+  /**
+   * Initialize the backup ID field with a value.
+   *
+   */
+  private void initializeBackupID()
+  {
+    SimpleDateFormat dateFormat = new SimpleDateFormat(
+        ServerConstants.DATE_FORMAT_COMPACT_LOCAL_TIME);
+    final String id = dateFormat.format(new Date());
+    backupID.setText(id);
+  }
+
+  /**
    * Class that launches the backup.
    *
    */

--
Gitblit v1.10.0