From f110f99cd0cb5d473a0fb63219978021130786f6 Mon Sep 17 00:00:00 2001
From: Ian Packer <ian.packer@forgerock.com>
Date: Fri, 07 Aug 2015 11:12:02 +0000
Subject: [PATCH] OPENDJ-1359 CR-7818 Control panel requires incremental backups specify the parent

---
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BackupPanel.java |   50 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 37 insertions(+), 13 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BackupPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BackupPanel.java
index 0e80b40..33d5533 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BackupPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BackupPanel.java
@@ -85,6 +85,7 @@
   private JTextField backupID;
   private JTextField parentBackupID;
   private JRadioButton fullBackup;
+  private JCheckBox incrementalParent;
   private JRadioButton incrementalBackup;
   private JCheckBox compressData;
   private JCheckBox encryptData;
@@ -194,6 +195,12 @@
         INFO_CTRL_PANEL_INCREMENTAL_BACKUP_LABEL.get());
     add(incrementalBackup, gbc);
 
+    gbc.gridy ++;
+    gbc.insets.left = 25;
+    incrementalParent = Utilities.createCheckBox(
+        INFO_CTRL_PANEL_INCREMENTAL_PARENT_LABEL.get());
+    add(incrementalParent, gbc);
+
     ButtonGroup group = new ButtonGroup();
     group.add(fullBackup);
     group.add(incrementalBackup);
@@ -291,7 +298,8 @@
       {
         backends.setEnabled(!allBackends.isSelected());
         signMessageDigest.setEnabled(generateMessageDigest.isSelected());
-        boolean enable = incrementalBackup.isSelected();
+        incrementalParent.setEnabled(incrementalBackup.isSelected());
+        boolean enable = isIncrementalWithParent();
         refreshList.setEnabled(enable);
         tableScroll.setEnabled(enable);
         backupList.setEnabled(enable);
@@ -303,6 +311,7 @@
       }
     };
     incrementalBackup.addChangeListener(changeListener);
+    incrementalParent.addChangeListener(changeListener);
     generateMessageDigest.addChangeListener(changeListener);
     allBackends.addChangeListener(changeListener);
     changeListener.stateChanged(null);
@@ -310,6 +319,18 @@
     addBottomGlue(gbc);
   }
 
+  /**
+   * Check status of incremental backup radio/checkbox
+   *
+   * @return boolean true if both incremental and parent base ID
+   *                  are selected
+   */
+  private boolean isIncrementalWithParent()
+  {
+    return incrementalParent.isSelected() &&
+            incrementalBackup.isSelected();
+  }
+
   /** {@inheritDoc} */
   public void configurationChanged(ConfigurationChangeEvent ev)
   {
@@ -408,7 +429,7 @@
       }
     }
 
-    if (incrementalBackup.isSelected())
+    if (isIncrementalWithParent())
     {
       if (isLocal())
       {
@@ -437,7 +458,7 @@
     {
         backends, allBackends, fullBackup, incrementalBackup, parentDirectory,
         browse, backupList, refreshList, compressData, encryptData,
-        generateMessageDigest, signMessageDigest
+        generateMessageDigest, signMessageDigest, incrementalParent
     };
     setEnabledOK(false);
     setEnabledCancel(false);
@@ -645,7 +666,7 @@
           }
         }
       }
-      if (incrementalBackup.isSelected())
+      if (isIncrementalWithParent())
       {
         if (isLocal())
         {
@@ -769,16 +790,19 @@
       if (incrementalBackup.isSelected())
       {
         args.add("--incremental");
-        if (isLocal())
+        if(incrementalParent.isSelected())
         {
-          BackupDescriptor backup = getSelectedBackup();
-          args.add("--incrementalBaseID");
-          args.add(backup.getID());
-        }
-        else
-        {
-          args.add("--incrementalBaseID");
-          args.add(parentBackupID.getText());
+          if (isLocal())
+          {
+            BackupDescriptor backup = getSelectedBackup();
+            args.add("--incrementalBaseID");
+            args.add(backup.getID());
+          }
+          else
+          {
+            args.add("--incrementalBaseID");
+            args.add(parentBackupID.getText());
+          }
         }
       }
 

--
Gitblit v1.10.0