mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

jvergara
21.23.2009 8729a061e4138420ec8a33a5ab5f4378eec2097b
Fix for issue 4413 (setup should use scroll panes in its panels)
13 files modified
268 ■■■■■ changed files
opends/src/guitools/org/opends/guitools/controlpanel/ui/ColorAndFontConstants.java 1 ●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java 7 ●●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/controlpanel/util/Utilities.java 20 ●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/installandupgrader/ui/WelcomePanel.java 8 ●●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/installer/ui/DataReplicationPanel.java 11 ●●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/installer/ui/InstallLicensePanel.java 8 ●●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/installer/ui/RemoteReplicationPortsPanel.java 17 ●●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/installer/ui/SuffixesToReplicatePanel.java 15 ●●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/ui/CurrentStepPanel.java 12 ●●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/ui/ProgressPanel.java 10 ●●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/ui/QuickSetupDialog.java 17 ●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/ui/QuickSetupStepPanel.java 106 ●●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java 36 ●●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/controlpanel/ui/ColorAndFontConstants.java
@@ -85,7 +85,6 @@
    try
    {
      JScrollPane scroll = new JScrollPane();
      Utilities.setScrollIncrementUnit(scroll);
      border = scroll.getBorder();
      // If the border is of class MetalBorders$ScrollPaneBorder it cannot
      // be used.
opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
@@ -723,8 +723,15 @@
            null,
            ERR_CTRL_PANEL_REBUILDING_INDEXES_ERROR_DETAILS,
            progressDialog, false);
        if (progressDialog.isModal())
        {
        progressDialog.toFront();
        }
        progressDialog.setVisible(true);
        if (!progressDialog.isModal())
        {
          progressDialog.toFront();
        }
      }
      if (errors.size() > 0)
      {
opends/src/guitools/org/opends/guitools/controlpanel/util/Utilities.java
@@ -402,7 +402,7 @@
    scroll.getViewport().setOpaque(false);
    scroll.getViewport().setBackground(ColorAndFontConstants.background);
    scroll.setBackground(ColorAndFontConstants.background);
    setScrollIncrementUnit(scroll);
    UIFactory.setScrollIncrementUnit(scroll);
    return scroll;
  }
