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