From de55352efcbef4c90879a15831d19892e7af8145 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 21 Jan 2009 12:50:41 +0000
Subject: [PATCH] Fix for issue 3731 (status-panel command-lines should be removed)
---
opends/src/guitools/org/opends/guitools/controlpanel/ui/JavaPropertiesPanel.java | 182 +++++++++++++++++++++++++++++++++++++++------
1 files changed, 158 insertions(+), 24 deletions(-)
diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/ui/JavaPropertiesPanel.java b/opends/src/guitools/org/opends/guitools/controlpanel/ui/JavaPropertiesPanel.java
index 4e67671..054a678 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/ui/JavaPropertiesPanel.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/ui/JavaPropertiesPanel.java
@@ -32,6 +32,8 @@
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
@@ -48,6 +50,7 @@
import javax.swing.ButtonGroup;
import javax.swing.JButton;
+import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
@@ -100,8 +103,53 @@
private JLabel lInitContents;
+ private JCheckBox showAll;
+
private Set<JavaArgumentsDescriptor> readJavaArguments =
new HashSet<JavaArgumentsDescriptor>();
+
+ private Set<JavaArgumentsDescriptor> currentJavaArguments =
+ new HashSet<JavaArgumentsDescriptor>();
+
+ private Set<String> allScriptNames =
+ new HashSet<String>();
+ {
+ String[] names =
+ {
+ "start-ds", "import-ldif.offline", "backup.online", "base64",
+ "create-rc-script", "dsconfig", "dsreplication", "dsframework",
+ "export-ldif.online", "import-ldif.online", "ldapcompare",
+ "ldapdelete", "ldapmodify", "ldappasswordmodify", "ldapsearch",
+ "list-backends", "manage-account", "manage-tasks", "restore.online",
+ "stop-ds", "status", "control-panel", "uninstall", "setup",
+ "backup.offline", "encode-password", "export-ldif.offline",
+ "ldif-diff", "ldifmodify", "ldifsearch", "make-ldif",
+ "rebuild-index", "restore.offline", "upgrade",
+ "verify-index", "dbtest"
+ };
+ for (String name : names)
+ {
+ allScriptNames.add(name);
+ }
+ }
+
+ private Set<String> relevantScriptNames =
+ new HashSet<String>();
+
+ {
+ String[] relevantNames =
+ {
+ "start-ds", "import-ldif.offline", "backup.offline",
+ "export-ldif.offline",
+ "ldif-diff", "make-ldif", "rebuild-index", "restore.offline",
+ "verify-index", "dbtest"
+ };
+ for (String name : relevantNames)
+ {
+ relevantScriptNames.add(name);
+ }
+ }
+
private String readJavaHome;
private boolean readUseOpenDSJavaHome;
private boolean readUseOpenDSJavaArgs;
@@ -316,6 +364,23 @@
gbc.weightx = 1.0;
gbc.anchor = GridBagConstraints.WEST;
+ showAll =
+ Utilities.createCheckBox(INFO_CTRL_PANEL_DISPLAY_ALL_COMMAND_LINES.get());
+ showAll.addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent ev)
+ {
+ editor.stopCellEditing();
+ currentJavaArguments = getCurrentJavaArguments();
+ argumentsTableModel.setData(filterJavaArguments(currentJavaArguments));
+ Utilities.updateTableSizes(argumentsTable, 7);
+ }
+ });
+
+ gbc.gridy ++;
+ gbc.insets.top = 5;
+ p.add(showAll, gbc);
+
JLabel inlineHelp = Utilities.createInlineHelpLabel(
INFO_CTRL_PANEL_ONLINE_COMMAND_HELP.get());
gbc.insets.top = 3;
@@ -370,6 +435,30 @@
}
/**
+ * Returns the names of all the command-line that can be displayed by this
+ * panel.
+ * @return the names of all the command-line that can be displayed by this
+ * panel.
+ */
+ protected Set<String> getAllCommandLineNames()
+ {
+ return allScriptNames;
+ }
+
+ /**
+ * Returns the names of the most important command-line to be displayed by
+ * this panel.
+ * @return the names of the most important command-line to be displayed by
+ * this panel.
+ */
+ protected Set<String> getRelevantCommandLineNames()
+ {
+ return relevantScriptNames;
+ }
+
+
+
+ /**
* Returns <CODE>true</CODE> if the user updated the contents and
* <CODE>false</CODE> otherwise.
* @return <CODE>true</CODE> if the user updated the contents and
@@ -380,26 +469,81 @@
boolean updatedByUser = !javaHome.getText().equals(readJavaHome) ||
useOpenDSJavaHome.isSelected() != readUseOpenDSJavaHome ||
useOpenDSJavaArgs.isSelected() != readUseOpenDSJavaArgs ||
- !readJavaArguments.equals(getJavaArguments());
+ !readJavaArguments.equals(getCurrentJavaArguments());
return updatedByUser;
}
/**
- * Returns the java arguments specified in the table.
- * @return the java arguments specified in the table.
+ * Returns the java arguments specified by the user.
+ * @return the java arguments specified by the user.
*/
- private Set<JavaArgumentsDescriptor> getJavaArguments()
+ private Set<JavaArgumentsDescriptor> getCurrentJavaArguments()
{
HashSet<JavaArgumentsDescriptor> args =
+ new HashSet<JavaArgumentsDescriptor>(currentJavaArguments);
+
+ HashSet<JavaArgumentsDescriptor> tableArgs =
new HashSet<JavaArgumentsDescriptor>();
for (int i=0; i<argumentsTableModel.getRowCount(); i++)
{
- args.add(argumentsTableModel.getJavaArguments(i));
+ tableArgs.add(argumentsTableModel.getJavaArguments(i));
+ }
+ for (JavaArgumentsDescriptor arg : tableArgs)
+ {
+ JavaArgumentsDescriptor foundJavaArgument = null;
+ for (JavaArgumentsDescriptor arg1 : args)
+ {
+ if (arg1.getCommandName().equals(arg.getCommandName()))
+ {
+ foundJavaArgument = arg1;
+ break;
+ }
+ }
+ if (foundJavaArgument != null)
+ {
+ args.remove(foundJavaArgument);
+ }
+ args.add(arg);
}
return args;
}
+
+ /**
+ * Filters the provided list of java arguments depending on the showing
+ * options (basically whether the 'Show All Command-lines' is selected or
+ * not).
+ * @param args the list of java arguments.
+ * @return a list of filtered java arguments (the ones that must be displayed
+ * in the table).
+ */
+ private Set<JavaArgumentsDescriptor> filterJavaArguments(
+ Set<JavaArgumentsDescriptor> args)
+ {
+ if (showAll.isSelected())
+ {
+ return args;
+ }
+ else
+ {
+ Set<JavaArgumentsDescriptor> filteredArgs =
+ new HashSet<JavaArgumentsDescriptor>();
+ for (String relevantName : getRelevantCommandLineNames())
+ {
+ for (JavaArgumentsDescriptor arg : args)
+ {
+ if (arg.getCommandName().equals(relevantName))
+ {
+ filteredArgs.add(arg);
+ break;
+ }
+ }
+ }
+ return filteredArgs;
+ }
+ }
+
/**
* Inits the contents of the table in the background.
*
@@ -440,19 +584,6 @@
}
}
- String[] scripts =
- {
- "start-ds", "import-ldif.offline", "backup.online", "base64",
- "create-rc-script", "dsconfig", "dsreplication", "dsframework",
- "export-ldif.online", "import-ldif.online", "ldapcompare",
- "ldapdelete", "ldapmodify", "ldappasswordmodify", "ldapsearch",
- "list-backends", "manage-account", "manage-tasks", "restore.online",
- "stop-ds", "status", "status-panel", "uninstall", "setup",
- "backup.offline", "encode-password", "export-ldif.offline",
- "ldif-diff", "ldifmodify", "ldifsearch", "make-ldif",
- "rebuild-index", "restore.offline", "upgrade",
- "verify-index", "dbtest"
- };
String v = properties.getProperty("overwrite-env-java-home");
readUseOpenDSJavaHome =
(v == null) || ("false".equalsIgnoreCase(v.trim()));
@@ -463,7 +594,7 @@
readJavaHome = properties.getProperty("default.java-home");
if (readJavaHome == null)
{
- for (String script : scripts)
+ for (String script : getAllCommandLineNames())
{
readJavaHome = properties.getProperty(script+".java-home");
if (readJavaHome != null)
@@ -474,7 +605,7 @@
}
readJavaArguments.clear();
- for (String script : scripts)
+ for (String script : getAllCommandLineNames())
{
v = properties.getProperty(script+".java-args");
if (v != null)
@@ -502,7 +633,10 @@
useSpecifiedJavaHome.setSelected(!readUseOpenDSJavaHome);
useOpenDSJavaArgs.setSelected(readUseOpenDSJavaArgs);
useSpecifiedJavaArgs.setSelected(!readUseOpenDSJavaArgs);
- argumentsTableModel.setData(readJavaArguments);
+ currentJavaArguments.clear();
+ currentJavaArguments.addAll(readJavaArguments);
+ argumentsTableModel.setData(
+ filterJavaArguments(currentJavaArguments));
Utilities.updateTableSizes(argumentsTable, 7);
}
else
@@ -597,7 +731,7 @@
if (errors.size() == 0)
{
final Set<String> providedArguments = new HashSet<String>();
- for (JavaArgumentsDescriptor cmd : getJavaArguments())
+ for (JavaArgumentsDescriptor cmd : getCurrentJavaArguments())
{
String args = cmd.getJavaArguments().trim();
if (args.length() > 0)
@@ -749,7 +883,7 @@
readJavaHome = javaHome.getText();
readUseOpenDSJavaHome = useOpenDSJavaHome.isSelected();
readUseOpenDSJavaArgs = useOpenDSJavaArgs.isSelected();
- readJavaArguments = getJavaArguments();
+ readJavaArguments = getCurrentJavaArguments();
}
else
{
@@ -1108,7 +1242,7 @@
defaultJavaHome = javaHome.getText().trim();
overwriteOpenDSJavaHome = useSpecifiedJavaHome.isSelected();
overwriteOpenDSJavaArgs = useSpecifiedJavaArgs.isSelected();
- arguments = getJavaArguments();
+ arguments = getCurrentJavaArguments();
}
/**
--
Gitblit v1.10.0