Class UIContainer
- java.lang.Object
- com.iizix.prop.GProp<GProp<?>[]>
- com.iizix.prop.PropCnr
- com.iizix.prop.ui.UIComp
- com.iizix.prop.ui.UIContainer
- All Implemented Interfaces:
EventListener
,IFocusComp
,IMessageBox
,IComponent
,ICustomDataProvider
,IGProp<GProp<?>[]>
,IPropCnr
,IUIComp
,IUIContainer
,IUIContextMenuOwner
,IUIFocusComp
,IVSComponentListener
,IVSComponentState
,IVSFieldListener
,IVSGenericComponentListener
,java.lang.Cloneable
- Direct Known Subclasses:
AbstractContentUIContainer
,EUIContainer
,MList
,MUIHeading
,MUITabBar
,UIAccordion
,UICalendarList
,UIMap
,UIMenu
,UIMenuBar
,UIPanelBase
,UIPanelPartCnr
,UISwapContainer
,UITabContainer
,UITable
,UITitlePane
public class UIContainer extends UIComp implements IUIContainer, IUIFocusComp, IUIContextMenuOwner, IVSGenericComponentListener
The UIContainer class is a standard simple container for components.- Author:
- Christopher Mindus
Nested Class Summary
Nested classes/interfaces inherited from interface com.iizix.gyro.IMessageBox
IMessageBox.Icon
Nested classes/interfaces inherited from interface com.iizix.prop.vs.IVSComponentState
IVSComponentState.State
Field Summary
Fields Modifier and Type Field Description static java.lang.Class<?>[]
UICOMP_CLASS
Accepted children components array: UIComp class.static java.lang.String
VS_STATE_FOCUS_PROP_NAME
The property name for VS connection for state and focus.Fields inherited from class com.iizix.prop.ui.UIComp
EMPTY, REMOTE_FOCUS_EVENT, styles, vsField
Fields inherited from class com.iizix.prop.PropCnr
EMPTY_CLASSES, EMPTY_CNRS, EXTENDS_FRAMEWORK_ERROR_ID
Fields inherited from class com.iizix.prop.GProp
GPDEBUG, PROP_ATTR_STRING_EDITOR_PROP, PROP_ATTR_STRING_ERRORED_NAME, PROP_ATTR_STRING_EXTENDS, PROP_ATTR_STRING_EXTENDS_FINAL, PROP_ATTR_STRING_EXTENDS_PRIVATE, PROP_ATTR_STRING_NULLABLE, PROP_ATTR_STRING_PRIVATE, PROP_ATTR_STRING_PRIVATE_CHANGE_EVENT, PROP_ATTR_STRING_READ_ONLY, PROP_USER_1, PROP_USER_2
Fields inherited from interface com.iizix.prop.IGProp
EQC_ERROR_IGNORE_ALL, EQC_ERROR_IGNORE_REFERENCES, EQC_IGNORE_ARRAY, EQC_IGNORE_VOLATILE_OR_EDITOR, EQC_PRIVATE, EQC_SAVE_FILE, EXT_CONTAINER_EXTENDS, EXT_CONTAINER_EXTENDS_VALID, EXT_EXTENDED, EXT_FINAL, EXT_OVERRIDES, EXT_OVERRIDES_FINAL_ERR, EXT_PRIVATE
Fields inherited from interface com.iizix.gyro.IMessageBox
ICON_ERROR, ICON_INFORMATION, ICON_MAP, ICON_NONE, ICON_QUESTION, ICON_WARNING
Fields inherited from interface com.iizix.prop.ui.IUIComp
ERROR, INFORMATION, NONE, REMOTE_FOCUS_EVENT, WARNING
Constructor Summary
Constructors Constructor Description UIContainer()
Creates an UI container with the specified name with a null value.UIContainer(Atom propertyAtom)
Creates an UI container with the specified name with a null value.UIContainer(Atom propertyAtom, GProp<?>[] properties)
Creates an UI container with the specified name and properties.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addPredefinedProps()
Adds the predefined properties for this container.protected void
addPredefinedPropsImpl()
Adds the predefined containers for identifications, fields and actions.java.lang.String
canAcceptUIContainerFocus()
Returns if this container can accept focus itself or for one of its children components.UIContainer
clone()
Creates a clone out of this property.UIComps
createCompsCnr()
Creates the components for the Editor.Size
getApproximateSize()
Returns the size of the component in pixels.int
getComponentCount()
Gets the UI component count.UIComp[]
getComponents()
Gets the UI components of the container.UIComps
getCompsCnr()
Gets the container associated with this layout manager and the UI container.int
getDeviceType()
Gets the device type: -1=mobile, 0=both, 1=desktop.VSComponent
getFirstContainerVSStateFocus()
Gets the first VS component encountered for state and focus of this container or in the parent tree up to the panel level.<COMP extends UIComp>
COMPgetFirstUIComponent(java.lang.String name, java.lang.Class<COMP> uiClass)
Gets the first UI component of the specified name and UI class.<COMP extends UIComp>
COMPgetFirstUIComponentNull(java.lang.String name, java.lang.Class<COMP> uiClass)
Gets the first UI component of the specified name and UI class.void
getPredefinedProps()
Adds the predefined containers for identifications, fields and actions.UIComp[]
getRadioSelectionComponents(java.lang.String groupName)
Gets the components being part of the selection group specified.UIComp
getSelectedRadioComponent(java.lang.String groupName)
Gets the currently selected radio component in the group.<COMP extends UIComp>
COMPgetUIComponent(@UIRef java.lang.String uiPath, java.lang.Class<COMP> uiClass)
Gets a UI component with relative reference from this container.<COMP extends UIComp>
COMPgetUIComponentNull(@UIRef java.lang.String uiPath, java.lang.Class<COMP> uiClass)
Gets a UI component with relative reference from this container.VSComponent
getVSStateFocus()
Gets the VS component for state and focus of this container.boolean
hasImplicitAlignFillX()
Returns if the container has implicit component horizontal fill.boolean
hasImplicitAlignFillY()
Returns if the container has implicit component vertical fill.boolean
isEmptyContainerAllowed()
Returns whether the container should have children in a normal conditions, i.e.boolean
isMobileContextMenuSupported()
Returns if the component can show the context menu in mobile mode.boolean
mustHaveHeight()
Does this component requires a height.boolean
mustHaveWidth()
Does this component requires a width?void
onBroken(VSComponentReference reference, VSComponent component)
Called when the property reference has been broken, i.e.void
onComponentSelectedInParent(boolean on)
Called by the parent container to inform that this component has been selected in its container.void
onResolved(VSComponentReference reference, VSComponent component)
Called when the property reference has been resolved.protected void
onSelectionChanged(boolean on)
Called when the container is selected as the current container in an index-based single-selection container such as accordion, swap and tab containers.protected void
onSelectionChanged(GEvent event)
Method called when the selection of the component changed due to a property change (value changed, property added or removed).void
onStateChanged(VSComponent component, IVSComponentState.State state, boolean on)
Called when the VS component changes state.protected void
onVSComponentSelectionChanged(boolean on)
Called when the VS component has its selected state changed.void
resetComponentID()
Resets the component ID, typically when copied or saved in order to add make copies of the (some) component data.boolean
setRadioSelectionComponent(IUIRadioComponent radioComponent, boolean isSelected)
Sets the selection to the specified radio component.java.lang.String
setUIContainerFocus(UIComp requestor, boolean doAnimate)
Sets the focus to the UI container and all its parents.protected void
updateUICompsReference()
Updates the reference to the UIComps instance named Atom.COMPONENTS, used when cloning and for the panel part container (or any time the UIComps instance has been changed).boolean
verify(PropVerification verification)
Verifies this property container.protected boolean
verifyComponentScope(UIContainer scopeContainer, java.lang.String what, PropVerification verification, VSComponent vsOuter)
Verifies that this component has it's VS references inside the outer VS reference.Methods inherited from class com.iizix.prop.ui.UIComp
add, addMappings, assignFontInfoResolver, canAlignX, canAlignY, canFillX, canFillY, canRequestFocus, canRequestFocus, clearErrorMessage, couldRequestFocusIfVirtualized, createStyles, createTitleProp, disconnectVSField, enterVSProcessing, exitVSProcessing, fireSelection, fireSelection, forbiddenGetCustomDataMap, getBadge, getBestVSFieldValueType, getComponentID, getComponentMappings, getErrorMessage, getErrorMessage, getErrorMessageEx, getErrorMessageString, getErrorMessageString, getErrorMessageStringEx, getFixHeight, getFixWidth, getFontInfo, getForcedAlignX, getForcedAlignY, getKStringText, getLayout, getLayoutMgr, getLayoutMgr, getMappedVSComponent, getMessage, getMessageText, getPixelHeight, getPixelWidth, getSize, getStyles, getStyles, getText, getTitle, getTitleKS, getTitlePKS, getTooltip, getTooltipText, getTrigger, getUIPanel, getUIParent, getValue, getValue, getVirtualSpace, getVSField, hasExplicitHeight, hasExplicitWidth, hasFocus, hasImplicitHeight, hasImplicitWidth, hasSelectionChanged, isEnabled, isMobile, isReadOnly, isRTL, isVisible, isVSFieldDisconnected, mustHaveExplicitHeight, mustHaveExplicitWidth, onBroken, onEventSelf, onFocusGained, onNotifySelectionChanged, onParentStateChanged, onPrepare, onPrepare, onPropDispose, onRemoteEvent, onResolved, onStateChanged, onValueChanged, onVirtualizationCompleted, processVSComponentSelection, reconnectVSField, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusEx, requestFocusEx, requestFocusEx, requestFocusEx, setBadge, setBadge, setComponentToVSField, setEnabled, setEnabled, setErrorMessage, setErrorMessage, setErrorMessage, setErrorMessage, setHTMLText, setLayoutMgr, setMessage, setMessage, setReadOnly, setReadOnly, setText, setText, setTitle, setTitle, setTitle, setTooltip, setTooltip, setVisible, setVisible, setVSFieldMessageToComponent, setVSFieldToComponent
Methods inherited from class com.iizix.prop.PropCnr
__transferChildProps, addProp, addProp, addProp2, addProp2, appendPropValue, completeVirtualize, containsProp, containsProp, convertLoadedProp, createCopyOfAtom, createUniqueAtom, createUniqueAtom, createUniqueAtom, createVSReference, doPropEqualsArrayValues, doVirtualizePropCnr, enablePropCommunication, enablePropHashMap, equalsTree, equalsTree, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getBool, getBool, getBool, getBool, getChildPropError, getChildPropError, getChildPropErrorSeverity, getChildPropErrorSeverity, getErrorsProp, getExtendsContainer, getExtendsError, getExtendsName, getExtendsOverride, getExtendsPossibleClasses, getFirstProp, getFirstProp, getFocusEngine, getInt, getInt, getInt, getInt, getLong, getLong, getLong, getLong, getNumber, getNumber, getNumber, getNumber, getPossibleChildren, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getPropBaseReference, getPropCnr, getPropCount, getPropCount, getPropIndex, getPropIndex, getPropIndexes, getProps, getProps, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue0, getReferences, getRetargetedVerifyContainer, getString, getString, getString, getString, getValueClasses, getVSReference, hasSendData, initializeElement, initializeExtendsFramework, initializeProp, initializeValue, initPropCnr, insertProp, insertProp2, isChild, isExtendsOverriden, isExtendsPropertyValid, isExtendsRoot, isPropAddRemoveAllowed, isPropCommunicating, isPropExtended, isSibling, list, list, logPropNotFound, maybeAddProp, onInsertProp, onPropRemoved, onPropTreeInitialized, onReferenceEvent, paramString, prepare, removeAllProps, removeAllProps2, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, reorderProps, replaceProps, requestFocus, requestFocusEx, resolveReferences, resolveRuntimeReferences, setBool, setBool, setBool, setBool, setCreateRequiredProp, setExtendsName, setExtendsOverride, setInt, setInt, setInt, setLong, setLong, setLong, setLong, setNumber, setNumber, setNumber, setNumber, setProp, setProp, setProp, setProp2, setProp2, setPropValue, setPropValue, setPropValue, setPropValue, setPropValue, setPropValue, setString, setString, setString, setString, shouldCreateProps, shouldSerializeToXML, toElementString, toNativeValue0, usePropHashMap, usesPropIndex, validateChildPropInValue, validateClassInstances, validatePropType, validatePropValue, verifyInternalUseOnly, verifyTree, virtualize
Methods inherited from class com.iizix.prop.GProp
addPropError, addPropListener, convertPropError, dispose, equals, equals, equalsErrors, equalsObj, equalsPropValue, equalValues, extendsClone, finalize, fine, fine, finer, finer, finest, finest, fromElementString, getAliasName, getAppSessionGyro, getAppWorker, getAtomPath, getAttribute, getChildReferencePropName, getClientSessionGyro, getClientWorker, getConstraints, getEnvironment, getErroredPropItems, getErroredProps, getErrorsProp, getExtendsRootContainer, getFullPropName, getFullPropName, getFullPropNameDebug, getFullPropNameDebug, getListeners, getModuleFolder, getModuleFolder, getParent, getParent, getProjectName, getPropAtom, getPropError, getPropError, getPropErroredName, getPropErrorSeverity, getPropExtendsFlags, getPropFromPath, getPropFromPath, getPropFromReference, getPropFromReference, getPropIndex, getPropName, getPropPath, getPropPath, getPropReferenceTarget, getPropRootPropMgr, getPropTreeErrorSeverity, getPropValue, getPropValue, getPropValueObject, getReferencePropName, getRelativePropName, getRootFromName, getRootName, getRootParent, getRootParent, getTreeLock, hasChanged, hasPrivateChangeEventProp, hasPropError, hasPropTreeError, info, info, initializeGElement, initializeGProp, isDisposed, isPropChildOf, isPropClientCreated, isPropCreateRequired, isPropExtended, isPropExtendsFinal, isPropExtendsPrivate, isPropExtendsPrivateInRoot, isPropExtendsPrivateInRoot, isPropFile, isPropFolder, isPropForEditor, isPropNullable, isPropPrivate, isPropPrivateAtCreation, isPropReadOnly, isPropReferenceTreeValid, isPropRoot, isPropUSER, isPropValueTreeLockNeeded, isPropVirtualized, isPropVirtualizing, isPropVolatile, isPropVolatileOrEditorOnly, isProxied, list, list, list, mapAliasToReference, mapAliasToReference, mapReferenceToAlias, mapReferenceToAlias, mapReferenceToProjectRelative, modifyPropValue, moveProp, moveProp, moveProp, onEvent, onPropInvalidateCache, onPropParentChanged, onPropValueSet, onVirtualized, paramValue, post, post, removePropError, removePropListener, removePropUSER, renameProp, renameProp2, resetChangedTree, setChanged, setConstraints, setConstraints, setParent, setPrivateChangeEventProp, setPrivateCreateRequiredProp, setPropError, setPropErroredName, setPropExtended, setPropExtendsFinal, setPropExtendsPrivate, setPropForEditor, setPropNullable, setPropPrivate, setPropReadOnly, setPropUSER, setPropValue, setPropValue, setPropValue, setPropValueIncognito, setPropVolatile, severe, severe, severe, shouldSerializeToXML, throwIfReadOnly, toNativeValue, toString, toString, triggerRemoteEvent, triggerRemoteEvent, validateProp, verifyHasPropertyItem, warning, warning, warning
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.iizix.IComponent
clearErrorMessage, getBadge, getKStringText, getLayoutMgr, getMessage, getMessageText, getStyles, getText, getTooltip, getTooltipText, getUIPanel, getUIParent, isEnabled, isReadOnly, isVisible, messageBox, requestFocus, requestFocus, requestFocusEx, requestFocusEx, setBadge, setBadge, setEnabled, setErrorMessage, setErrorMessage, setHTMLText, setLayoutMgr, setMessage, setMessage, setReadOnly, setText, setText, setTooltip, setTooltip, setVisible
Methods inherited from interface com.iizix.prop.ICustomDataProvider
forbiddenGetCustomDataMap, getCustomData, putCustomData, putCustomDataIfAbsent
Methods inherited from interface com.iizix.gyro.IFocusComp
requestFocus, requestFocus, requestFocusEx, requestFocusEx
Methods inherited from interface com.iizix.prop.IGProp
addPropError, addPropListener, dispose, equals, fine, fine, finer, finer, finest, finest, fromElementString, getAppSessionGyro, getAtomPath, getClientSessionGyro, getConstraints, getEnvironment, getErroredPropItems, getErroredProps, getErrorsProp, getExtendsRootContainer, getFullPropName, getFullPropNameDebug, getModuleFolder, getModuleFolder, getParent, getParent, getPropAtom, getPropBaseReference, getPropError, getPropError, getPropErrorSeverity, getPropExtendsFlags, getPropFromPath, getPropFromReference, getPropIndex, getPropName, getPropPath, getPropPath, getPropRootPropMgr, getPropTreeErrorSeverity, getPropValue, getPropValue, getReferencePropName, getReferences, getRelativePropName, getRootParent, getTreeLock, getValueClasses, getVSReference, hasChanged, hasPrivateChangeEventProp, hasPropError, hasPropTreeError, info, info, initializeGElement, initializeGProp, isDisposed, isPropChildOf, isPropClientCreated, isPropCommunicating, isPropCreateRequired, isPropExtended, isPropExtendsFinal, isPropExtendsPrivate, isPropExtendsPrivateInRoot, isPropExtendsPrivateInRoot, isPropFile, isPropFolder, isPropNullable, isPropPrivate, isPropReadOnly, isPropReferenceTreeValid, isPropRoot, isPropVirtualized, list, list, list, list, list, mapAliasToReference, mapReferenceToAlias, mapReferenceToProjectRelative, moveProp, moveProp, moveProp, onEvent, onEventSelf, onPropTreeInitialized, onRemoteEvent, removePropError, removePropListener, renameProp, resolveRuntimeReferences, setChanged, setConstraints, setConstraints, setParent, setPrivateChangeEventProp, setPropError, setPropExtendsFinal, setPropExtendsPrivate, setPropNullable, setPropPrivate, setPropReadOnly, setPropValue, setPropValue, severe, severe, severe, toElementString, toNativeValue, triggerRemoteEvent, triggerRemoteEvent, validateProp, validatePropType, validatePropValue, verifyHasPropertyItem, warning, warning, warning
Methods inherited from interface com.iizix.gyro.IMessageBox
messageBox, messageBox
Methods inherited from interface com.iizix.prop.IPropCnr
addProp, addProp, addProp2, addProp2, canRequestFocus, canRequestFocus, canRequestFocus, containsProp, containsProp, couldRequestFocusIfVirtualized, couldRequestFocusIfVirtualized, couldRequestFocusIfVirtualized, createCopyOfAtom, createUniqueAtom, createUniqueAtom, enablePropCommunication, enablePropHashMap, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getBool, getBool, getBool, getBool, getChildPropError, getChildPropError, getChildPropErrorSeverity, getChildPropErrorSeverity, getErrorsProp, getExtendsError, getExtendsName, getExtendsPossibleClasses, getFirstProp, getFirstProp, getFocusEngine, getInt, getInt, getInt, getInt, getLong, getLong, getLong, getLong, getNumber, getNumber, getNumber, getNumber, getPossibleChildren, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getPropCnr, getPropCount, getPropIndex, getPropIndex, getPropIndexes, getProps, getProps, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getString, getString, getString, getString, hasFocus, initializeExtendsFramework, insertProp, insertProp2, isChild, isExtendsOverriden, isExtendsRoot, isPropAddRemoveAllowed, isPropExtended, isSibling, removeAllProps, removeAllProps2, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, reorderProps, requestFocus, requestFocusEx, setBool, setBool, setBool, setBool, setExtendsName, setExtendsOverride, setInt, setInt, setInt, setLong, setLong, setLong, setLong, setNumber, setNumber, setNumber, setNumber, setProp, setProp, setProp, setProp2, setProp2, setPropValue, setPropValue, setPropValue, setPropValue, setPropValue, setPropValue, setString, setString, setString, setString, usePropHashMap, usesPropIndex, validateClassInstances
Methods inherited from interface com.iizix.prop.ui.IUIComp
disconnectVSField, getComponentID, getComponentMappings, getErrorMessage, getErrorMessage, getFixHeight, getFixWidth, getLayout, getLayoutMgr, getPanelUIComponent, getPanelUIComponentNull, getUIRef, getValue, getValue, getVirtualSpace, getVSField, isMobile, isRTL, isVSFieldDisconnected, reconnectVSField, setComponentToVSField, setErrorMessage, setErrorMessage, setVSFieldMessageToComponent, setVSFieldToComponent
Methods inherited from interface com.iizix.prop.ui.IUIContextMenuOwner
getContainedContextMenu, getContextMenu, getReferencedContextMenu, isContextMenuSupported, onBroken, onResolved
Methods inherited from interface com.iizix.prop.ui.IUIFocusComp
onFocusGained, onFocusLost
Methods inherited from interface com.iizix.prop.vs.IVSComponentListener
onParentStateChanged
Methods inherited from interface com.iizix.prop.vs.IVSFieldListener
getBestVSFieldValueType, onBroken, onResolved, onStateChanged, onValueChanged
Field Detail
UICOMP_CLASS
public static final java.lang.Class<?>[] UICOMP_CLASS
Accepted children components array: UIComp class.
VS_STATE_FOCUS_PROP_NAME
public static final java.lang.String VS_STATE_FOCUS_PROP_NAME
The property name for VS connection for state and focus.- See Also:
- Constant Field Values
Constructor Detail
UIContainer
public UIContainer()
Creates an UI container with the specified name with a null value.
UIContainer
public UIContainer(Atom propertyAtom)
Creates an UI container with the specified name with a null value.- Parameters:
propertyAtom
- the property atom.
UIContainer
public UIContainer(Atom propertyAtom, GProp<?>[] properties) throws PropException
Creates an UI container with the specified name and properties.- Parameters:
propertyAtom
- the property atom.properties
- the property array value for the property.- Throws:
PropException
- as structural changes in containers on client is prohibited.
Method Detail
clone
public UIContainer clone()
Creates a clone out of this property. The cloning is overridden by the subclasses in order to handle cloning of its class variables appropriately.Cloning is used for "virtualization" of a property tree in the server. Client property classes will therefore throw
CloneNotSupportedException
.Once a tree has been cloned, the change-flag is reset, and the create-flag is set. All listeners are also removed! The new cloned property is an orphan, i.e. has no parent set. All children properties are also (deep) cloned.
Note that the cloning process is done WITHOUT thread synchronization for performance reasons, thus no modifications should be done to the tree!
addPredefinedProps
protected void addPredefinedProps() throws PropException
Adds the predefined properties for this container. This method is called once just after construction of the property container and sometimes population of it.This implementation creates the UIComps property named Atom.COMPONENTS for the UI components, and saves the reference to it for fast access.
- Overrides:
addPredefinedProps
in classPropCnr
- Throws:
PropException
- For property exceptions.
addPredefinedPropsImpl
protected void addPredefinedPropsImpl() throws PropException
Adds the predefined containers for identifications, fields and actions. This method is overridden fully by the Editor versions of the class.- Throws:
PropException
- For property exceptions.
getPredefinedProps
public void getPredefinedProps()
Adds the predefined containers for identifications, fields and actions. This method is overridden fully by the Editor versions of the class.- Overrides:
getPredefinedProps
in classUIComp
updateUICompsReference
protected void updateUICompsReference()
Updates the reference to the UIComps instance named Atom.COMPONENTS, used when cloning and for the panel part container (or any time the UIComps instance has been changed).
resetComponentID
public void resetComponentID()
Resets the component ID, typically when copied or saved in order to add make copies of the (some) component data. The operation is recursive.- Overrides:
resetComponentID
in classUIComp
hasImplicitAlignFillX
public boolean hasImplicitAlignFillX()
Returns if the container has implicit component horizontal fill.The default behavior is to forward the reply to
LayoutMgr.hasImplicitAlignFillX()
.- Overrides:
hasImplicitAlignFillX
in classUIComp
- Returns:
- true means component will always fill the space in X, false otherwise.
hasImplicitAlignFillY
public boolean hasImplicitAlignFillY()
Returns if the container has implicit component vertical fill.The default behavior is to forward the reply to
LayoutMgr.hasImplicitAlignFillY()
.- Overrides:
hasImplicitAlignFillY
in classUIComp
- Returns:
- true means component will always fill the space in Y, false otherwise.
getDeviceType
public int getDeviceType()
Gets the device type: -1=mobile, 0=both, 1=desktop.- Specified by:
getDeviceType
in interfaceIUIComp
isMobileContextMenuSupported
public boolean isMobileContextMenuSupported()
Returns if the component can show the context menu in mobile mode.- Specified by:
isMobileContextMenuSupported
in interfaceIUIContextMenuOwner
- Returns:
- Container component does not by default supports context menus for mobile.
createCompsCnr
public UIComps createCompsCnr()
Creates the components for the Editor.
getCompsCnr
public UIComps getCompsCnr()
Gets the container associated with this layout manager and the UI container.- Specified by:
getCompsCnr
in interfaceIUIContainer
- Returns:
- The UI components container.
getComponents
public UIComp[] getComponents()
Gets the UI components of the container.- Specified by:
getComponents
in interfaceIUIContainer
- Returns:
- The array of components, always non-null.
getComponentCount
public int getComponentCount()
Gets the UI component count.- Specified by:
getComponentCount
in interfaceIUIContainer
- Returns:
- The UI component count.
isEmptyContainerAllowed
public boolean isEmptyContainerAllowed()
Returns whether the container should have children in a normal conditions, i.e. a warning message should be displayed in the Designer when it is empty. This is intended to be used to avoid use of empty containers. Some containers, e.g. the mobile heading is allowed to be empty.- Returns:
- false (default) not to allow empty container, true otherwise.
getRadioSelectionComponents
public UIComp[] getRadioSelectionComponents(java.lang.String groupName)
Gets the components being part of the selection group specified. Each component returned implements the thisIRadioComponent
interface.- Specified by:
getRadioSelectionComponents
in interfaceIUIContainer
- Parameters:
groupName
- The group name, possibly null (for default).- Returns:
- An array of the selection components.
getSelectedRadioComponent
public UIComp getSelectedRadioComponent(java.lang.String groupName)
Gets the currently selected radio component in the group.- Specified by:
getSelectedRadioComponent
in interfaceIUIContainer
- Parameters:
groupName
- The group name, possibly null.- Returns:
- The selected radio component, null for none.
setRadioSelectionComponent
public boolean setRadioSelectionComponent(IUIRadioComponent radioComponent, boolean isSelected)
Sets the selection to the specified radio component.- Specified by:
setRadioSelectionComponent
in interfaceIUIContainer
- Parameters:
radioComponent
- The radio-interface-implementing (interfaceIUIRadioComponent
component.isSelected
- The selection state.- Returns:
- true if at least one change occurred, false for none.
canAcceptUIContainerFocus
public java.lang.String canAcceptUIContainerFocus()
Returns if this container can accept focus itself or for one of its children components. If this is a component and not a container, this request is redirected to the parent container.This method recurses up to the topmost UI container, and all containers must return null for this method to return null.
Typically, a container returns itself as instance if it is disabled or hidden.
- Specified by:
canAcceptUIContainerFocus
in interfaceIUIComp
- Overrides:
canAcceptUIContainerFocus
in classUIComp
- Returns:
- null if this container (or parent container if this is a component) and all containers up to the topmost level returns null, otherwise the container that did not accept focus.
setUIContainerFocus
public java.lang.String setUIContainerFocus(UIComp requestor, boolean doAnimate)
Sets the focus to the UI container and all its parents. This method is called when focus is to be set to a component, making it possible for containers such as accordion/swap/tab to change its main container into view.Subclasses must override this method to process it, but make sure to call
super.setUIContainerFocus(requestor)
first!- Specified by:
setUIContainerFocus
in interfaceIUIComp
- Overrides:
setUIContainerFocus
in classUIComp
- Parameters:
requestor
- The requestor is a child to this container.doAnimate
- Flag to enable animation when selection is changed for e.g. accordion, swap or tab containers.- Returns:
- null for success, otherwise an error message why it failed.
getVSStateFocus
public final VSComponent getVSStateFocus()
Gets the VS component for state and focus of this container.- Overrides:
getVSStateFocus
in classUIComp
- Returns:
- The component (generally a VS Group), null if none is set.
getFirstContainerVSStateFocus
public VSComponent getFirstContainerVSStateFocus()
Gets the first VS component encountered for state and focus of this container or in the parent tree up to the panel level.- Overrides:
getFirstContainerVSStateFocus
in classUIComp
- Returns:
- The component (generally a VS Group), null if none is set.
onResolved
public void onResolved(VSComponentReference reference, VSComponent component)
Called when the property reference has been resolved. UI components use this method to set its state according to the VS component.- Specified by:
onResolved
in interfaceIVSGenericComponentListener
- Parameters:
reference
- The VSComponentReference instance holding the component reference.component
- The VS component reference that is now resolved.
onBroken
public void onBroken(VSComponentReference reference, VSComponent component)
Called when the property reference has been broken, i.e. unresolved.- Specified by:
onBroken
in interfaceIVSGenericComponentListener
- Parameters:
reference
- The VSComponentReference instance holding the component reference.component
- The VS component reference that is now unresolved.
onStateChanged
public void onStateChanged(VSComponent component, IVSComponentState.State state, boolean on)
Called when the VS component changes state.- Specified by:
onStateChanged
in interfaceIVSGenericComponentListener
- Parameters:
component
- The VS component.state
- The state change.on
- New state.
onVSComponentSelectionChanged
protected void onVSComponentSelectionChanged(boolean on)
Called when the VS component has its selected state changed. By default, the parent container is verified for selection support. These are typically accordion, swap, tab containers.- Parameters:
on
- The selected state.
onComponentSelectedInParent
public void onComponentSelectedInParent(boolean on)
Called by the parent container to inform that this component has been selected in its container. The containers that call this method are typically accordion, swap and tab containers.The container processes this method by selecting the VSComponent for state and focus that may be connected.
- Overrides:
onComponentSelectedInParent
in classUIComp
- Parameters:
on
- The selection state.
onSelectionChanged
protected void onSelectionChanged(GEvent event)
Method called when the selection of the component changed due to a property change (value changed, property added or removed).- Overrides:
onSelectionChanged
in classUIComp
- Parameters:
event
- The event that causes the selection change.
onSelectionChanged
protected void onSelectionChanged(boolean on)
Called when the container is selected as the current container in an index-based single-selection container such as accordion, swap and tab containers.
verify
public boolean verify(PropVerification verification)
Verifies this property container. The check performed is the extension of classes and that no circular reference is present.
verifyComponentScope
protected boolean verifyComponentScope(UIContainer scopeContainer, java.lang.String what, PropVerification verification, VSComponent vsOuter)
Verifies that this component has it's VS references inside the outer VS reference.- Overrides:
verifyComponentScope
in classUIComp
- Parameters:
scopeContainer
- The scope container.what
- What the scope container is.verification
- The property verification class.vsOuter
- The outer VS parent.- Returns:
- true if OK, false if somehow outside.
getUIComponent
public <COMP extends UIComp> COMP getUIComponent(@UIRef java.lang.String uiPath, java.lang.Class<COMP> uiClass) throws NotFoundException
Gets a UI component with relative reference from this container.Note: A UI path is not the same as a property path, it omits the UI container UIComps instance from the path.
Note 2: If the path is empty, "this" component is returned if the component class
uiClass
matches, otherwiseNotFoundException
is thrown.- Parameters:
uiPath
- The UI path for the component.uiClass
- The UI class of the component.- Returns:
- The component, never null.
- Throws:
NotFoundException
- The not-found exception is thrown if the component is not found instead of returning null.
getUIComponentNull
public <COMP extends UIComp> COMP getUIComponentNull(@UIRef java.lang.String uiPath, java.lang.Class<COMP> uiClass)
Gets a UI component with relative reference from this container.Note: A UI path is not the same as a property path, it omits the UI container UIComps instance from the path.
Note 2: If the path is empty, "this" component is returned if the component class
uiClass
matches, otherwisenull
is returned.- Parameters:
uiPath
- The UI path for the component.uiClass
- The UI class of the component.- Returns:
- The component, or null if not found.
getFirstUIComponent
public <COMP extends UIComp> COMP getFirstUIComponent(java.lang.String name, java.lang.Class<COMP> uiClass) throws NotFoundException
Gets the first UI component of the specified name and UI class. The search for the component is done from this container and its children containers.- Specified by:
getFirstUIComponent
in interfaceIUIComp
- Parameters:
name
- The name of the component.uiClass
- The UI class of the component.- Returns:
- The component, never null.
- Throws:
NotFoundException
- The not-found exception is thrown if the component is not found instead of returning null.
getFirstUIComponentNull
public <COMP extends UIComp> COMP getFirstUIComponentNull(java.lang.String name, java.lang.Class<COMP> uiClass)
Gets the first UI component of the specified name and UI class. The search for the component is done from this container and its children containers.- Specified by:
getFirstUIComponentNull
in interfaceIUIComp
- Parameters:
name
- The name of the component.uiClass
- The UI class of the component.- Returns:
- The component, or null if not found.
mustHaveWidth
public boolean mustHaveWidth()
Does this component requires a width?- Overrides:
mustHaveWidth
in classUIComp
- Returns:
- true if the width must be defined and non-zero, false otherwise.
mustHaveHeight
public boolean mustHaveHeight()
Does this component requires a height.- Overrides:
mustHaveHeight
in classUIComp
- Returns:
- true if the height must be defined and non-zero, false otherwise.
getApproximateSize
public Size getApproximateSize()
Returns the size of the component in pixels. The size is a calculation and does not exactly reflect the real size that may be different due to additional styles not taken into account by this method. The size is calculated from the font of the component and default or defined values (such as character length or number of lines for text area).- Specified by:
getApproximateSize
in classUIComp
- Returns:
- The size of the component: 300x200.