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

jvergara
04.09.2010 c96108b4530dde68a2613fd3f190c5b6cf9f37aa
Fix for issue 4415 (Control panel connection chooser doesn't show in task bar)
Use a JFrame instead of a JDialog for the initial login dialog.
3 files modified
131 ■■■■■ changed files
opends/src/guitools/org/opends/guitools/controlpanel/ControlPanel.java 70 ●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/controlpanel/ui/LocalOrRemotePanel.java 57 ●●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/controlpanel/ui/MainMenuBar.java 4 ●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/controlpanel/ControlPanel.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2008-2009 Sun Microsystems, Inc.
 *      Copyright 2008-2010 Sun Microsystems, Inc.
 */
package org.opends.guitools.controlpanel;
@@ -32,17 +32,21 @@
import java.awt.Component;
import java.awt.Container;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.RootPaneContainer;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
import org.opends.guitools.controlpanel.datamodel.ControlPanelInfo;
import org.opends.guitools.controlpanel.ui.ControlCenterMainPane;
import org.opends.guitools.controlpanel.ui.GenericDialog;
import org.opends.guitools.controlpanel.ui.GenericFrame;
import org.opends.guitools.controlpanel.ui.LocalOrRemotePanel;
import org.opends.guitools.controlpanel.ui.MainMenuBar;
import org.opends.guitools.controlpanel.util.BlindApplicationTrustManager;
@@ -129,8 +133,10 @@
   */
  public void createAndDisplayGUI()
  {
    GenericDialog localOrRemote =
      ControlCenterMainPane.getLocalOrRemoteDialog(info);
    LocalOrRemotePanel localOrRemotePanel = new LocalOrRemotePanel();
    localOrRemotePanel.setInfo(info);
    final GenericFrame localOrRemote = new GenericFrame(localOrRemotePanel);
    localOrRemote.pack();
    Utilities.centerOnScreen(localOrRemote);
    if (argParser.getBindPassword() != null)
@@ -140,17 +146,32 @@
      setCallOKWhenVisible(true);
    }
    ComponentListener listener = new ComponentAdapter()
    {
      /**
       * {@inheritDoc}
       */
      public void componentHidden(ComponentEvent e)
      {
        handleWindowClosed(localOrRemote, info);
      }
    };
    localOrRemote.addComponentListener(listener);
    localOrRemote.setVisible(true);
  }
    getLocalOrRemotePanel(localOrRemote.getContentPane()).
    setCallOKWhenVisible(false);
  private void handleWindowClosed(GenericFrame localOrRemote,
      final ControlPanelInfo info)
  {
    if (info.getServerDescriptor() == null)
    {
      MainMenuBar menuBar = new MainMenuBar(info);
      // Assume that the user decided to quit the application
      menuBar.quitClicked();
    }
    updateSharedLocalOrRemotePanel(localOrRemote, info);
    // To be sure that the dialog receives the new configuration event before
    // calling pack.
    SwingUtilities.invokeLater(new Runnable()
@@ -216,7 +237,7 @@
    }
  }
  private void updateLocalOrRemotePanel(GenericDialog localOrRemote)
  private void updateLocalOrRemotePanel(RootPaneContainer localOrRemote)
  {
    LocalOrRemotePanel panel =
      getLocalOrRemotePanel(localOrRemote.getContentPane());
@@ -243,6 +264,39 @@
    }
  }
  /**
   * A method used to update the contents of the dialog displayed when the user
   * selects 'Server To Administer...'.  This is done because this class
   * displays a GenericFrame and in the rest of the UI a GenericDialog is
   * shown.
   * @param localOrRemote the frame displayed by this class.
   * @param info the generic info.
   */
  private void updateSharedLocalOrRemotePanel(RootPaneContainer localOrRemote,
      ControlPanelInfo info)
  {
    LocalOrRemotePanel panel =
      getLocalOrRemotePanel(localOrRemote.getContentPane());
    LocalOrRemotePanel panelToUpdate = getLocalOrRemotePanel(
        ControlCenterMainPane.getLocalOrRemoteDialog(info));
    if (panel != null && panelToUpdate != null)
    {
      panelToUpdate.setRemote(panel.isRemote());
      if (panel.getHostName() != null)
      {
        panelToUpdate.setHostName(panel.getHostName());
      }
      if (panel.getPort() != -1)
      {
        panelToUpdate.setPort(panel.getPort());
      }
      if (panel.getBindDN() != null)
      {
        panelToUpdate.setBindDN(panel.getBindDN());
      }
    }
  }
  private LocalOrRemotePanel getLocalOrRemotePanel(Container c)
  {
    LocalOrRemotePanel panel = null;
opends/src/guitools/org/opends/guitools/controlpanel/ui/LocalOrRemotePanel.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2009 Sun Microsystems, Inc.
 *      Copyright 2009-2010 Sun Microsystems, Inc.
 */
package org.opends.guitools.controlpanel.ui;
@@ -134,6 +134,61 @@
  }
  /**
   * Returns the displayed host name.
   * @return the displayed host name.
   */
  public String getHostName()
  {
    return hostName.getText();
  }
  /**
   * Returns the displayed administration port.
   * @return the displayed administration port.
   */
  public int getPort()
  {
    int port = -1;
    try
    {
      port = new Integer(this.port.getText().trim());
    }
    catch (Exception ex)
    {
      // Ignore
    }
    return port;
  }
  /**
   * Returns the displayed bind DN.
   * @return the displayed bind DN.
   */
  public String getBindDN()
  {
    return dn.getText();
  }
  /**
   * Returns the displayed password.
   * @return the displayed password.
   */
  public char[] getBindPassword()
  {
    return pwd.getPassword();
  }
  /**
   * Returns whether the panel displays the remote or the local server.
   * @return whether the panel displays the remote or the local server.
   */
  public boolean isRemote()
  {
    int index = combo.getSelectedIndex();
    return index == 1;
  }
  /**
   * Sets the displayed host name.
   * @param hostName the host name.
   */
opends/src/guitools/org/opends/guitools/controlpanel/ui/MainMenuBar.java
@@ -22,7 +22,7 @@
 * CDDL HEADER END
 *
 *
 *      Copyright 2008-2009 Sun Microsystems, Inc.
 *      Copyright 2008-2010 Sun Microsystems, Inc.
 */
package org.opends.guitools.controlpanel.ui;
@@ -187,7 +187,7 @@
    {
      Class<? extends Object> applicationClass =
        Class.forName("com.apple.eawt.Application");
      Class applicationListenerClass =
      Class<? extends Object> applicationListenerClass =
        Class.forName("com.apple.eawt.ApplicationListener");
      final Object  macApplication = applicationClass.getConstructor(
          (Class[])null).newInstance((Object[])null);