From 4cd4ffb2771ea2d133b30273b1ffea0fef6b4552 Mon Sep 17 00:00:00 2001
From: kenneth_suter <kenneth_suter@localhost>
Date: Tue, 17 Apr 2007 20:23:12 +0000
Subject: [PATCH] This commit introduces preliminary versions of the upgrader tool's GUI wizard panels. Effort has been made to make the panels conform to the design at
---
opends/src/quicksetup/org/opends/quicksetup/ui/ReviewPanel.java | 295 +++-------------------------------------------------------
1 files changed, 18 insertions(+), 277 deletions(-)
diff --git a/opends/src/quicksetup/org/opends/quicksetup/ui/ReviewPanel.java b/opends/src/quicksetup/org/opends/quicksetup/ui/ReviewPanel.java
index 37883f1..1d0be4c 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/ui/ReviewPanel.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/ui/ReviewPanel.java
@@ -27,89 +27,35 @@
package org.opends.quicksetup.ui;
-import java.awt.Component;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.util.HashMap;
-
-import javax.swing.JCheckBox;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.text.JTextComponent;
-
-import org.opends.quicksetup.DataOptions;
-import org.opends.quicksetup.UserData;
-import org.opends.quicksetup.installer.FieldName;
+import javax.swing.*;
+import java.awt.*;
/**
- * This is the panel that contains the Review Panel.
- *
+ * Abstract class for rendering a review panel with fields and value
+ * that the user can use to confirm an application's operation.
*/
-public class ReviewPanel extends QuickSetupStepPanel
-{
- private static final long serialVersionUID = -7356174829193265699L;
-
- private boolean displayServerLocation;
-
- private UserData defaultUserData;
+public abstract class ReviewPanel extends QuickSetupStepPanel {
private JCheckBox checkBox;
- private HashMap<FieldName, JLabel> hmLabels =
- new HashMap<FieldName, JLabel>();
-
- private HashMap<FieldName, JTextComponent> hmFields =
- new HashMap<FieldName, JTextComponent>();
+ /**
+ * Creates an instance.
+ * @param application GuiApplication this panel represents
+ */
+ public ReviewPanel(GuiApplication application) {
+ super(application);
+ }
/**
- * Constructor of the panel.
- * @param defaultUserData the default values that must be used to initialize
- * the fields of the panel.
+ * Creates the panel containing field names and values.
+ * @return JPanel containing fields and values
*/
- public ReviewPanel(UserData defaultUserData)
- {
- this.defaultUserData = defaultUserData;
- this.displayServerLocation = isWebStart();
- populateLabelAndFieldsMap();
- createLayout();
- }
+ protected abstract JPanel createFieldsPanel();
/**
* {@inheritDoc}
*/
- public void beginDisplay(UserData userData)
- {
- if (displayServerLocation)
- {
- setFieldValue(FieldName.SERVER_LOCATION, userData.getServerLocation());
- }
- setFieldValue(FieldName.SERVER_PORT, String.valueOf(userData
- .getServerPort()));
- setFieldValue(FieldName.DIRECTORY_MANAGER_DN, userData
- .getDirectoryManagerDn());
- setFieldValue(FieldName.DIRECTORY_BASE_DN, userData.getDataOptions()
- .getBaseDn());
- setFieldValue(FieldName.DATA_OPTIONS, getDisplayString(userData
- .getDataOptions()));
- }
-
- /**
- * {@inheritDoc}
- */
- public Object getFieldValue(FieldName fieldName)
- {
- Object value = null;
- if (fieldName == FieldName.SERVER_START)
- {
- value = getCheckBox().isSelected();
- }
- return value;
- }
-
- /**
- * {@inheritDoc}
- */
- protected Component createInputPanel()
+ final protected Component createInputPanel()
{
JPanel panel = new JPanel(new GridBagLayout());
panel.setOpaque(false);
@@ -133,149 +79,11 @@
}
/**
- * {@inheritDoc}
- */
- protected String getInstructions()
- {
- return getMsg("review-panel-instructions");
- }
-
- /**
- * {@inheritDoc}
- */
- protected String getTitle()
- {
- return getMsg("review-panel-title");
- }
-
- /**
- * Create the components and populate the Maps.
- */
- private void populateLabelAndFieldsMap()
- {
- HashMap<FieldName, LabelFieldDescriptor> hm =
- new HashMap<FieldName, LabelFieldDescriptor>();
-
- if (displayServerLocation)
- {
- hm.put(FieldName.SERVER_LOCATION, new LabelFieldDescriptor(
- getMsg("server-location-label"), getMsg("server-port-tooltip"),
- LabelFieldDescriptor.FieldType.READ_ONLY,
- LabelFieldDescriptor.LabelType.PRIMARY, 0));
- }
-
- hm.put(FieldName.SERVER_PORT, new LabelFieldDescriptor(
- getMsg("server-port-label"), getMsg("server-port-tooltip"),
- LabelFieldDescriptor.FieldType.READ_ONLY,
- LabelFieldDescriptor.LabelType.PRIMARY, 0));
-
- hm.put(FieldName.DIRECTORY_MANAGER_DN, new LabelFieldDescriptor(
- getMsg("server-directory-manager-dn-label"),
- getMsg("server-directory-manager-dn-tooltip"),
- LabelFieldDescriptor.FieldType.READ_ONLY,
- LabelFieldDescriptor.LabelType.PRIMARY, 0));
-
- hm.put(FieldName.DIRECTORY_BASE_DN, new LabelFieldDescriptor(
- getMsg("base-dn-label"), getMsg("base-dn-tooltip"),
- LabelFieldDescriptor.FieldType.READ_ONLY,
- LabelFieldDescriptor.LabelType.PRIMARY, 0));
-
- hm.put(FieldName.DATA_OPTIONS, new LabelFieldDescriptor(
- getMsg("directory-data-label"), null,
- LabelFieldDescriptor.FieldType.READ_ONLY,
- LabelFieldDescriptor.LabelType.PRIMARY, 0));
- for (FieldName fieldName : hm.keySet())
- {
- LabelFieldDescriptor desc = hm.get(fieldName);
-
- JTextComponent field = makeJTextComponent(desc, null);
- field.setOpaque(false);
- JLabel label = makeJLabel(desc);
-
- hmFields.put(fieldName, field);
- label.setLabelFor(field);
-
- hmLabels.put(fieldName, label);
- }
- }
-
- /**
- * Returns the label associated with the given field name.
- * @param fieldName the field name for which we want to retrieve the JLabel.
- * @return the label associated with the given field name.
- */
- private JLabel getLabel(FieldName fieldName)
- {
- return hmLabels.get(fieldName);
- }
-
- /**
- * Returns the JTextComponent associated with the given field name.
- * @param fieldName the field name for which we want to retrieve the
- * JTextComponent.
- * @return the JTextComponent associated with the given field name.
- */
- private JTextComponent getField(FieldName fieldName)
- {
- return hmFields.get(fieldName);
- }
-
- /**
- * Updates the JTextComponent associated with a FieldName with a text value.
- * @param fieldName the field name of the JTextComponent that we want to
- * update.
- * @param value the value to be set.
- */
- private void setFieldValue(FieldName fieldName, String value)
- {
- getField(fieldName).setText(value);
- }
-
- /**
- * Returns the localized string describing the DataOptions chosen by the user.
- * @param options the DataOptions of the user.
- * @return the localized string describing the DataOptions chosen by the user.
- */
- private String getDisplayString(DataOptions options)
- {
- String msg;
-
- switch (options.getType())
- {
- case CREATE_BASE_ENTRY:
- msg = getMsg("review-create-base-entry-label", new String[]
- { options.getBaseDn() });
-
- break;
-
- case LEAVE_DATABASE_EMPTY:
- msg = getMsg("review-leave-database-empty-label");
- break;
-
- case IMPORT_FROM_LDIF_FILE:
- msg = getMsg("review-import-ldif", new String[]
- { options.getLDIFPath() });
- break;
-
- case IMPORT_AUTOMATICALLY_GENERATED_DATA:
- msg = getMsg("review-import-automatically-generated", new String[]
- { String.valueOf(options.getNumberEntries()) });
- break;
-
- default:
- throw new IllegalArgumentException("Unknow type: " + options.getType());
-
- }
-
- return msg;
- }
-
- /**
* Returns the start server check box.
* If it does not exist creates the start server check box.
* @return the start server check box.
*/
- private JCheckBox getCheckBox()
+ protected JCheckBox getCheckBox()
{
if (checkBox == null)
{
@@ -283,75 +91,8 @@
UIFactory.makeJCheckBox(getMsg("start-server-label"),
getMsg("start-server-tooltip"), UIFactory.TextStyle.CHECKBOX);
checkBox.setOpaque(false);
- checkBox.setSelected(defaultUserData.getStartServer());
+ checkBox.setSelected(getApplication().getUserData().getStartServer());
}
return checkBox;
}
-
- /**
- * Returns and creates the fields panel.
- * @return the fields panel.
- */
- private JPanel createFieldsPanel()
- {
- JPanel panel = new JPanel(new GridBagLayout());
- panel.setOpaque(false);
- GridBagConstraints gbc = new GridBagConstraints();
-
- FieldName[] fieldNames;
- if (displayServerLocation)
- {
- fieldNames =
- new FieldName[]
- { FieldName.SERVER_LOCATION, FieldName.SERVER_PORT,
- FieldName.DIRECTORY_MANAGER_DN,
- FieldName.DIRECTORY_BASE_DN,
- FieldName.DATA_OPTIONS };
- } else
- {
- fieldNames =
- new FieldName[]
- { FieldName.SERVER_PORT, FieldName.DIRECTORY_MANAGER_DN,
- FieldName.DIRECTORY_BASE_DN, FieldName.DATA_OPTIONS };
- }
-
- for (int i = 0; i < fieldNames.length; i++)
- {
- gbc.gridwidth = GridBagConstraints.RELATIVE;
- gbc.weightx = 0.0;
- if (i > 0)
- {
- gbc.insets.top = UIFactory.TOP_INSET_PRIMARY_FIELD;
- } else
- {
- gbc.insets.top = 0;
- }
- gbc.insets.left = 0;
- gbc.anchor = GridBagConstraints.NORTHWEST;
- panel.add(getLabel(fieldNames[i]), gbc);
-
- JPanel auxPanel = new JPanel(new GridBagLayout());
- auxPanel.setOpaque(false);
- gbc.weightx = 1.0;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- if (i > 0)
- {
- gbc.insets.top = UIFactory.TOP_INSET_PRIMARY_FIELD;
- } else
- {
- gbc.insets.top = 0;
- }
- gbc.insets.left = UIFactory.LEFT_INSET_PRIMARY_FIELD;
-
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- panel.add(auxPanel, gbc);
-
- gbc.insets = UIFactory.getEmptyInsets();
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.weightx = 1.0;
- auxPanel.add(getField(fieldNames[i]), gbc);
- }
-
- return panel;
- }
}
--
Gitblit v1.10.0