From 2d5ba62ec69e7ffa4b98149a9f6fef539e38251f Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Tue, 16 Jun 2009 10:48:51 +0000
Subject: [PATCH] Fix for issue 3912 (Default automatic Backup should be offered by the control panel)
---
opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java | 61 ++++++++++++++++++++++++++++++
1 files changed, 61 insertions(+), 0 deletions(-)
diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java b/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
index e763fb3..0104171 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
@@ -42,8 +42,11 @@
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
@@ -77,6 +80,7 @@
import org.opends.guitools.controlpanel.datamodel.ControlPanelInfo;
import org.opends.guitools.controlpanel.datamodel.CustomSearchResult;
import org.opends.guitools.controlpanel.datamodel.MonitoringAttributes;
+import org.opends.guitools.controlpanel.datamodel.ScheduleType;
import org.opends.guitools.controlpanel.datamodel.ServerDescriptor;
import org.opends.guitools.controlpanel.event.*;
import org.opends.guitools.controlpanel.task.RebuildIndexTask;
@@ -147,6 +151,9 @@
private boolean sizeSet = false;
private boolean focusSet = false;
+ private static DateFormat taskDateFormat =
+ new SimpleDateFormat("yyyyMMddHHmmss");
+
/**
* Returns the title that will be used as title of the dialog.
* @return the title that will be used as title of the dialog.
@@ -2183,4 +2190,58 @@
return INFO_CTRL_PANEL_OPERATION_NAME_AS_LABEL.get(
attr.getMessage().toString());
}
+
+ /**
+ * Returns the command-line arguments associated with the provided schedule.
+ * @param schedule the schedule.
+ * @return the command-line arguments associated with the provided schedule.
+ */
+ protected List<String> getScheduleArgs(ScheduleType schedule)
+ {
+ List<String> args = new ArrayList<String>(2);
+ switch (schedule.getType())
+ {
+ case LAUNCH_LATER:
+ args.add("--start");
+ args.add(getStartTimeForTask(schedule.getLaunchLaterDate()));
+ break;
+ case LAUNCH_PERIODICALLY:
+ args.add("--recurringTask");
+ args.add(schedule.getCronValue());
+ break;
+ }
+ return args;
+ }
+
+ /**
+ * Checks whether the server is running or not and depending on the schedule
+ * updates the list of errors with the errors found.
+ * @param schedule the schedule.
+ * @param errors the list of errors.
+ * @param label the label to be marked as invalid if errors where encountered.
+ */
+ protected void addScheduleErrors(ScheduleType schedule,
+ Collection<Message> errors, JLabel label)
+ {
+ if (!isServerRunning())
+ {
+ ScheduleType.Type type = schedule.getType();
+ if (type == ScheduleType.Type.LAUNCH_LATER)
+ {
+ errors.add(ERR_CTRL_PANEL_LAUNCH_LATER_REQUIRES_SERVER_RUNNING.get());
+ setPrimaryInvalid(label);
+ }
+ else if (type == ScheduleType.Type.LAUNCH_PERIODICALLY)
+ {
+ errors.add(
+ ERR_CTRL_PANEL_LAUNCH_SCHEDULE_REQUIRES_SERVER_RUNNING.get());
+ setPrimaryInvalid(label);
+ }
+ }
+ }
+
+ private String getStartTimeForTask(Date date)
+ {
+ return taskDateFormat.format(date);
+ }
}
--
Gitblit v1.10.0