Class AbstractTextControl<V>
- Type Parameters:
V
- The type of value the input text is to represent.
- All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable
,com.globalmentor.beans.PropertyConstrainable
,com.globalmentor.model.MutableValued<V>
,com.globalmentor.model.Valued<V>
,Component
,Control
,EditComponent
,InputFocusableComponent
,ValueControl<V>
,ValuedComponent<V>
,EditListenable
,Displayable
,Enableable
,InfoModel
,LabelModel
,Model
,PresentationModel
,ValueModel<V>
,DepictedObject
- Direct Known Subclasses:
TextControl
char[]
java.lang.Boolean
java.lang.Float
java.lang.Integer
java.lang.String
- 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>
Nested classes/interfaces inherited from interface io.guise.framework.component.Control
Control.Status
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
The auto commit pattern bound property.static final String
The column count bound property.static final String
The provisional text literal bound property.static final String
The text literal bound property.static final String
The value content type bound property.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.component.Control
STATUS_PROPERTY
Fields inherited from interface io.guise.framework.model.Displayable
DISPLAYED_PROPERTY
Fields inherited from interface io.guise.framework.component.EditComponent
EDITABLE_PROPERTY
Fields inherited from interface io.guise.framework.model.Enableable
ENABLED_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.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
Fields inherited from interface io.guise.framework.component.ValueControl
CONVERTER_PROPERTY
Fields inherited from interface io.guise.framework.model.ValueModel
VALIDATOR_PROPERTY, VALUE_PROPERTY
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractTextControl
(ValueModel<V> valueModel) Value model constructor with a default converter.AbstractTextControl
(ValueModel<V> valueModel, Converter<V, String> converter) Value model and converter constructor.AbstractTextControl
(Class<V> valueClass) Value class constructor with a default data model to represent a given type and a default converter. -
Method Summary
Modifier and TypeMethodDescriptionprotected Control.Status
Checks the user input status of the control.protected boolean
Checks the state of the component for validity.int
getText()
com.globalmentor.net.MediaType
void
reset()
Resets the control to its default value.void
setAutoCommitPattern
(Pattern newAutoCommitPattern) Sets the The regular expression pattern that will cause the text automatically to be committed immediately.void
setColumnCount
(int newColumnCount) Sets the estimated number of columns requested to be visible.void
setConverter
(Converter<V, String> newConverter) Sets the converter.void
setProvisionalText
(String newProvisionalText) Sets the provisional text literal value.void
Sets the text literal value displayed in the control.void
setTextValue
(String newText) Sets the text literal value displayed in the control, and then converts the text to an appropriate value and stores it.void
setValueContentType
(com.globalmentor.net.MediaType newValueContentType) Sets the content type of the value.protected void
Updates the component text with literal form of the given value.boolean
validate()
Validates the user input of this component and all child components.Methods inherited from class io.guise.framework.component.AbstractEditValueControl
addEditListener, fireEdited, fireEdited, isEditable, removeEditListener, setEditable
Methods inherited from class io.guise.framework.component.AbstractValueControl
clearValue, getDefaultValue, getValidator, getValue, getValueClass, getValueModel, isValidValue, resetValue, setValidator, setValue, validateValue
Methods inherited from class io.guise.framework.component.AbstractControl
getEnableable, getStatus, isEnabled, setEnabled, setNotification, setStatus, updateStatus, updateValid
Methods inherited from class io.guise.framework.component.AbstractComponent
addCommandListener, addExportStrategy, addImportStrategy, addKeyListener, addMouseListener, addNotificationListener, addPreferenceProperty, applyTheme, applyTheme, depict, dispatchInputEvent, 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, loadPreferences, notify, processEvent, removeCommandListener, removeExportStrategy, removeImportStrategy, removeKeyListener, removeMouseListener, removeNotificationListener, removePreferenceProperty, resetTheme, savePreferences, setConstraints, setDepicted, setDescription, setDescriptionContentType, setDragEnabled, setDropEnabled, setFlyoverEnabled, setFlyoverStrategy, setGlyphURI, setInfo, setInfoContentType, setInputStrategy, setLabel, setLabelContentType, setName, setOrientation, setParent, setThemeApplied, setValid, toString, update, updateTheme
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.platform.DepictedObject
depict, getDepictID, getSession, processEvent
Methods inherited from interface io.guise.framework.model.Enableable
isEnabled, setEnabled
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.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
Methods inherited from interface com.globalmentor.beans.PropertyBindable
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, hasPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
Methods inherited from interface com.globalmentor.beans.PropertyConstrainable
addVetoableChangeListener, addVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, hasVetoableChangeListeners, removeVetoableChangeListener, removeVetoableChangeListener
-
Field Details
-
AUTO_COMMIT_PATTERN_PROPERTY
The auto commit pattern bound property. -
COLUMN_COUNT_PROPERTY
The column count bound property. -
PROVISIONAL_TEXT_PROPERTY
The provisional text literal bound property. -
TEXT_PROPERTY
The text literal bound property. -
VALUE_CONTENT_TYPE_PROPERTY
The value content type bound property.
-
-
Constructor Details
-
AbstractTextControl
Value class constructor with a default data model to represent a given type and a default converter.- Parameters:
valueClass
- The class indicating the type of value held in the model.- Throws:
NullPointerException
- if the given value class isnull
.
-
AbstractTextControl
Value model constructor with a default converter.- Parameters:
valueModel
- The component data model.- Throws:
NullPointerException
- if the given value model isnull
.
-
AbstractTextControl
Value model and converter constructor.- Parameters:
valueModel
- The component value model.converter
- The converter for this component.- Throws:
NullPointerException
- if the given value model and/or converter isnull
.
-
-
Method Details
-
getAutoCommitPattern
- Returns:
- The regular expression pattern that will cause the text automatically to be committed immediately, or
null
if text should not be committed during entry.
-
setAutoCommitPattern
Sets the The regular expression pattern that will cause the text automatically to be committed immediately. This is a bound property.- Parameters:
newAutoCommitPattern
- The regular expression pattern that will cause the text automatically to be committed immediately, ornull
if text should not be committed during entry.- See Also:
-
getColumnCount
public int getColumnCount()- Returns:
- The estimated number of columns requested to be visible, or -1 if no column count is specified.
-
setColumnCount
public void setColumnCount(int newColumnCount) Sets the estimated number of columns requested to be visible. This is a bound property of typeInteger
.- Parameters:
newColumnCount
- The new requested number of visible columns, or -1 if no column count is specified.- See Also:
-
getConverter
- Returns:
- The converter for this component.
-
setConverter
Sets the converter. This is a bound property- Parameters:
newConverter
- The converter for this component.- Throws:
NullPointerException
- if the given converter isnull
.- See Also:
-
getProvisionalText
- Returns:
- The provisional text literal value, or
null
if there is no provisional literal value.
-
setProvisionalText
Sets the provisional text literal value. This method updates the valid status before firing a change event. This is a bound property.- Parameters:
newProvisionalText
- The provisional text literal value.- See Also:
-
getText
- Returns:
- The text literal value displayed in the control, or
null
if there is no literal value.
-
setText
Sets the text literal value displayed in the control. This method updates the provisional text to match and updates the valid status if needed. This is a bound property.- Parameters:
newText
- The text literal value displayed in the control.- See Also:
-
setTextValue
Sets the text literal value displayed in the control, and then converts the text to an appropriate value and stores it. This is a convenience method.- Parameters:
newText
- The new text literal value to display in the control and then convert and store as a value.- Throws:
ConversionException
- if the literal value cannot be converted.PropertyVetoException
- if the provided value is not valid or the change has otherwise been vetoed.- See Also:
-
getValueContentType
public com.globalmentor.net.MediaType getValueContentType()- Returns:
- The content type of the value.
-
setValueContentType
public void setValueContentType(com.globalmentor.net.MediaType newValueContentType) Sets the content type of the value. This is a bound property.- Parameters:
newValueContentType
- The new value content type.- Throws:
NullPointerException
- if the given content type isnull
.IllegalArgumentException
- if the given content type is not a text content type.- See Also:
-
updateText
protected void updateText()Updates the component text with literal form of the given value. -
determineValid
protected boolean determineValid()Checks the state of the component for validity. This version returnstrue
.This version performs no additional checks if the control is disabled.
This version performs no additional checks if the control is disabled.
- Overrides:
determineValid
in classAbstractValueControl<V>
- Returns:
true
if the component and all children passes all validity tests, elsefalse
.
-
determineStatus
Checks the user input status of the control. If the component has a notification ofNotification.Severity.WARN
, the status is determined to beControl.Status.WARNING
. If the component has a notification ofNotification.Severity.ERROR
, the status is determined to beControl.Status.ERROR
. Otherwise, this version returnsnull
. If the control is disablednull
is returned.This version checks to see if the provisional literal text can be converted to a valid value. If the provisional literal text cannot be converted, the status is determined to be
Control.Status.ERROR
. If the provisional literal text can be converted but the converted value is invalid, the status is determined to beControl.Status.WARNING
unless the provisional text is the same as the literal text, in which case the status is determined to beControl.Status.ERROR
. The default value, even if invalid, is considered valid. If the control is disabled no status is given.- Overrides:
determineStatus
in classAbstractControl
- Returns:
- The current user input status of the control.
-
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 validates the associated value model. This version performs no additional checks if the control is disabled.
This version performs no additional checks if the control is disabled.
- Specified by:
validate
in interfaceComponent
- Overrides:
validate
in classAbstractValueControl<V>
- Returns:
- The current state of
Component.isValid()
as a convenience.
-
reset
public void reset()Resets the control to its default value.This version clears any notification.
This version resets the control value.
This version updates the text to match the new value.
- Specified by:
reset
in interfaceControl
- Overrides:
reset
in classAbstractValueControl<V>
- See Also:
-