@@ -418,27 +418,11 @@
    scroll.setOpaque(false);
    scroll.getViewport().setBackground(ColorAndFontConstants.background);
    scroll.setBackground(ColorAndFontConstants.background);
    setScrollIncrementUnit(scroll);
    UIFactory.setScrollIncrementUnit(scroll);
    return scroll;
  }
  /**
   * Sets the scroll increment unit for the scroll.
   * @param scroll the scroll to be updated.
   */
  public static void setScrollIncrementUnit(JScrollPane scroll)
  {
    if (scroll.getVerticalScrollBar() != null)
    {
      int increment = scroll.getVerticalScrollBar().getUnitIncrement();
      if (increment < 16)
      {
        scroll.getVerticalScrollBar().setUnitIncrement(16);
      }
    }
  }
  /**
   * Creates a button.
   * @param text the message to be displayed by the button.
   * @return the created button.
opends/src/quicksetup/org/opends/quicksetup/installandupgrader/ui/WelcomePanel.java
@@ -95,14 +95,6 @@
  /**
   * {@inheritDoc}
   */
  protected boolean hasCheckingLabel()
  {
    return true;
  }
  /**
   * {@inheritDoc}
   */
  public Object getFieldValue(FieldName fieldName) {
    Object v = null;
    if (FieldName.SERVER_TO_UPGRADE_LOCATION.equals(fieldName)) {
opends/src/quicksetup/org/opends/quicksetup/installer/ui/DataReplicationPanel.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2008 Sun Microsystems, Inc.
 *      Copyright 2008-2009 Sun Microsystems, Inc.
 */
package org.opends.quicksetup.installer.ui;
@@ -320,15 +320,6 @@
    return text;
  }
  /**
   * {@inheritDoc}
   */
  protected boolean hasCheckingLabel()
  {
    return true;
  }
  /**
   * Returns the default value for the provided field Name.
   * @param fieldName the field name for which we want to get the default
opends/src/quicksetup/org/opends/quicksetup/installer/ui/InstallLicensePanel.java
@@ -134,6 +134,14 @@
  }
  /**
   * {@inheritDoc}
   */
  protected boolean requiresScroll()
  {
    return false;
  }
  /**
   * Adds the required action listeners to the fields.
   */
  private void addActionListeners()
opends/src/quicksetup/org/opends/quicksetup/installer/ui/RemoteReplicationPortsPanel.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2008 Sun Microsystems, Inc.
 *      Copyright 2008-2009 Sun Microsystems, Inc.
 */
package org.opends.quicksetup.installer.ui;
@@ -46,7 +46,6 @@
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.border.EmptyBorder;
import javax.swing.text.JTextComponent;
import org.opends.admin.ads.ServerDescriptor;
@@ -163,6 +162,14 @@
  /**
   * {@inheritDoc}
   */
  protected boolean requiresScroll()
  {
    return false;
  }
  /**
   * {@inheritDoc}
   */
  public int compare(ServerDescriptor desc1, ServerDescriptor desc2)
  {
    return desc1.getHostPort(true).compareTo(desc2.getHostPort(true));
@@ -186,11 +193,7 @@
    gbc.fill = GridBagConstraints.BOTH;
    fieldsPanel = new JPanel(new GridBagLayout());
    fieldsPanel.setOpaque(false);
    scroll = new JScrollPane(fieldsPanel);
    scroll.setBorder(new EmptyBorder(0, 0, 0, 0));
    scroll.setViewportBorder(new EmptyBorder(0, 0, 0, 0));
    scroll.setOpaque(false);
    scroll.getViewport().setOpaque(false);
    scroll = UIFactory.createBorderLessScrollBar(fieldsPanel);
    panel.add(scroll, gbc);
opends/src/quicksetup/org/opends/quicksetup/installer/ui/SuffixesToReplicatePanel.java
@@ -43,7 +43,6 @@
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import org.opends.admin.ads.ADSContext;
import org.opends.admin.ads.ReplicaDescriptor;
@@ -170,11 +169,7 @@
    gbc.anchor = GridBagConstraints.NORTH;
    gbc.weighty = 1.0;
    gbc.fill = GridBagConstraints.BOTH;
    scroll = new JScrollPane(checkBoxPanel);
    scroll.setBorder(new EmptyBorder(0, 0, 0, 0));
    scroll.setViewportBorder(new EmptyBorder(0, 0, 0, 0));
    scroll.setOpaque(false);
    scroll.getViewport().setOpaque(false);
    scroll = UIFactory.createBorderLessScrollBar(checkBoxPanel);
    panel.add(scroll, gbc);
@@ -197,6 +192,14 @@
  /**
   * {@inheritDoc}
   */
  protected boolean requiresScroll()
  {
    return false;
  }
  /**
   * {@inheritDoc}
   */
  protected Message getInstructions()
  {
    return INFO_SUFFIXES_TO_REPLICATE_PANEL_INSTRUCTIONS.get();
opends/src/quicksetup/org/opends/quicksetup/ui/CurrentStepPanel.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2006-2008 Sun Microsystems, Inc.
 *      Copyright 2006-2009 Sun Microsystems, Inc.
 */
package org.opends.quicksetup.ui;
@@ -239,16 +239,14 @@
  }
  /**
   * This method sets up an icon on the bottom left side of the dialog.
   * Generally this method is called with an animated gif that is passed to
   * display progress.
   * @param iconType the icon type to be set.
   * This method displays a working progress icon in the panel.
   * @param visible whether the icon must be displayed or not.
   */
  public void setIcon(UIFactory.IconType iconType)
  public void setCheckingVisible(boolean visible)
  {
    for (WizardStep s : hmPanels.keySet())
    {
      getPanel(s).setIcon(iconType);
      getPanel(s).setCheckingVisible(visible);
    }
  }
opends/src/quicksetup/org/opends/quicksetup/ui/ProgressPanel.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2006-2008 Sun Microsystems, Inc.
 *      Copyright 2006-2009 Sun Microsystems, Inc.
 */
package org.opends.quicksetup.ui;
@@ -182,6 +182,14 @@
  /**
   * {@inheritDoc}
   */
  protected boolean requiresScroll()
  {
    return false;
  }
  /**
   * {@inheritDoc}
   */
  public void endDisplay()
  {
    if (lastFocusComponent != null)
opends/src/quicksetup/org/opends/quicksetup/ui/QuickSetupDialog.java
@@ -22,12 +22,11 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2006-2008 Sun Microsystems, Inc.
 *      Copyright 2006-2009 Sun Microsystems, Inc.
 */
package org.opends.quicksetup.ui;
import java.awt.event.ComponentListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.HashSet;
@@ -147,17 +146,6 @@
    frame.pack();
    Utilities.centerOnScreen(frame);
    setFocusOnButton(ButtonName.NEXT);
    int minWidth = (int) frame.getPreferredSize().getWidth();
    int minHeight = (int) frame.getPreferredSize().getHeight();
    ComponentListener[] listeners = frame.getComponentListeners();
    for (ComponentListener listener : listeners) {
      if (listener instanceof MinimumSizeComponentListener) {
        frame.removeComponentListener(listener);
      }
    }
    frame.addComponentListener(new MinimumSizeComponentListener(frame,
        minWidth, minHeight));
  }
  /**
@@ -536,7 +524,6 @@
  private void displayWorkingProgressImage(boolean display)
  {
    getCurrentStepPanel().setIcon(display ?
          UIFactory.IconType.WAIT : UIFactory.IconType.NO_ICON);
    getCurrentStepPanel().setCheckingVisible(display);
  }
}
opends/src/quicksetup/org/opends/quicksetup/ui/QuickSetupStepPanel.java
@@ -27,6 +27,7 @@
package org.opends.quicksetup.ui;
import java.awt.CardLayout;
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
@@ -62,14 +63,19 @@
public abstract class QuickSetupStepPanel extends QuickSetupPanel
implements HyperlinkListener
{
  private JPanel inputContainer;
  private Component inputPanel;
  private JLabel checkingLabel;
  private HashSet<ButtonActionListener> buttonListeners =
    new HashSet<ButtonActionListener>();
  private ProgressMessageFormatter formatter;
  private static final String INPUT_PANEL = "input";
  private static final String CHECKING_PANEL = "checking";
  private boolean isCheckingVisible;
  /* We can use a HashMap (not multi-thread safe) because all
  the calls to this object are done in the event-thread.
  */
@@ -185,7 +191,7 @@
  /**
   * Returns the minimum width of the panel.  This is used to calculate the
   * minimum widht of the dialog.
   * minimum width of the dialog.
   * @return the minimum width of the panel.
   */
  public int getMinimumWidth()
@@ -233,15 +239,34 @@
  }
  /**
   * This method sets up an icon on the bottom left side of the dialog.
   * Generally this method is called with an animated gif that is passed to
   * display progress.
   * @param iconType the icon type to be set.
   * This method displays a working progress icon in the panel.
   * @param visible whether the icon must be displayed or not.
   */
  public void setIcon(UIFactory.IconType iconType)
  public void setCheckingVisible(boolean visible)
  {
    checkingLabel.setIcon(UIFactory.getImageIcon(iconType));
    checkingLabel.setText(String.valueOf(getTextForIcon(iconType)));
    if (visible != isCheckingVisible && inputContainer != null)
    {
      CardLayout cl = (CardLayout) inputContainer.getLayout();
      if (visible)
      {
        cl.show(inputContainer, CHECKING_PANEL);
      }
      else
      {
        cl.show(inputContainer, INPUT_PANEL);
      }
      isCheckingVisible = visible;
    }
  }
  /**
   * Tells whether a working progress icon is being displayed in the panel.
   * @return <CODE>true</CODE> if a working progress icon is being displayed in
   * the panel and <CODE>false</CODE> otherwise.
   */
  public boolean isCheckingVisible()
  {
      return isCheckingVisible;
  }
  /**
@@ -280,7 +305,7 @@
   * Creates the layout of the panel.
   *
   */
  private void createLayout()
  protected void createLayout()
  {
    setLayout(new GridBagLayout());
@@ -310,7 +335,7 @@
    {
      if (somethingAdded)
      {
        gbc.insets.top = UIFactory.TOP_INSET_INSTRUCTIONS_SUBPANEL;
        gbc.insets.top = UIFactory.TOP_INSET_PRIMARY_FIELD;
      } else
      {
        gbc.insets.top = 0;
@@ -319,7 +344,7 @@
      gbc.weightx = 1.0;
      gbc.weighty = 0.0;
      gbc.gridwidth = GridBagConstraints.REMAINDER;
      gbc.fill = GridBagConstraints.HORIZONTAL;
      gbc.fill = GridBagConstraints.BOTH;
      gbc.anchor = GridBagConstraints.NORTHWEST;
      add(instructionsPanel, gbc);
      somethingAdded = true;
@@ -327,6 +352,26 @@
    if (inputPanel != null)
    {
      inputContainer = new JPanel(new CardLayout());
      if (requiresScroll())
      {
        inputContainer.add(UIFactory.createBorderLessScrollBar(inputPanel),
            INPUT_PANEL);
      }
      else
      {
        inputContainer.add(inputPanel, INPUT_PANEL);
      }
      JPanel checkingPanel = UIFactory.makeJPanel();
      checkingPanel.setLayout(new GridBagLayout());
      checkingPanel.add(UIFactory.makeJLabel(UIFactory.IconType.WAIT,
          INFO_GENERAL_CHECKING_DATA.get(),
          UIFactory.TextStyle.PRIMARY_FIELD_VALID),
          new GridBagConstraints());
      inputContainer.add(checkingPanel, CHECKING_PANEL);
      if (somethingAdded)
      {
        gbc.insets.top = UIFactory.TOP_INSET_INPUT_SUBPANEL;
@@ -340,25 +385,13 @@
      gbc.fill = GridBagConstraints.BOTH;
      gbc.anchor = GridBagConstraints.NORTHWEST;
      gbc.insets.left = 0;
      add(inputPanel, gbc);
      add(inputContainer, gbc);
      somethingAdded = true;
    } else
    }
    else
    {
      addVerticalGlue(this);
    }
    checkingLabel = UIFactory.makeJLabel(UIFactory.IconType.NO_ICON,
            Message.EMPTY, UIFactory.TextStyle.PROGRESS);
    if (hasCheckingLabel())
    {
      gbc.insets.top = UIFactory.TOP_INSET_SECONDARY_FIELD;
      gbc.insets.bottom = 0;
      gbc.insets.left = 0;
      gbc.weighty = 0.0;
      gbc.anchor = GridBagConstraints.NORTHWEST;
      gbc.fill = GridBagConstraints.HORIZONTAL;
      add(checkingLabel, gbc);
    }
  }
  /**
@@ -396,15 +429,6 @@
  }
  /**
   * Tells whether we must add a label at the bottom left of the panel
   * containing an icon that will show that we are doing some checkings.
   * @return true if the checking label must be added and false otherwise.
   */
  protected boolean hasCheckingLabel()
  {
    return false;
  }
  /**
   * This method is called by the URLWorker when it has finished its task.
   * @param worker the URLWorker that finished its task.
   */
@@ -414,6 +438,16 @@
  }
  /**
   * Tells whether the input panel should have a scroll or not.
   * @return <CODE>true</CODE> if the input panel should have a scroll and
   * <CODE>false</CODE> otherwise.
   */
  protected boolean requiresScroll()
  {
    return true;
  }
  /**
   * Returns <CODE>true</CODE> if this is a WebStart based installer and
   * <CODE>false</CODE> otherwise.
   * @return <CODE>true</CODE> if this is a WebStart based installer and
opends/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java
@@ -1226,6 +1226,42 @@
  }
  /**
   * Returns a JScrollPane that contains the provided component.  The scroll
   * pane will not contain any border.
   * @param comp the component contained in the scroll pane.
   * @return a JScrollPane that contains the provided component.  The scroll
   * pane will not contain any border.
   */
  public static JScrollPane createBorderLessScrollBar(Component comp)
  {
    JScrollPane scroll = new JScrollPane(comp);
    scroll.setBorder(new EmptyBorder(0, 0, 0, 0));
    scroll.setViewportBorder(new EmptyBorder(0, 0, 0, 0));
    scroll.setOpaque(false);
    scroll.getViewport().setOpaque(false);
    scroll.getViewport().setBackground(DEFAULT_BACKGROUND);
    scroll.setBackground(DEFAULT_BACKGROUND);
    setScrollIncrementUnit(scroll);
    return scroll;
  }
  /**
   * Sets the scroll increment unit for the scroll.
   * @param scroll the scroll to be updated.
   */
  public static void setScrollIncrementUnit(JScrollPane scroll)
  {
    if (scroll.getVerticalScrollBar() != null)
    {
      int increment = scroll.getVerticalScrollBar().getUnitIncrement();
      if (increment < 16)
      {
        scroll.getVerticalScrollBar().setUnitIncrement(16);
      }
    }
  }
  /**
   * Return empty insets.
   * @return empty insets.
   */