From 57bc9b55b0f54cbd2fab62934173c446675d3b3b 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)

---
 opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupListPanel.java |    2 +-
 opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java     |   38 +++++++++++++++++++++++++++++++-------
 2 files changed, 32 insertions(+), 8 deletions(-)

diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupListPanel.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupListPanel.java
index aa0588d..f6c26f6 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupListPanel.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupListPanel.java
@@ -137,7 +137,7 @@
    * Whether the backup parent directory has been initialized with a value or
    * not.
    */
-  protected boolean backupDirectoryInitialized;
+  private boolean backupDirectoryInitialized;
 
   private static final Logger LOG =
     Logger.getLogger(RestorePanel.class.getName());
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java
index fe871a8..7007366 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupPanel.java
+++ b/opendj-sdk/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