Package io.guise.framework.component
Class PasswordAuthenticationPanel
- java.lang.Object
-
- com.globalmentor.beans.BoundPropertyObject
-
- io.guise.framework.event.GuiseBoundPropertyObject
-
- io.guise.framework.model.ui.AbstractPresentationModel
-
- io.guise.framework.component.AbstractComponent
-
- io.guise.framework.component.AbstractCompositeComponent
-
- io.guise.framework.component.AbstractMultipleCompositeComponent
-
- io.guise.framework.component.AbstractListCompositeComponent
-
- io.guise.framework.component.AbstractLayoutComponent
-
- io.guise.framework.component.AbstractContainer
-
- io.guise.framework.component.AbstractPanel
-
- io.guise.framework.component.LayoutPanel
-
- io.guise.framework.component.ArrangePanel
-
- io.guise.framework.component.PasswordAuthenticationPanel
-
- All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable
,com.globalmentor.beans.PropertyConstrainable
,ArrangeContainer
,Box
,Component
,CompositeComponent
,Container
,LayoutComponent
,Panel
,Displayable
,InfoModel
,LabelModel
,Model
,PresentationModel
,DepictedObject
,java.lang.Iterable<Component>
public class PasswordAuthenticationPanel extends ArrangePanel
Panel to gather password authentication information and optionally verify the password. This panel defaults to not verifying the password.- Author:
- Garret Wilson
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class io.guise.framework.component.AbstractComponent
AbstractComponent.AbstractFlyoverFrameStrategy<S extends Component>, AbstractComponent.AbstractFlyoverStrategy<S extends Component>, AbstractComponent.DefaultFlyoverStrategy<S extends Component>
-
Nested classes/interfaces inherited from interface io.guise.framework.component.Component
Component.FlyoverStrategy<S extends Component>
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
PASSWORD_VERIFIED_PROPERTY
The bound property of the password verification status.-
Fields inherited from class com.globalmentor.beans.BoundPropertyObject
NO_PROPERTY_CHANGE_LISTENERS, NO_VETOABLE_CHANGE_LISTENERS
-
Fields inherited from interface io.guise.framework.component.Component
BOOKMARK_ENABLED_PROPERTY, CONSTRAINTS_PROPERTY, DRAG_ENABLED_PROPERTY, DROP_ENABLED_PROPERTY, FLYOVER_ENABLED_PROPERTY, FLYOVER_STRATEGY_PROPERTY, INPUT_STRATEGY_PROPERTY, NAME_PROPERTY, NOTIFICATION_PROPERTY, ORIENTATION_PROPERTY, THEME_APPLIED_PROPERTY, VALID_PROPERTY
-
Fields inherited from interface io.guise.framework.model.Displayable
DISPLAYED_PROPERTY
-
Fields inherited from interface io.guise.framework.model.InfoModel
DESCRIPTION_CONTENT_TYPE_PROPERTY, DESCRIPTION_PROPERTY, INFO_CONTENT_TYPE_PROPERTY, INFO_PROPERTY
-
Fields inherited from interface io.guise.framework.model.LabelModel
GLYPH_URI_PROPERTY, LABEL_CONTENT_TYPE_PROPERTY, LABEL_PROPERTY
-
Fields inherited from interface io.guise.framework.component.LayoutComponent
LAYOUT_PROPERTY, LAYOUT_THEME_APPLIED_PROPERTY
-
Fields inherited from interface io.guise.framework.model.ui.PresentationModel
BACKGROUND_COLOR_PROPERTY, BORDER_LINE_FAR_COLOR_PROPERTY, BORDER_LINE_FAR_EXTENT_PROPERTY, BORDER_LINE_FAR_STYLE_PROPERTY, BORDER_LINE_NEAR_COLOR_PROPERTY, BORDER_LINE_NEAR_EXTENT_PROPERTY, BORDER_LINE_NEAR_STYLE_PROPERTY, BORDER_PAGE_FAR_COLOR_PROPERTY, BORDER_PAGE_FAR_EXTENT_PROPERTY, BORDER_PAGE_FAR_STYLE_PROPERTY, BORDER_PAGE_NEAR_COLOR_PROPERTY, BORDER_PAGE_NEAR_EXTENT_PROPERTY, BORDER_PAGE_NEAR_STYLE_PROPERTY, CORNER_LINE_FAR_PAGE_FAR_ARC_SIZE_PROPERTY, CORNER_LINE_FAR_PAGE_NEAR_ARC_SIZE_PROPERTY, CORNER_LINE_NEAR_PAGE_FAR_ARC_SIZE_PROPERTY, CORNER_LINE_NEAR_PAGE_NEAR_ARC_SIZE_PROPERTY, CURSOR_PROPERTY, FONT_FAMILIES_PROPERTY, FONT_SIZE_PROPERTY, FONT_STYLE_PROPERTY, FONT_WEIGHT_BOLD, FONT_WEIGHT_NORMAL, FONT_WEIGHT_PROPERTY, LABEL_FONT_FAMILIES_PROPERTY, LABEL_FONT_SIZE_PROPERTY, LABEL_FONT_STYLE_PROPERTY, LABEL_FONT_WEIGHT_PROPERTY, LABEL_TEXT_COLOR_PROPERTY, LINE_EXTENT_PROPERTY, MARGIN_LINE_FAR_EXTENT_PROPERTY, MARGIN_LINE_NEAR_EXTENT_PROPERTY, MARGIN_PAGE_FAR_EXTENT_PROPERTY, MARGIN_PAGE_NEAR_EXTENT_PROPERTY, OPACITY_PROPERTY, PADDING_LINE_FAR_EXTENT_PROPERTY, PADDING_LINE_NEAR_EXTENT_PROPERTY, PADDING_PAGE_FAR_EXTENT_PROPERTY, PADDING_PAGE_NEAR_EXTENT_PROPERTY, PAGE_EXTENT_PROPERTY, ROUNDED_CORNER_ARC_SIZE, STYLE_ID_PROPERTY, TEXT_COLOR_PROPERTY, TOOLTIP_ENABLED_PROPERTY, VISIBLE_PROPERTY
-
-
Constructor Summary
Constructors Constructor Description PasswordAuthenticationPanel()
Default constructor with a default vertical flow layout.PasswordAuthenticationPanel(Layout<?> layout)
Layout constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clearValues()
Clears the username and password values.protected boolean
determineValid()
Checks the state of the component for validity.char[]
getPassword()
Validator<char[]>
getPasswordValidator()
java.lang.String
getUsername()
Validator<java.lang.String>
getUsernameValidator()
protected boolean
isPasswordMatch()
boolean
isPasswordVerified()
void
setPassword(char[] password)
Sets the password shown in the panel.void
setPasswordValidator(Validator<char[]> newValidator)
Sets the password validator.void
setPasswordVerified(boolean newPasswordVerified)
Sets whether password verification is required This is a bound property of typeBoolean
.void
setUsername(java.lang.String username)
Sets the username shown in the panel.void
setUsernameValidator(Validator<java.lang.String> newValidator)
Sets the username validator.protected void
update()
Updates the condition of the component based upon the state.boolean
validate()
Validates the user input of this component and all child components.-
Methods inherited from class io.guise.framework.component.AbstractContainer
add, add, add, add, add, add, add, add, clear, contains, createComponent, get, getChildComponents, indexOf, isEmpty, iterator, lastIndexOf, remove, remove, setChildren, setLayout, size
-
Methods inherited from class io.guise.framework.component.AbstractLayoutComponent
addComponent, applyTheme, applyTheme, getLayout, isLayoutThemeApplied, removeComponent, resetTheme, setLayoutThemeApplied, updateTheme
-
Methods inherited from class io.guise.framework.component.AbstractListCompositeComponent
addComponent, getComponentList, hasChildComponents
-
Methods inherited from class io.guise.framework.component.AbstractCompositeComponent
addCompositeComponentListener, childComponentValidPropertyChanged, determineChildrenValid, dispatchInputEvent, dispatchInputEvent, fireChildComponentAdded, fireChildComponentAdded, fireChildComponentRemoved, fireChildComponentRemoved, initializeChildComponent, loadPreferences, removeCompositeComponentListener, savePreferences, uninitializeChildComponent, validateChildren
-
Methods inherited from class io.guise.framework.component.AbstractComponent
addCommandListener, addExportStrategy, addImportStrategy, addKeyListener, addMouseListener, addNotificationListener, addPreferenceProperty, depict, equals, exportTransfer, fireInputEvent, fireNotified, fireNotified, getAncestor, getCommandListeners, getComponentByID, getComponentByName, getComponentOrientation, getConstraints, getDepictID, getDepictor, getDescription, getDescriptionContentType, getDirtyComponents, getDirtyComponents, getEventListenerManager, getFlyoverStrategy, getGlyphURI, getInfo, getInfoContentType, getInfoModel, getInputStrategy, getKeyListeners, getLabel, getLabelContentType, getMouseListeners, getName, getNotification, getNotifications, getNotifications, getOrientation, getParent, getPreferenceProperties, getRootComponent, getTheme, hasAncestor, hasCommandListeners, hashCode, hasKeyListeners, hasMouseListeners, importTransfer, initialize, isDragEnabled, isDropEnabled, isFlyoverEnabled, isPreferenceProperty, isThemeApplied, isValid, notify, processEvent, removeCommandListener, removeExportStrategy, removeImportStrategy, removeKeyListener, removeMouseListener, removeNotificationListener, removePreferenceProperty, setConstraints, setDepicted, setDescription, setDescriptionContentType, setDragEnabled, setDropEnabled, setFlyoverEnabled, setFlyoverStrategy, setGlyphURI, setInfo, setInfoContentType, setInputStrategy, setLabel, setLabelContentType, setName, setNotification, setOrientation, setParent, setThemeApplied, setValid, toString, updateValid
-
Methods inherited from class io.guise.framework.model.ui.AbstractPresentationModel
BorderLineFarColor, BorderLineFarExtent, BorderLineFarStyle, BorderLineNearColor, BorderLineNearExtent, BorderLineNearStyle, BorderPageFarColor, BorderPageFarExtent, BorderPageFarStyle, BorderPageNearColor, BorderPageNearExtent, BorderPageNearStyle, getBackgroundColor, getBorderColor, getBorderExtent, getBorderStyle, getCornerArcSize, getCornerLineFarPageFarArcSize, getCornerLineFarPageNearArcSize, getCornerLineNearPageFarArcSize, getCornerLineNearPageNearArcSize, getCursor, getExtent, getFontFamilies, getFontSize, getFontStyle, getFontWeight, getLabelFontFamilies, getLabelFontSize, getLabelFontStyle, getLabelFontWeight, getLabelTextColor, getLineExtent, getMarginExtent, getMarginLineFarExtent, getMarginLineNearExtent, getMarginPageFarExtent, getMarginPageNearExtent, getOpacity, getPaddingExtent, getPaddingLineFarExtent, getPaddingLineNearExtent, getPaddingPageFarExtent, getPaddingPageNearExtent, getPageExtent, getStyleID, getTextColor, isDisplayed, isTooltipEnabled, isVisible, setBackgroundColor, setBorderColor, setBorderColor, setBorderExtent, setBorderExtent, setBorderLineFarColor, setBorderLineFarExtent, setBorderLineFarStyle, setBorderLineNearColor, setBorderLineNearExtent, setBorderLineNearStyle, setBorderPageFarColor, setBorderPageFarExtent, setBorderPageFarStyle, setBorderPageNearColor, setBorderPageNearExtent, setBorderPageNearStyle, setBorderStyle, setBorderStyle, setCornerArcSize, setCornerArcSize, setCornerLineFarPageFarArcSize, setCornerLineFarPageNearArcSize, setCornerLineNearPageFarArcSize, setCornerLineNearPageNearArcSize, setCursor, setDisplayed, setExtent, setFontFamilies, setFontSize, setFontStyle, setFontWeight, setLabelFontFamilies, setLabelFontSize, setLabelFontStyle, setLabelFontWeight, setLabelTextColor, setLineExtent, setMarginExtent, setMarginExtent, setMarginLineFarExtent, setMarginLineNearExtent, setMarginPageFarExtent, setMarginPageNearExtent, setOpacity, setPaddingExtent, setPaddingExtent, setPaddingLineFarExtent, setPaddingLineNearExtent, setPaddingPageFarExtent, setPaddingPageNearExtent, setPageExtent, setStyleID, setTextColor, setTooltipEnabled, setVisible
-
Methods inherited from class io.guise.framework.event.GuiseBoundPropertyObject
getSession
-
Methods inherited from class com.globalmentor.beans.BoundPropertyObject
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, createPostponedPropertyChangeEvent, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, getForwardPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeSupport, getRepeatPropertyChangeListener, getRepeatVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, getVetoableChangeSupport, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface io.guise.framework.component.Component
addCommandListener, addExportStrategy, addImportStrategy, addKeyListener, addMouseListener, addNotificationListener, addPreferenceProperty, applyTheme, applyTheme, dispatchInputEvent, exportTransfer, fireInputEvent, getAncestor, getComponentOrientation, getConstraints, getDepictor, getFlyoverStrategy, getInputStrategy, getName, getNotification, getOrientation, getParent, getPreferenceProperties, getTheme, hasCommandListeners, hasKeyListeners, hasMouseListeners, importTransfer, initialize, isDragEnabled, isDropEnabled, isFlyoverEnabled, isPreferenceProperty, isThemeApplied, isValid, loadPreferences, notify, removeCommandListener, removeExportStrategy, removeImportStrategy, removeKeyListener, removeMouseListener, removeNotificationListener, removePreferenceProperty, resetTheme, savePreferences, setConstraints, setDragEnabled, setDropEnabled, setFlyoverEnabled, setFlyoverStrategy, setInputStrategy, setName, setNotification, setOrientation, setParent, setThemeApplied, updateTheme
-
Methods inherited from interface io.guise.framework.component.CompositeComponent
addCompositeComponentListener, getChildComponents, hasChildComponents, removeCompositeComponentListener
-
Methods inherited from interface io.guise.framework.component.Container
add, add, add, add, add, add, add, clear, contains, get, indexOf, isEmpty, lastIndexOf, remove, remove, setLayout, size
-
Methods inherited from interface io.guise.framework.platform.DepictedObject
depict, getDepictID, getSession, processEvent
-
Methods inherited from interface io.guise.framework.model.InfoModel
getDescription, getDescriptionContentType, getInfo, getInfoContentType, setDescription, setDescriptionContentType, setInfo, setInfoContentType
-
Methods inherited from interface io.guise.framework.model.LabelModel
getGlyphURI, getLabel, getLabelContentType, setGlyphURI, setLabel, setLabelContentType
-
Methods inherited from interface io.guise.framework.component.LayoutComponent
getLayout, isLayoutThemeApplied, setLayoutThemeApplied
-
Methods inherited from interface io.guise.framework.model.ui.PresentationModel
BorderLineFarColor, BorderLineFarExtent, BorderLineFarStyle, BorderLineNearColor, BorderLineNearExtent, BorderLineNearStyle, BorderPageFarColor, BorderPageFarExtent, BorderPageFarStyle, BorderPageNearColor, BorderPageNearExtent, BorderPageNearStyle, getBackgroundColor, getBorderColor, getBorderExtent, getBorderStyle, getCornerArcSize, getCornerLineFarPageFarArcSize, getCornerLineFarPageNearArcSize, getCornerLineNearPageFarArcSize, getCornerLineNearPageNearArcSize, getCursor, getExtent, getFontFamilies, getFontSize, getFontStyle, getFontWeight, getLabelFontFamilies, getLabelFontSize, getLabelFontStyle, getLabelFontWeight, getLabelTextColor, getLineExtent, getMarginExtent, getMarginLineFarExtent, getMarginLineNearExtent, getMarginPageFarExtent, getMarginPageNearExtent, getOpacity, getPaddingExtent, getPaddingLineFarExtent, getPaddingLineNearExtent, getPaddingPageFarExtent, getPaddingPageNearExtent, getPageExtent, getSession, getStyleID, getTextColor, isDisplayed, isTooltipEnabled, isVisible, setBackgroundColor, setBorderColor, setBorderColor, setBorderExtent, setBorderExtent, setBorderLineFarColor, setBorderLineFarExtent, setBorderLineFarStyle, setBorderLineNearColor, setBorderLineNearExtent, setBorderLineNearStyle, setBorderPageFarColor, setBorderPageFarExtent, setBorderPageFarStyle, setBorderPageNearColor, setBorderPageNearExtent, setBorderPageNearStyle, setBorderStyle, setBorderStyle, setCornerArcSize, setCornerArcSize, setCornerLineFarPageFarArcSize, setCornerLineFarPageNearArcSize, setCornerLineNearPageFarArcSize, setCornerLineNearPageNearArcSize, setCursor, setDisplayed, setExtent, setFontFamilies, setFontSize, setFontStyle, setFontWeight, setLabelFontFamilies, setLabelFontSize, setLabelFontStyle, setLabelFontWeight, setLabelTextColor, setLineExtent, setMarginExtent, setMarginExtent, setMarginLineFarExtent, setMarginLineNearExtent, setMarginPageFarExtent, setMarginPageNearExtent, setOpacity, setPaddingExtent, setPaddingExtent, setPaddingLineFarExtent, setPaddingLineNearExtent, setPaddingPageFarExtent, setPaddingPageNearExtent, setPageExtent, setStyleID, setTextColor, setTooltipEnabled, setVisible
-
-
-
-
Constructor Detail
-
PasswordAuthenticationPanel
public PasswordAuthenticationPanel()
Default constructor with a default vertical flow layout.
-
PasswordAuthenticationPanel
public PasswordAuthenticationPanel(Layout<?> layout)
Layout constructor.- Parameters:
layout
- The layout definition for the container.- Throws:
java.lang.NullPointerException
- if the given layout isnull
.
-
-
Method Detail
-
isPasswordVerified
public boolean isPasswordVerified()
- Returns:
- Whether password verification is required, resulting in a separate password verification text input.
-
setPasswordVerified
public void setPasswordVerified(boolean newPasswordVerified)
Sets whether password verification is required This is a bound property of typeBoolean
. This method unconditionally clears the password verification control.- Parameters:
newPasswordVerified
- Whether password verification is required, resulting in a separate password verification text input.- See Also:
PASSWORD_VERIFIED_PROPERTY
-
getUsername
public java.lang.String getUsername()
- Returns:
- The current username entered, or
null
if there is no username entered.
-
setUsername
public void setUsername(java.lang.String username) throws java.beans.PropertyVetoException
Sets the username shown in the panel.- Parameters:
username
- The username to show.- Throws:
java.beans.PropertyVetoException
- if the provided value is not valid or the change has otherwise been vetoed.
-
getUsernameValidator
public Validator<java.lang.String> getUsernameValidator()
- Returns:
- The validator for the username, or
null
if no validator is installed.
-
setUsernameValidator
public void setUsernameValidator(Validator<java.lang.String> newValidator)
Sets the username validator.- Parameters:
newValidator
- The validator for the username, ornull
if no validator should be used.
-
getPassword
public char[] getPassword()
- Returns:
- The current password entered, or
null
if there is no password entered.
-
setPassword
public void setPassword(char[] password) throws java.beans.PropertyVetoException
Sets the password shown in the panel.- Parameters:
password
- The password to show.- Throws:
java.beans.PropertyVetoException
- if the provided value is not valid or the change has otherwise been vetoed.
-
getPasswordValidator
public Validator<char[]> getPasswordValidator()
- Returns:
- The validator for the password, or
null
if no validator is installed.
-
setPasswordValidator
public void setPasswordValidator(Validator<char[]> newValidator)
Sets the password validator.- Parameters:
newValidator
- The validator for the password, ornull
if no validator should be used.
-
update
protected void update()
Description copied from class:AbstractComponent
Updates the condition of the component based upon the state. This method is a convenience method for complex components that would like to perform wholesale updates any prototypes, enabled/disabled status, proxied actions, etc. This version does nothing.- Overrides:
update
in classAbstractComponent
-
isPasswordMatch
protected boolean isPasswordMatch()
- Returns:
true
if both entered passwords are identical.
-
determineValid
protected boolean determineValid()
Checks the state of the component for validity. This version returnstrue
.This version calls
AbstractCompositeComponent.determineChildrenValid()
.This version ensures the entered passwords match if password verification is enabled.
- Overrides:
determineValid
in classAbstractCompositeComponent
- Returns:
true
if the component and all children passes all validity tests, elsefalse
.
-
validate
public boolean validate()
Validates the user input of this component and all child components. The component will be updated with error information.This version clears all notifications. This version calls
AbstractComponent.updateValid()
.This version first calls
AbstractCompositeComponent.validateChildren()
so that all children will be validated before checks are performed on this component.This version adds errors for non-matching passwords if password verification is enabled.
- Specified by:
validate
in interfaceComponent
- Overrides:
validate
in classAbstractCompositeComponent
- Returns:
- The current state of
Component.isValid()
as a convenience.
-
clearValues
public void clearValues()
Clears the username and password values.
-
-