From cb333df1bc1ddfa7b266cd03d3148e33aea52e1b Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Fri, 10 Apr 2015 10:30:32 +0000
Subject: [PATCH] OPENDJ-1932 Code cleanup
---
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java | 268 +++++++++++++++++++++++++++--------------------------
1 files changed, 137 insertions(+), 131 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java
index f38514c..4c8786b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java
@@ -115,11 +115,12 @@
/**
* The class that appears when the user clicks on 'New Base DN'.
- *
*/
public class NewBaseDNPanel extends StatusGenericPanel
{
private static final long serialVersionUID = -2680821576362341119L;
+ private static final LocalizableMessage NEW_BACKEND_TEXT = INFO_CTRL_PANEL_NEW_BACKEND_LABEL.get();
+
private JComboBox backends;
private JTextField newBackend;
private JTextField baseDN;
@@ -140,7 +141,6 @@
private DocumentListener documentListener;
- private final LocalizableMessage NEW_BACKEND = INFO_CTRL_PANEL_NEW_BACKEND_LABEL.get();
/** Default constructor. */
public NewBaseDNPanel()
@@ -210,7 +210,7 @@
gbc.insets.left = 10;
gbc.gridx = 1;
backends = Utilities.createComboBox();
- backends.setModel(new DefaultComboBoxModel(new Object[] {"bogus", NEW_BACKEND}));
+ backends.setModel(new DefaultComboBoxModel(new Object[] {"bogus", NEW_BACKEND_TEXT}));
backends.setRenderer(new CustomListCellRenderer(backends));
backends.addItemListener(new IgnoreItemListener(backends));
gbc.gridwidth = 1;
@@ -229,7 +229,7 @@
public void itemStateChanged(ItemEvent ev)
{
Object o = backends.getSelectedItem();
- newBackend.setEnabled(NEW_BACKEND.equals(o));
+ newBackend.setEnabled(NEW_BACKEND_TEXT.equals(o));
}
};
backends.addItemListener(comboListener);
@@ -389,7 +389,7 @@
{
newElements.add(COMBO_SEPARATOR);
}
- newElements.add(NEW_BACKEND);
+ newElements.add(NEW_BACKEND_TEXT);
super.updateComboBoxModel(newElements, (DefaultComboBoxModel) backends.getModel());
updateErrorPaneAndOKButtonIfAuthRequired(desc,
isLocal() ? INFO_CTRL_PANEL_AUTHENTICATION_REQUIRED_FOR_CREATE_BASE_DN.get()
@@ -464,15 +464,19 @@
/** {@inheritDoc} */
public void cancelClicked()
{
+ resetLabelAsValid();
+ super.cancelClicked();
+ }
+
+ private void resetLabelAsValid()
+ {
setPrimaryValid(lBackend);
setPrimaryValid(lDirectoryBaseDN);
setPrimaryValid(lDirectoryData);
setSecondaryValid(lPath);
setSecondaryValid(lNumberOfEntries);
- super.cancelClicked();
}
-
/** {@inheritDoc} */
protected void checkOKButtonEnable()
{
@@ -482,133 +486,22 @@
/** {@inheritDoc} */
public void okClicked()
{
- setPrimaryValid(lBackend);
- setPrimaryValid(lDirectoryBaseDN);
- setPrimaryValid(lDirectoryData);
- setSecondaryValid(lPath);
- setSecondaryValid(lNumberOfEntries);
- final LinkedHashSet<LocalizableMessage> errors = new LinkedHashSet<LocalizableMessage>();
+ resetLabelAsValid();
- ServerDescriptor desc = getInfo().getServerDescriptor();
+ final Set<LocalizableMessage> errors = new LinkedHashSet<LocalizableMessage>();
+ final ServerDescriptor desc = getInfo().getServerDescriptor();
+ final Set<BackendDescriptor> existingBackends = desc.getBackends();
- Set<BackendDescriptor> backendObjects = desc.getBackends();
-
- Object o = backends.getSelectedItem();
- String backendName = String.valueOf(o);
- if (o == null)
- {
- errors.add(ERR_CTRL_PANEL_NO_BACKENDS_SELECTED.get());
- setPrimaryInvalid(lBackend);
- }
- else if (o.equals(NEW_BACKEND))
- {
- backendName = newBackend.getText().trim();
- if (backendName.length() == 0)
- {
- errors.add(ERR_NEW_BACKEND_NAME_REQUIRED.get());
- setPrimaryInvalid(lBackend);
- }
- else
- {
- // Check that the backend is not already defined.
- for (BackendDescriptor backend : backendObjects)
- {
- if (backendName.equalsIgnoreCase(backend.getBackendID()))
- {
- errors.add(ERR_BACKEND_ALREADY_EXISTS.get(backendName));
- setPrimaryInvalid(lBackend);
- break;
- }
- }
- }
- }
-
- String dn = baseDN.getText();
- if (dn.trim().length() == 0)
- {
- errors.add(ERR_NEW_BASE_DN_VALUE_REQUIRED.get());
- setPrimaryInvalid(lDirectoryBaseDN);
- }
- else
- {
- try
- {
- DN theDN = DN.valueOf(dn);
- // Check that the DN is not defined.
- boolean baseDNAlreadyDefined = false;
- for (BackendDescriptor backend : backendObjects)
- {
- for (BaseDNDescriptor baseDN : backend.getBaseDns())
- {
- if (baseDN.getDn().equals(theDN))
- {
- errors.add(ERR_BASE_DN_ALREADY_EXISTS.get(dn));
- setPrimaryInvalid(lDirectoryBaseDN);
- baseDNAlreadyDefined = true;
- break;
- }
- else if (baseDN.getDn().isAncestorOf(theDN))
- {
- if (backendName.equalsIgnoreCase(backend.getBackendID()))
- {
- errors.add(ERR_BASE_DN_ANCESTOR_EXISTS.get(baseDN.getDn()));
- setPrimaryInvalid(lDirectoryBaseDN);
- baseDNAlreadyDefined = true;
- break;
- }
- }
- else if (theDN.isAncestorOf(baseDN.getDn())
- && backendName.equalsIgnoreCase(backend.getBackendID()))
- {
- errors.add(ERR_BASE_DN_DN_IS_ANCESTOR_OF.get(baseDN.getDn()));
- setPrimaryInvalid(lDirectoryBaseDN);
- baseDNAlreadyDefined = true;
- break;
- }
- }
- if (baseDNAlreadyDefined)
- {
- break;
- }
- }
- }
- catch (OpenDsException oe)
- {
- errors.add(INFO_CTRL_PANEL_INVALID_DN_DETAILS.get(dn, oe.getMessageObject()));
- setPrimaryInvalid(lDirectoryBaseDN);
- }
- }
-
- // TODO: what happens with sub-suffixes?
- if (importDataFromLDIF.isSelected())
- {
- String ldifPath = path.getText();
- if (ldifPath == null || "".equals(ldifPath.trim()))
- {
- errors.add(INFO_NO_LDIF_PATH.get());
- setSecondaryInvalid(lPath);
- }
- else if (isLocal() && !Utils.fileExists(ldifPath))
- {
- errors.add(INFO_LDIF_FILE_DOES_NOT_EXIST.get());
- setSecondaryInvalid(lPath);
- }
- }
-
- if (importAutomaticallyGenerated.isSelected())
- {
- String nEntries = numberOfEntries.getText();
- int minValue = 1;
- int maxValue = isLocal() ? 20000 : 1000;
- LocalizableMessage errMsg = ERR_NUMBER_OF_ENTRIES_INVALID.get(minValue, maxValue);
- checkIntValue(errors, nEntries, minValue, maxValue, errMsg);
- }
+ final String backendName = validateBackendName(existingBackends, errors);
+ final String dn = validateBaseDN(backendName, existingBackends, errors);
+ validateImportLDIFFilePath(errors);
+ validateAutomaticallyGenerated(errors);
if (errors.isEmpty())
{
- ProgressDialog progressDialog = new ProgressDialog(
+ final ProgressDialog progressDialog = new ProgressDialog(
Utilities.createFrame(), Utilities.getParentDialog(this), getTitle(), getInfo());
- NewBaseDNTask newTask = new NewBaseDNTask(getInfo(), progressDialog);
+ final NewBaseDNTask newTask = new NewBaseDNTask(getInfo(), progressDialog);
for (Task task : getInfo().getTasks())
{
task.canLaunch(newTask, errors);
@@ -631,16 +524,129 @@
}
}
- if (errors.size() > 0)
+ if (!errors.isEmpty())
{
displayErrorDialog(errors);
}
}
+ /** Returns the existing or the new backend name, once user have clicked on 'OK' button */
+ private String validateBackendName(
+ final Set<BackendDescriptor> existingBackends, final Set<LocalizableMessage> errors)
+ {
+ final Object selectedItem = backends.getSelectedItem();
+ if (!selectedItem.equals(NEW_BACKEND_TEXT))
+ {
+ return selectedItem.toString();
+ }
+
+ final String backendName = newBackend.getText().trim();
+ if (backendName.length() == 0)
+ {
+ errors.add(ERR_NEW_BACKEND_NAME_REQUIRED.get());
+ setPrimaryInvalid(lBackend);
+ return backendName;
+ }
+
+ // Check that the backend is not already defined.
+ for (BackendDescriptor backend : existingBackends)
+ {
+ if (backendName.equalsIgnoreCase(backend.getBackendID()))
+ {
+ errors.add(ERR_BACKEND_ALREADY_EXISTS.get(backendName));
+ setPrimaryInvalid(lBackend);
+ }
+ }
+
+ return backendName;
+ }
+
+ private String validateBaseDN(final String backendName, final Set<BackendDescriptor> existingBackends,
+ final Set<LocalizableMessage> errors)
+ {
+ String dn = baseDN.getText();
+ if (dn.trim().length() == 0)
+ {
+ errors.add(ERR_NEW_BASE_DN_VALUE_REQUIRED.get());
+ setPrimaryInvalid(lDirectoryBaseDN);
+ return dn;
+ }
+
+ try
+ {
+ final DN theDN = DN.valueOf(dn);
+ for (final BackendDescriptor backend : existingBackends)
+ {
+ for (final BaseDNDescriptor baseDN : backend.getBaseDns())
+ {
+ if (baseDN.getDn().equals(theDN))
+ {
+ return invalidBaseDNValue(dn, ERR_BASE_DN_ALREADY_EXISTS.get(dn), errors);
+ }
+ else if (baseDN.getDn().isAncestorOf(theDN) && backendName.equalsIgnoreCase(backend.getBackendID()))
+ {
+ return invalidBaseDNValue(dn, ERR_BASE_DN_ANCESTOR_EXISTS.get(baseDN.getDn()), errors);
+ }
+ else if (theDN.isAncestorOf(baseDN.getDn()) && backendName.equalsIgnoreCase(backend.getBackendID()))
+ {
+ return invalidBaseDNValue(dn, ERR_BASE_DN_DN_IS_ANCESTOR_OF.get(baseDN.getDn()), errors);
+ }
+ }
+ }
+ }
+ catch (OpenDsException oe)
+ {
+ errors.add(INFO_CTRL_PANEL_INVALID_DN_DETAILS.get(dn, oe.getMessageObject()));
+ setPrimaryInvalid(lDirectoryBaseDN);
+ }
+
+ return dn;
+ }
+
+ /** Mark the provided base DN as invalid with the provided reason and return it. */
+ private String invalidBaseDNValue(final String dn, final LocalizableMessage errorMsg,
+ final Set<LocalizableMessage> errors)
+ {
+ errors.add(errorMsg);
+ setPrimaryInvalid(lDirectoryBaseDN);
+ return dn;
+ }
+
+ private void validateImportLDIFFilePath(final Set<LocalizableMessage> errors)
+ {
+ // TODO: what happens with sub-suffixes?
+ if (importDataFromLDIF.isSelected())
+ {
+ String ldifPath = path.getText();
+ if (ldifPath == null || "".equals(ldifPath.trim()))
+ {
+ errors.add(INFO_NO_LDIF_PATH.get());
+ setSecondaryInvalid(lPath);
+ }
+ else if (isLocal() && !Utils.fileExists(ldifPath))
+ {
+ errors.add(INFO_LDIF_FILE_DOES_NOT_EXIST.get());
+ setSecondaryInvalid(lPath);
+ }
+ }
+ }
+
+ private void validateAutomaticallyGenerated(final Set<LocalizableMessage> errors)
+ {
+ if (importAutomaticallyGenerated.isSelected())
+ {
+ String nEntries = numberOfEntries.getText();
+ int minValue = 1;
+ int maxValue = isLocal() ? 20000 : 1000;
+ LocalizableMessage errMsg = ERR_NUMBER_OF_ENTRIES_INVALID.get(minValue, maxValue);
+ checkIntValue(errors, nEntries, minValue, maxValue, errMsg);
+ }
+ }
+
private String getBackendName()
{
Object backendName = backends.getSelectedItem();
- if (NEW_BACKEND.equals(backendName))
+ if (NEW_BACKEND_TEXT.equals(backendName))
{
return newBackend.getText().trim();
}
@@ -656,7 +662,7 @@
private boolean isNewBackend()
{
- return NEW_BACKEND.equals(backends.getSelectedItem());
+ return NEW_BACKEND_TEXT.equals(backends.getSelectedItem());
}
/** The task in charge of creating the base DN (and if required, the backend). */
--
Gitblit v1.10.0