Class JXLoginPane

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.Scrollable, AlphaPaintable, BackgroundPaintable

    @JavaBean
    public class JXLoginPane
    extends JXPanel

    JXLoginPane is a specialized JPanel that implements a Login dialog with support for saving passwords supplied for future use in a secure manner. LoginService is invoked to perform authentication and optional PasswordStore can be provided to store the user login information.

    In order to perform the authentication, JXLoginPane calls the authenticate method of the LoginService . In order to perform the persistence of the password, JXLoginPane calls the put method of the PasswordStore object that is supplied. If the PasswordStore is null, then the password is not saved. Similarly, if a PasswordStore is supplied and the password is null, then the PasswordStore will be queried for the password using the get method. Example:

             final JXLoginPane panel = new JXLoginPane(new LoginService() {
                          public boolean authenticate(String name, char[] password,
                                          String server) throws Exception {
                                  // perform authentication and return true on success.
                                  return false;
                          }});
          final JFrame frame = JXLoginPane.showLoginFrame(panel);
     
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  JXLoginPane.CancelAction
      Action that cancels the login procedure.
      private class  JXLoginPane.ComboNamePanel
      If a UserNameStore is used, then this combo box is presented allowing the user to select a previous login name, or type in a new login name
      private static class  JXLoginPane.JXBtnPanel  
      static class  JXLoginPane.JXLoginDialog  
      static class  JXLoginPane.JXLoginFrame  
      private static class  JXLoginPane.LoginAction
      Action that initiates a login procedure.
      protected class  JXLoginPane.LoginListenerImpl
      Listener class to track state in the LoginService
      private class  JXLoginPane.LoginPaneLayout  
      private static interface  JXLoginPane.NameComponent  
      private static class  JXLoginPane.NullLoginService
      Simple login service that allows everybody to login.
      private static class  JXLoginPane.NullPasswordStore
      Simple PasswordStore that does not remember passwords
      static class  JXLoginPane.SaveMode
      The JXLoginPane can attempt to save certain user information such as the username, password, or both to their respective stores.
      private class  JXLoginPane.SimpleNamePanel
      If a UserNameStore is not used, then this text field is presented allowing the user to simply enter their user name
      static class  JXLoginPane.Status
      Returns the status of the login process
      • Nested classes/interfaces inherited from class javax.swing.JPanel

        javax.swing.JPanel.AccessibleJPanel
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private JXImagePanel banner
      An optional banner at the top of the panel
      private java.lang.String bannerText
      Text that should appear on the banner
      private JXLoginPane.JXBtnPanel buttonPanel
      Login/cancel control pane;
      static java.lang.String CANCEL_LOGIN_ACTION_COMMAND
      Action key for an Action in the ActionMap that cancels the Login procedure
      private javax.swing.JLabel capsOn
      Label displayed whenever caps lock is on.
      private static java.lang.String CLASS_NAME
      Used as a prefix when pulling data out of UIManager for i18n
      private javax.swing.JPanel contentCardPane
      Card pane holding user/pwd fields view and the progress view.
      private JXPanel contentPanel
      The panel on which the input fields, messageLabel, and errorMessageLabel are placed.
      private LoginListener defaultLoginListener
      The default login listener used by this panel.
      private JXLabel errorMessageLabel
      Shows an error message such as "user name or password incorrect" or "could not contact server" or something like that if something goes wrong
      private boolean isErrorMessageSet  
      private static java.util.logging.Logger LOG
      The Logger
      static java.lang.String LOGIN_ACTION_COMMAND
      Action key for an Action in the ActionMap that initiates the Login procedure
      private JXPanel loginPanel
      A Panel containing all of the input fields, check boxes, etc necessary for the user to do their job.
      private LoginService loginService
      The LoginService to use.
      private javax.swing.JLabel messageLabel
      Custom label allowing the developer to display some message to the user
      private JXLoginPane.NameComponent namePanel
      This is the area in which the name field is placed.
      private boolean namePanelEnabled  
      private java.awt.Cursor oldCursor
      Tracks the cursor at the time that authentication was started, and restores to that cursor after authentication ends, or is canceled;
      private javax.swing.JPasswordField passwordField
      The password field presented allowing the user to enter their password
      private PasswordStore passwordStore
      Optional: a PasswordStore to use for storing and retrieving passwords for a specific user.
      private javax.swing.JLabel progressMessageLabel
      A JLabel on the progressPanel that is used for informing the user of the status of the login procedure (logging in..., canceling login...)
      private JXPanel progressPanel
      A special panel that displays a progress bar and cancel button, and which notify the user of the login process, and allow them to cancel that process.
      private javax.swing.JCheckBox saveCB
      Check box presented if a PasswordStore is used, allowing the user to decide whether to save their password
      private JXLoginPane.SaveMode saveMode
      Whether to save password or username or both.
      private static long serialVersionUID
      Comment for serialVersionUID
      private javax.swing.JComboBox serverCombo
      A combo box presenting the user with a list of servers to which they may log in.
      private java.util.List<java.lang.String> servers
      A list of servers where each server is represented by a String.
      private JXLoginPane.Status status
      The current login status for this panel
      static java.lang.String uiClassID
      UI Class ID
      private UserNameStore userNameStore
      Optional: a UserNameStore to use for storing user names and retrieving them
      • Fields inherited from class javax.swing.JComponent

        listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
      • Fields inherited from class java.awt.Component

        accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
    • Constructor Summary

      Constructors 
      Constructor Description
      JXLoginPane()
      Create a JXLoginPane that always accepts the user, never stores passwords or user ids, and has no target servers.
      JXLoginPane​(LoginService service)
      Create a JXLoginPane with the specified LoginService that does not store user ids or passwords and has no target servers.
      JXLoginPane​(LoginService service, PasswordStore passwordStore, UserNameStore userStore)
      Create a JXLoginPane with the specified LoginService, PasswordStore, and UserNameStore, but without a server list.
      JXLoginPane​(LoginService service, PasswordStore passwordStore, UserNameStore userStore, java.util.List<java.lang.String> servers)
      Create a JXLoginPane with the specified LoginService, PasswordStore, UserNameStore, and server list.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void cancelLogin()
      Cancels the login procedure.
      protected javax.swing.Action createCancelAction()
      Create and return an Action for canceling login
      protected javax.swing.Action createLoginAction()
      Create and return an Action for logging in
      protected java.awt.Image createLoginBanner()
      Create and return an image to use for the Banner.
      private JXPanel createLoginPanel()
      Creates and returns a new LoginPanel, based on the SaveMode state of the login panel.
      java.awt.Image getBanner()
      Return the image used as the banner
      java.lang.String getBannerText()
      Returns text used when creating the banner
      private LoginListener getDefaultLoginListener()  
      java.lang.String getErrorMessage()
      Returns the error message for this login panel
      LoginService getLoginService()
      Gets the LoginService for this panel.
      java.lang.String getMessage()
      Returns the custom message for this login panel
      char[] getPassword()
      Gets the Password for this panel.
      PasswordStore getPasswordStore()
      Gets the PasswordStore for this panel.
      JXLoginPane.SaveMode getSaveMode()  
      java.util.List<java.lang.String> getServers()  
      JXLoginPane.Status getStatus()
      Returns the panel's status
      LoginPaneUI getUI()
      java.lang.String getUIClassID()
      Returns the name of the L&F class that renders this component.
      java.lang.String getUserName()
      Gets the User name for this panel.
      UserNameStore getUserNameStore()
      Gets the UserNameStore for this panel.
      private void initComponents()
      Create all of the UI components for the login panel
      (package private) static void initWindow​(java.awt.Window w, JXLoginPane panel)
      Utility method for initializing a Window for displaying a LoginDialog.
      boolean isCapsLockOn()
      Gets current state of the caps lock as seen by the login panel.
      boolean isRememberPassword()  
      boolean isUserNameEnabled()
      Gets current state of the user name field.
      protected void recreateLoginPanel()
      Recreates the login panel, and replaces the current one with the new one
      private void reinitLocales​(java.util.Locale l)
      Populates UIDefaults with the localizable Strings we will use in the Login panel.
      protected void savePassword()
      Puts the password into the password store.
      void setBanner​(java.awt.Image img)
      Set the image to use for the banner.
      void setBannerText​(java.lang.String text)
      Set the text to use when creating the banner.
      private void setButtonPanel​(JXLoginPane.JXBtnPanel buttonPanel)  
      void setComponentOrientation​(java.awt.ComponentOrientation orient)
      This method adds functionality to support bidi languages within this component
      void setErrorMessage​(java.lang.String errorMessage)
      Sets the error message for this login panel
      void setLocale​(java.util.Locale l)  
      void setLoginService​(LoginService service)
      Sets the LoginService for this panel.
      void setMessage​(java.lang.String message)
      Sets a custom message for this login panel
      void setPassword​(char[] password)
      Sets the Password for this panel.
      void setPasswordStore​(PasswordStore store)
      Sets the PasswordStore for this panel.
      void setSaveMode​(JXLoginPane.SaveMode saveMode)
      The save mode indicates whether the "save" password is checked by default.
      void setServers​(java.util.List<java.lang.String> servers)
      Sets the list of servers.
      protected void setStatus​(JXLoginPane.Status newStatus)
      Change the status
      void setUI​(LoginPaneUI ui)
      Sets the look and feel (L&F) object that renders this component.
      void setUserName​(java.lang.String username)
      Sets the User name for this panel.
      void setUserNameEnabled​(boolean enabled)
      Enables or disables User name for this panel.
      void setUserNameStore​(UserNameStore store)
      Sets the user name store for this panel.
      static JXLoginPane.Status showLoginDialog​(java.awt.Component parent, LoginService svc)
      Shows a login dialog.
      static JXLoginPane.Status showLoginDialog​(java.awt.Component parent, LoginService svc, PasswordStore ps, UserNameStore us)
      Shows a login dialog.
      static JXLoginPane.Status showLoginDialog​(java.awt.Component parent, LoginService svc, PasswordStore ps, UserNameStore us, java.util.List<java.lang.String> servers)
      Shows a login dialog.
      static JXLoginPane.Status showLoginDialog​(java.awt.Component parent, JXLoginPane panel)
      Shows a login dialog.
      static JXLoginPane.JXLoginFrame showLoginFrame​(LoginService svc)
      Shows a login frame.
      static JXLoginPane.JXLoginFrame showLoginFrame​(LoginService svc, PasswordStore ps, UserNameStore us)  
      static JXLoginPane.JXLoginFrame showLoginFrame​(LoginService svc, PasswordStore ps, UserNameStore us, java.util.List<java.lang.String> servers)  
      static JXLoginPane.JXLoginFrame showLoginFrame​(JXLoginPane panel)  
      protected void startLogin()
      Initiates the login procedure.
      private void updatePassword​(java.lang.String username)  
      void updateUI()
      Notification from the UIManager that the L&F has changed.
      • Methods inherited from class javax.swing.JPanel

        getAccessibleContext, paramString, setUI
      • Methods inherited from class javax.swing.JComponent

        addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • LOG

        private static final java.util.logging.Logger LOG
        The Logger
      • serialVersionUID

        private static final long serialVersionUID
        Comment for serialVersionUID
        See Also:
        Constant Field Values
      • LOGIN_ACTION_COMMAND

        public static final java.lang.String LOGIN_ACTION_COMMAND
        Action key for an Action in the ActionMap that initiates the Login procedure
        See Also:
        Constant Field Values
      • CANCEL_LOGIN_ACTION_COMMAND

        public static final java.lang.String CANCEL_LOGIN_ACTION_COMMAND
        Action key for an Action in the ActionMap that cancels the Login procedure
        See Also:
        Constant Field Values
      • CLASS_NAME

        private static java.lang.String CLASS_NAME
        Used as a prefix when pulling data out of UIManager for i18n
      • banner

        private JXImagePanel banner
        An optional banner at the top of the panel
      • bannerText

        private java.lang.String bannerText
        Text that should appear on the banner
      • messageLabel

        private javax.swing.JLabel messageLabel
        Custom label allowing the developer to display some message to the user
      • errorMessageLabel

        private JXLabel errorMessageLabel
        Shows an error message such as "user name or password incorrect" or "could not contact server" or something like that if something goes wrong
      • loginPanel

        private JXPanel loginPanel
        A Panel containing all of the input fields, check boxes, etc necessary for the user to do their job. The items on this panel change whenever the SaveMode changes, so this panel must be recreated at runtime if the SaveMode changes. Thus, I must maintain this reference so I can remove this panel from the content panel at runtime.
      • contentPanel

        private JXPanel contentPanel
        The panel on which the input fields, messageLabel, and errorMessageLabel are placed. While the login thread is running, this panel is removed from the dialog and replaced by the progressPanel
      • namePanel

        private JXLoginPane.NameComponent namePanel
        This is the area in which the name field is placed. That way it can toggle on the fly between text field and a combo box depending on the situation, and have a simple way to get the user name
      • passwordField

        private javax.swing.JPasswordField passwordField
        The password field presented allowing the user to enter their password
      • serverCombo

        private javax.swing.JComboBox serverCombo
        A combo box presenting the user with a list of servers to which they may log in. This is an optional feature, which is only enabled if the List of servers supplied to the JXLoginPane has a length greater than 1.
      • saveCB

        private javax.swing.JCheckBox saveCB
        Check box presented if a PasswordStore is used, allowing the user to decide whether to save their password
      • capsOn

        private javax.swing.JLabel capsOn
        Label displayed whenever caps lock is on.
      • progressPanel

        private JXPanel progressPanel
        A special panel that displays a progress bar and cancel button, and which notify the user of the login process, and allow them to cancel that process.
      • progressMessageLabel

        private javax.swing.JLabel progressMessageLabel
        A JLabel on the progressPanel that is used for informing the user of the status of the login procedure (logging in..., canceling login...)
      • loginService

        private LoginService loginService
        The LoginService to use. This must be specified for the login dialog to operate. If no LoginService is defined, a default login service is used that simply allows all users access. This is useful for demos or prototypes where a proper login server is not available.
      • passwordStore

        private PasswordStore passwordStore
        Optional: a PasswordStore to use for storing and retrieving passwords for a specific user.
      • userNameStore

        private UserNameStore userNameStore
        Optional: a UserNameStore to use for storing user names and retrieving them
      • servers

        private java.util.List<java.lang.String> servers
        A list of servers where each server is represented by a String. If the list of Servers is greater than 1, then a combo box will be presented to the user to choose from. If any servers are specified, the selected one (or the only one if servers.size() == 1) will be passed to the LoginService
      • oldCursor

        private java.awt.Cursor oldCursor
        Tracks the cursor at the time that authentication was started, and restores to that cursor after authentication ends, or is canceled;
      • namePanelEnabled

        private boolean namePanelEnabled
      • defaultLoginListener

        private LoginListener defaultLoginListener
        The default login listener used by this panel.
      • contentCardPane

        private javax.swing.JPanel contentCardPane
        Card pane holding user/pwd fields view and the progress view.
      • isErrorMessageSet

        private boolean isErrorMessageSet
    • Constructor Detail

      • JXLoginPane

        public JXLoginPane()
        Create a JXLoginPane that always accepts the user, never stores passwords or user ids, and has no target servers.

        This constructor should NOT be used in a real application. It is provided for compliance to the bean specification and for use with visual editors.

      • JXLoginPane

        public JXLoginPane​(LoginService service)
        Create a JXLoginPane with the specified LoginService that does not store user ids or passwords and has no target servers.
        Parameters:
        service - the LoginService to use for logging in
      • JXLoginPane

        public JXLoginPane​(LoginService service,
                           PasswordStore passwordStore,
                           UserNameStore userStore)
        Create a JXLoginPane with the specified LoginService, PasswordStore, and UserNameStore, but without a server list.

        If you do not want to store passwords or user ids, those parameters can be null. SaveMode is autoconfigured from passed in store parameters.

        Parameters:
        service - the LoginService to use for logging in
        passwordStore - the PasswordStore to use for storing password information
        userStore - the UserNameStore to use for storing user information
      • JXLoginPane

        public JXLoginPane​(LoginService service,
                           PasswordStore passwordStore,
                           UserNameStore userStore,
                           java.util.List<java.lang.String> servers)
        Create a JXLoginPane with the specified LoginService, PasswordStore, UserNameStore, and server list.

        If you do not want to store passwords or user ids, those parameters can be null. SaveMode is autoconfigured from passed in store parameters.

        Setting the server list to null will unset all of the servers. The server list is guaranteed to be non-null.

        Parameters:
        service - the LoginService to use for logging in
        passwordStore - the PasswordStore to use for storing password information
        userStore - the UserNameStore to use for storing user information
        servers - a list of servers to authenticate against
    • Method Detail

      • reinitLocales

        private void reinitLocales​(java.util.Locale l)
        Populates UIDefaults with the localizable Strings we will use in the Login panel.
      • isCapsLockOn

        public boolean isCapsLockOn()
        Gets current state of the caps lock as seen by the login panel. The state seen by the login panel and therefore returned by this method can be delayed in comparison to the real caps lock state and displayed by the keyboard light. This is usually the case when component or its text fields are not focused.
        Returns:
        True when caps lock is on, false otherwise. Returns always false when isCapsLockDetectionSupported() returns false.
      • getUI

        public LoginPaneUI getUI()
        Overrides:
        getUI in class javax.swing.JPanel
      • setUI

        public void setUI​(LoginPaneUI ui)
        Sets the look and feel (L&F) object that renders this component.
        Parameters:
        ui - the LoginPaneUI L&F object
        See Also:
        UIDefaults.getUI(javax.swing.JComponent)
      • updateUI

        public void updateUI()
        Notification from the UIManager that the L&F has changed. Replaces the current UI object with the latest version from the UIManager.
        Overrides:
        updateUI in class javax.swing.JPanel
        See Also:
        JComponent.updateUI()
      • getUIClassID

        public java.lang.String getUIClassID()
        Returns the name of the L&F class that renders this component.
        Overrides:
        getUIClassID in class javax.swing.JPanel
        Returns:
        the string uiClassID
        See Also:
        JComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)
      • recreateLoginPanel

        protected void recreateLoginPanel()
        Recreates the login panel, and replaces the current one with the new one
      • createLoginPanel

        private JXPanel createLoginPanel()
        Creates and returns a new LoginPanel, based on the SaveMode state of the login panel. Whenever the SaveMode changes, the panel is recreated. I do this rather than hiding/showing components, due to a cleaner implementation (no invisible components, components are not sharing locations in the LayoutManager, etc).
      • setComponentOrientation

        public void setComponentOrientation​(java.awt.ComponentOrientation orient)
        This method adds functionality to support bidi languages within this component
        Overrides:
        setComponentOrientation in class java.awt.Component
      • initComponents

        private void initComponents()
        Create all of the UI components for the login panel
      • createLoginBanner

        protected java.awt.Image createLoginBanner()
        Create and return an image to use for the Banner. This may be overridden to return any image you like
      • createLoginAction

        protected javax.swing.Action createLoginAction()
        Create and return an Action for logging in
      • createCancelAction

        protected javax.swing.Action createCancelAction()
        Create and return an Action for canceling login
      • setSaveMode

        public void setSaveMode​(JXLoginPane.SaveMode saveMode)
        The save mode indicates whether the "save" password is checked by default. This method makes no difference if the passwordStore is null.
        Parameters:
        saveMode - The saveMode to set either SAVE_NONE, SAVE_PASSWORD or SAVE_USERNAME
      • isRememberPassword

        public boolean isRememberPassword()
      • getServers

        public java.util.List<java.lang.String> getServers()
        Returns:
        the List of servers
      • setServers

        public void setServers​(java.util.List<java.lang.String> servers)
        Sets the list of servers. See the servers field javadoc for more info.
      • getDefaultLoginListener

        private LoginListener getDefaultLoginListener()
      • setLoginService

        public void setLoginService​(LoginService service)
        Sets the LoginService for this panel. Setting the login service to null will actually set the service to use NullLoginService.
        Parameters:
        service - the service to set. If service == null, then a NullLoginService is used.
      • getLoginService

        public LoginService getLoginService()
        Gets the LoginService for this panel.
        Returns:
        service service
      • setPasswordStore

        public void setPasswordStore​(PasswordStore store)
        Sets the PasswordStore for this panel.
        Parameters:
        store - PasswordStore
      • getUserNameStore

        public UserNameStore getUserNameStore()
        Gets the UserNameStore for this panel.
        Returns:
        the UserNameStore
      • setUserNameStore

        public void setUserNameStore​(UserNameStore store)
        Sets the user name store for this panel.
        Parameters:
        store -
      • getPasswordStore

        public PasswordStore getPasswordStore()
        Gets the PasswordStore for this panel.
        Returns:
        store PasswordStore
      • setUserName

        public void setUserName​(java.lang.String username)
        Sets the User name for this panel.
        Parameters:
        username - User name
      • setUserNameEnabled

        public void setUserNameEnabled​(boolean enabled)
        Enables or disables User name for this panel.
        Parameters:
        enabled -
      • isUserNameEnabled

        public boolean isUserNameEnabled()
        Gets current state of the user name field. Field can be either disabled (false) for editing or enabled (true).
        Returns:
        True when user name field is enabled and editable, false otherwise.
      • getUserName

        public java.lang.String getUserName()
        Gets the User name for this panel.
        Returns:
        the user name
      • setPassword

        public void setPassword​(char[] password)
        Sets the Password for this panel.
        Parameters:
        password - Password
      • getPassword

        public char[] getPassword()
        Gets the Password for this panel.
        Returns:
        password Password
      • getBanner

        public java.awt.Image getBanner()
        Return the image used as the banner
      • setBanner

        public void setBanner​(java.awt.Image img)
        Set the image to use for the banner. If the img is null, then no image will be displayed.
        Parameters:
        img - the image to display
      • setBannerText

        public void setBannerText​(java.lang.String text)
        Set the text to use when creating the banner. If a custom banner image is specified, then this is ignored. If text is null, then no text is displayed.
        Parameters:
        text - the text to display
      • getBannerText

        public java.lang.String getBannerText()
        Returns text used when creating the banner
      • getMessage

        public java.lang.String getMessage()
        Returns the custom message for this login panel
      • setMessage

        public void setMessage​(java.lang.String message)
        Sets a custom message for this login panel
      • getErrorMessage

        public java.lang.String getErrorMessage()
        Returns the error message for this login panel
      • setErrorMessage

        public void setErrorMessage​(java.lang.String errorMessage)
        Sets the error message for this login panel
      • setStatus

        protected void setStatus​(JXLoginPane.Status newStatus)
        Change the status
      • setLocale

        public void setLocale​(java.util.Locale l)
        Overrides:
        setLocale in class java.awt.Component
      • startLogin

        protected void startLogin()
        Initiates the login procedure. This method is called internally by the LoginAction. This method handles cursor management, and actually calling the LoginService's startAuthentication method. Method will return immediately if asynchronous login is enabled or will block until authentication finishes if getSynchronous() returns true.
      • cancelLogin

        protected void cancelLogin()
        Cancels the login procedure. Handles cursor management and interfacing with the LoginService's cancelAuthentication method. Calling this method has an effect only when authentication is still in progress (i.e. after previous call to startAuthentications() and only when authentication is performed asynchronously (getSynchronous() returns false).
      • savePassword

        protected void savePassword()
        Puts the password into the password store. If password store is not set, method will do nothing.
      • updatePassword

        private void updatePassword​(java.lang.String username)
      • showLoginDialog

        public static JXLoginPane.Status showLoginDialog​(java.awt.Component parent,
                                                         LoginService svc)
        Shows a login dialog. This method blocks.
        Returns:
        The status of the login operation
      • showLoginDialog

        public static JXLoginPane.Status showLoginDialog​(java.awt.Component parent,
                                                         LoginService svc,
                                                         PasswordStore ps,
                                                         UserNameStore us,
                                                         java.util.List<java.lang.String> servers)
        Shows a login dialog. This method blocks.
        Returns:
        The status of the login operation
      • showLoginDialog

        public static JXLoginPane.Status showLoginDialog​(java.awt.Component parent,
                                                         JXLoginPane panel)
        Shows a login dialog. This method blocks.
        Returns:
        The status of the login operation
      • initWindow

        static void initWindow​(java.awt.Window w,
                               JXLoginPane panel)
        Utility method for initializing a Window for displaying a LoginDialog. This is particularly useful because the differences between JFrame and JDialog are so minor. Note: This method is package private for use by JXLoginDialog (proper, not JXLoginPane.JXLoginDialog). Change to private if JXLoginDialog is removed.