|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.kuali.rice.krad.uif.component.ConfigurableBase org.kuali.rice.krad.uif.component.ComponentBase org.kuali.rice.krad.uif.field.FieldBase org.kuali.rice.krad.uif.field.DataField
public class DataField
Field that renders data from the application, such as the value of a data object property
Field Summary | |
---|---|
protected String |
additionalDisplayPropertyName
|
protected String |
alternateDisplayPropertyName
|
Fields inherited from interface org.kuali.rice.krad.uif.component.Ordered |
---|
INITIAL_ORDER_VALUE |
Fields inherited from interface org.springframework.core.Ordered |
---|
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE |
Constructor Summary | |
---|---|
DataField()
|
Method Summary | |
---|---|
void |
copyFromAttributeDefinition(View view,
AttributeDefinition attributeDefinition)
Defaults the properties of the DataField to the
corresponding properties of its AttributeDefinition
retrieved from the dictionary (if such an entry exists). |
String |
getAdditionalDisplayPropertyName()
Returns the additional display attribute name to be displayed when the field is readonly |
String |
getAdditionalDisplayValue()
Returns the additional display value. |
String |
getAlternateDisplayPropertyName()
Returns the alternate display attribute name to be displayed when the field is readonly. |
String |
getAlternateDisplayValue()
Returns the alternate display value |
BindingInfo |
getBindingInfo()
Returns the BindingInfo instance that is configured for the
component |
DataFieldSecurity |
getComponentSecurity()
Data Field Security object that indicates what authorization (permissions) exist for the field |
protected Class<? extends ComponentSecurity> |
getComponentSecurityClass()
Returns the security class that is associated with the component (used for initialization and validation) |
List<Component> |
getComponentsForLifecycle()
List of components that are contained within the component and should be sent through the lifecycle |
String |
getDefaultValue()
Default value for the model property the field points to |
Class<? extends ValueFinder> |
getDefaultValueFinderClass()
Gives Class that should be invoked to produce the default value for the field |
String |
getDictionaryAttributeName()
Name of the attribute within the data dictionary the attribute field is associated with |
String |
getDictionaryObjectEntry()
Object entry name in the data dictionary the associated attribute is apart of |
Inquiry |
getFieldInquiry()
Inquiry widget for the field |
String |
getHelpDescription()
Full help information text for the field |
String |
getHelpSummary()
Summary help text for the field |
List<String> |
getHiddenPropertyNames()
Allows specifying hidden property names without having to specify as a field in the group config (that might impact layout) |
List<String> |
getInformationalDisplayPropertyNames()
List of property names whose values should be displayed read-only under this field |
MaskFormatter |
getMaskFormatter()
MaskFormatter instance that will be used to mask the field value when isApplyValueMask() is true |
PropertyEditor |
getPropertyEditor()
Performs formatting of the field value for display and then converting the value back to its expected type from a string |
String |
getPropertyName()
Name of the property (relative to the parent object) the component binds to |
boolean |
hasSecureValue()
Indicates whether the value for the field is secure |
boolean |
isApplyValueMask()
Indicates whether the value for the field should be masked (or partially masked) on display |
boolean |
isEscapeHtmlInPropertyValue()
Returns true if HTML escape allowed for this field |
boolean |
isInputAllowed()
Indicates whether the data field instance allows input, subclasses should override and set to true if input is allowed |
boolean |
isReadOnlyHidden()
Indicates the field should be read-only but also a hidden should be generated for the field |
void |
performApplyModel(View view,
Object model,
Component parent)
The following updates are done here: If readOnlyHidden set to true, set field to readonly and add to hidden property names |
void |
performFinalize(View view,
Object model,
Component parent)
The following actions are performed: Set the ids for the various attribute components Sets up the client side validation for constraints on this field. |
void |
performInitialization(View view,
Object model)
The following initialization is performed: Set defaults for binding Default the model path if not set |
void |
setAdditionalDisplayPropertyName(String additionalDisplayPropertyName)
Additional display attribute name, which will be displayed next to the actual field value when the field is readonly with hypen inbetween like PropertyValue - AdditionalPropertyValue |
void |
setAdditionalDisplayValue(String value)
Setter for the additional display value |
protected void |
setAlternateAndAdditionalDisplayValue(View view,
Object model)
Sets alternate and additional property value for this field. |
void |
setAlternateDisplayPropertyName(String alternateDisplayPropertyName)
Sets the alternate display attribute name to be displayed when the field is readonly. |
void |
setAlternateDisplayValue(String value)
Setter for the alternative display value |
void |
setApplyValueMask(boolean applyValueMask)
Setter for the apply value mask flag |
void |
setBindingInfo(BindingInfo bindingInfo)
Setter for the field's binding info |
void |
setComponentSecurity(ComponentSecurity componentSecurity)
Override to assert a DataFieldSecurity instance is set |
void |
setDefaultValue(String defaultValue)
Setter for the fields default value |
void |
setDefaultValueFinderClass(Class<? extends ValueFinder> defaultValueFinderClass)
Setter for the default value finder class |
void |
setDictionaryAttributeName(String dictionaryAttributeName)
Setter for the dictionary attribute name |
void |
setDictionaryObjectEntry(String dictionaryObjectEntry)
Setter for the dictionary object entry |
void |
setEscapeHtmlInPropertyValue(boolean escapeHtmlInPropertyValue)
Sets HTML escaping for this property value. |
void |
setFieldInquiry(Inquiry fieldInquiry)
Setter for the inquiry widget |
void |
setHelpDescription(String helpDescription)
Setter for the help description text |
void |
setHelpSummary(String helpSummary)
Setter for the summary help text |
void |
setHiddenPropertyNames(List<String> hiddenPropertyNames)
Setter for the hidden property names |
void |
setInformationalDisplayPropertyNames(List<String> informationalDisplayPropertyNames)
Setter for the list of informational property names |
void |
setMaskFormatter(MaskFormatter maskFormatter)
Setter for the MaskFormatter instance to apply when the value is masked |
void |
setPropertyEditor(PropertyEditor propertyEditor)
Setter for the custom property editor to use for the field |
void |
setPropertyEditorClass(Class<? extends PropertyEditor> propertyEditorClass)
Convenience setter for configuring a property editor by class |
void |
setPropertyName(String propertyName)
Setter for the component's property name |
void |
setReadOnlyHidden(boolean readOnlyHidden)
Setter for the read-only hidden indicator |
Methods inherited from class org.kuali.rice.krad.uif.field.FieldBase |
---|
getComponentTypeName, getLabel, getLabelField, getLabelPlacement, getShortLabel, isLabelFieldRendered, setLabel, setLabelField, setLabelFieldRendered, setLabelPlacement, setShortLabel, setShowLabel |
Methods inherited from class org.kuali.rice.krad.uif.component.ConfigurableBase |
---|
getPropertyExpression, getPropertyExpressions, setPropertyExpressions |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.kuali.rice.krad.uif.component.Configurable |
---|
getPropertyExpression, getPropertyExpressions, setPropertyExpressions |
Field Detail |
---|
protected String alternateDisplayPropertyName
protected String additionalDisplayPropertyName
Constructor Detail |
---|
public DataField()
Method Detail |
---|
public void performInitialization(View view, Object model)
performInitialization
in interface Component
performInitialization
in class FieldBase
view
- - view instance in which the component belongsmodel
- - object instance containing the view dataComponentBase.performInitialization(org.kuali.rice.krad.uif.view.View,
java.lang.Object)
public void performApplyModel(View view, Object model, Component parent)
performApplyModel
in interface Component
performApplyModel
in class ComponentBase
view
- - view instance to which the component belongsmodel
- - Top level object containing the data (could be the form or a
top level business object, dto)Component.performApplyModel(org.kuali.rice.krad.uif.view.View, java.lang.Object, org.kuali.rice.krad.uif.component.Component)
public void performFinalize(View view, Object model, Component parent)
performFinalize
in interface Component
performFinalize
in class FieldBase
view
- - view instance that should be finalized for renderingmodel
- - top level object containing the dataparent
- - parent componentComponentBase.performFinalize(org.kuali.rice.krad.uif.view.View,
java.lang.Object, org.kuali.rice.krad.uif.component.Component)
protected void setAlternateAndAdditionalDisplayValue(View view, Object model)
If AttributeSecurity
present in this field, make sure the current user has permission to view the
field value. If user doesn't have permission to view the value, mask the value as configured and set it
as alternate value for display. If security doesn't exists for this field but
alternateDisplayPropertyName
present, get its value and format it based on that
fields formatting and set for display.
For additional display value, if AttributeSecurity
not present, sets the value if
additionalDisplayPropertyName
present. If not present, check whether this field is a
KualiCode
and get the relationship configured in the datadictionary file and set the name
additional display value which will be displayed along with the code. If additional display property not
present, check whether this field is has MultiValueControlBase
. If yes, get the Label
for the value and set it as additional display value.
view
- - the current view instancemodel
- - model instancepublic void copyFromAttributeDefinition(View view, AttributeDefinition attributeDefinition)
DataField
to the
corresponding properties of its AttributeDefinition
retrieved from the dictionary (if such an entry exists). If the field
already contains a value for a property, the definitions value is not
used.
view
- - view instance the field belongs toattributeDefinition
- - AttributeDefinition instance the property values should be
copied frompublic List<Component> getComponentsForLifecycle()
Component
Used by ViewHelperService
for the various lifecycle
callbacks
getComponentsForLifecycle
in interface Component
getComponentsForLifecycle
in class FieldBase
ComponentBase.getComponentsForLifecycle()
public boolean isInputAllowed()
public String getPropertyName()
DataBinding
getPropertyName
in interface DataBinding
DataBinding.getPropertyName()
public void setPropertyName(String propertyName)
propertyName
- public PropertyEditor getPropertyEditor()
Note property editors exist and are already registered for the basic Java types and the common Kuali types such as [@link KualiDecimal}. Registration with this property is only needed for custom property editors
public void setPropertyEditor(PropertyEditor propertyEditor)
propertyEditor
- public void setPropertyEditorClass(Class<? extends PropertyEditor> propertyEditorClass)
propertyEditorClass
- public BindingInfo getBindingInfo()
DataBinding
BindingInfo
instance that is configured for the
component
getBindingInfo
in interface DataBinding
DataBinding.getBindingInfo()
public void setBindingInfo(BindingInfo bindingInfo)
setBindingInfo
in interface DataBinding
bindingInfo
- public String getDictionaryAttributeName()
During the initialize phase for the View
, properties for
attribute fields are defaulted from a corresponding
AttributeDefinition
in the data dictionary. Based on the
propertyName and parent object class the framework attempts will
determine the attribute definition that is associated with the field and
set this property. However this property can also be set in the fields
configuration to use another dictionary attribute.
The attribute name is used along with the dictionary object entry to find
the AttributeDefinition
public void setDictionaryAttributeName(String dictionaryAttributeName)
dictionaryAttributeName
- public String getDictionaryObjectEntry()
During the initialize phase for the View
, properties for
attribute fields are defaulted from a corresponding
AttributeDefinition
in the data dictionary. Based on the
parent object class the framework will determine the object entry for the
associated attribute. However the object entry can be set in the field's
configuration to use another object entry for the attribute
The attribute name is used along with the dictionary object entry to find
the AttributeDefinition
public void setDictionaryObjectEntry(String dictionaryObjectEntry)
dictionaryObjectEntry
- public String getDefaultValue()
When a new View
instance is requested, the corresponding
model will be newly created. During this initialization process the value
for the model property will be set to the given default value (if set)
public void setDefaultValue(String defaultValue)
defaultValue
- public Class<? extends ValueFinder> getDefaultValueFinderClass()
public void setDefaultValueFinderClass(Class<? extends ValueFinder> defaultValueFinderClass)
defaultValueFinderClass
- public String getHelpSummary()
public void setHelpSummary(String helpSummary)
helpSummary
- public String getHelpDescription()
public void setHelpDescription(String helpDescription)
helpDescription
- public DataFieldSecurity getComponentSecurity()
getComponentSecurity
in interface Component
getComponentSecurity
in class FieldBase
Component.getComponentSecurity()
public void setComponentSecurity(ComponentSecurity componentSecurity)
DataFieldSecurity
instance is set
setComponentSecurity
in interface Component
setComponentSecurity
in class FieldBase
componentSecurity
- - instance of DataFieldSecurityComponent.setComponentSecurity(org.kuali.rice.krad.uif.component.ComponentSecurity)
protected Class<? extends ComponentSecurity> getComponentSecurityClass()
ComponentBase
getComponentSecurityClass
in class FieldBase
public boolean isReadOnlyHidden()
Useful for when a value is just displayed but is needed by script
public void setReadOnlyHidden(boolean readOnlyHidden)
readOnlyHidden
- public Inquiry getFieldInquiry()
The inquiry widget will render a link for the field value when read-only
that points to the associated inquiry view for the field. The inquiry can
be configured to point to a certain InquiryView
, or the
framework will attempt to associate the field with a inquiry based on its
metadata (in particular its relationships in the model)
public void setFieldInquiry(Inquiry fieldInquiry)
fieldInquiry
- public void setAdditionalDisplayPropertyName(String additionalDisplayPropertyName)
additionalDisplayPropertyName
- - Name of the additional display propertypublic String getAdditionalDisplayPropertyName()
public void setAlternateDisplayPropertyName(String alternateDisplayPropertyName)
alternateDisplayPropertyName
- - alternate display property namepublic String getAlternateDisplayPropertyName()
public String getAlternateDisplayValue()
public void setAlternateDisplayValue(String value)
value
- public String getAdditionalDisplayValue()
public void setAdditionalDisplayValue(String value)
value
- public boolean isApplyValueMask()
If set to true, the field value will be masked by applying the configured getMaskFormatter()
If a KIM permission exists that should be checked to determine whether the value should be masked or not,
this value should not be set but instead the mask or partialMask property on getComponentSecurity()
should be set to true. This indicates there is a mask permission that should be consulted. If the user
does not have the permission, this flag will be set to true by the framework and the value masked using
the mask formatter configured on the security object
public void setApplyValueMask(boolean applyValueMask)
applyValueMask
- public MaskFormatter getMaskFormatter()
isApplyValueMask()
is true
Note in cases where the mask is applied due to security (KIM permissions), the mask or partial mask formatter
configured on getComponentSecurity()
will be used instead of this mask formatter
public void setMaskFormatter(MaskFormatter maskFormatter)
maskFormatter
- public List<String> getHiddenPropertyNames()
public void setHiddenPropertyNames(List<String> hiddenPropertyNames)
hiddenPropertyNames
- public List<String> getInformationalDisplayPropertyNames()
In the attribute field template for each information property name given its values is outputted read-only. Informational property values can also be updated dynamically with the use of field attribute query
Simple property names can be given if the property has the same binding parent as this field, in which case the binding path will be adjusted by the framework. If the property names starts with org.kuali.rice.krad.uif.UifConstants#NO_BIND_ADJUST_PREFIX, no binding prefix will be added.
public void setInformationalDisplayPropertyNames(List<String> informationalDisplayPropertyNames)
informationalDisplayPropertyNames
- public void setEscapeHtmlInPropertyValue(boolean escapeHtmlInPropertyValue)
public boolean isEscapeHtmlInPropertyValue()
public boolean hasSecureValue()
A value will be secured if masking has been applied (by configuration or a failed KIM permission) or the field has been marked as hidden due to an authorization check
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |