Interface IFocusComp
- All Known Subinterfaces:
IUIFocusComp
,IVSComponent
,IVSMessageComponent
- All Known Implementing Classes:
AbstractContentUIContainer
,EditorVirtualSpace
,EditorVSAction
,EditorVSColumnHeader
,EditorVSField
,EditorVSGroup
,EditorVSRow
,EditorVSTable
,EMapMarkers
,EMLGroup
,EMList
,EMLItemProp
,EMUIHeading
,EMUISimpleDialog
,EMUISwitch
,EMUITabBar
,EUIAccordion
,EUIButton
,EUICalendar
,EUICalendarList
,EUICheckBox
,EUIComboBox
,EUIContainer
,EUIContextMenu
,EUIDateTime
,EUIDialog
,EUIGauge
,EUIImage
,EUIImage2
,EUIMap
,EUIMenu
,EUIMenuBar
,EUIOutput
,EUIPanel
,EUIPanelPart
,EUIPanelPartCnr
,EUIRadioButton
,EUISlider
,EUISpinner
,EUISwapContainer
,EUITabContainer
,EUITable
,EUIText
,EUITextArea
,EUITitlePane
,MapMarkers
,MLGroup
,MList
,MLItemProp
,MUIHeading
,MUISimpleDialog
,MUISwitch
,MUITabBar
,UIAbstractListChoice
,UIAccordion
,UIButton
,UICalendar
,UICalendarList
,UICheckBox
,UIComboBox
,UIContainer
,UIContextMenu
,UIDateTime
,UIDialog
,UIGauge
,UIImage
,UIImage2
,UIMap
,UIMenu
,UIMenuBar
,UIOutput
,UIPanel
,UIPanelBase
,UIPanelPart
,UIPanelPartCnr
,UIRadioButton
,UISlider
,UISpinner
,UISwapContainer
,UITabContainer
,UITable
,UIText
,UITextArea
,UITitlePane
,VirtualSpace
,VSAction
,VSColumnHeader
,VSComponent
,VSField
,VSGroup
,VSRow
,VSTable
public interface IFocusComp extends IPropCnr
Interface implemented by components or properties that supports receiving focus. There are two core focus engines in IIZI: one for the VirtualSpace and one for the Panels. In general, the one for panels follow the VirtualSpace focus, but not always.The VirtualSpace focus engine is common for all parallel and/or dormant sessions that are or may connect to it. This means that if the focus is changed in the VirtualSpace, the Panels may receive a focus change also, dependent on the panel connected.
The Panel focus engine is unique for the client session connection, but is kept for a reconnecting session. Changing panel focus may result in changes in the VirtualSpace focus.
Focus processing is done in the following order:
- Focus is changed in the focus engine without notification, i.e. the call to
IFocusEngine.getCurrentFocus()
will reflect the new focus component,
- If the receiving focus component is non-null: focus veto processing using the focus listeners registered in the
IFocusEngine
using theIFocusVetoListener
interface. If theFocusVetoException
is thrown, the original focus is restored in the focus engine without notification.
- Focus lost sent to the component losing focus using method
onFocusLost(IFocusComp, IGProp, boolean)
in the eventFocusEvent
.
- Focus lost is notified in a bubbling event
PropFocusEvent
to the component losing focus and its parents. withPropFocusEvent.isFocusLost()
true
.
- Focus lost is notified in a sinking event
PropCnrFocusEvent
to the component losing focus and its descendants withPropCnrFocusEvent.isFocusLost()
true
.
- Focus change sent to the focus listeners registered in the
IFocusEngine
usingIFocusListener.onFocusChanged(FocusEvent)
.
- Focus gained sent to the component gaining focus using method
onFocusGained(IFocusComp, IGProp, boolean)
in the eventFocusEvent
.
- Focus gained is notified in a bubbling event
PropFocusEvent
to the component gaining focus and its parents. withPropFocusEvent.isFocusGained()
true
.
- Focus gained is notified in a sinking event
PropCnrFocusEvent
to the component gaining focus and its descendants withPropCnrFocusEvent.isFocusGained()
true
.
- Author:
- Christopher Mindus
Field Summary
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
Method Summary
All Methods Instance Methods Default Methods Modifier and Type Method Description default void
onFocusGained(IFocusComp opposite, IGProp<?> trigger, boolean isRemoteInduced)
Called to the component when it receives focus.default void
onFocusLost(IFocusComp focusComp, IGProp<?> trigger, boolean isRemoteInduced)
Called to the focused component when it loses focus.default java.lang.String
requestFocus()
Requests focus to this component.default java.lang.String
requestFocus(IGProp<?> trigger)
Requests focus to this component.default boolean
requestFocusEx()
Requests focus to this component.default boolean
requestFocusEx(IGProp<?> trigger)
Requests focus to this component.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, verify, verifyHasPropertyItem, warning, warning, warning
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
Method Detail
requestFocus
default java.lang.String requestFocus()
Requests focus to this component. This call is redirected to the focus engine for the component type. The engine may veto the focus change, because it currently cannot change focus, or the request is not or cannot be virtualized.This method is less precise than
requestFocusEx()
, but avoids try-catching.- Returns:
null
for success, otherwise an error message indicating why focus was not able to be changed.
requestFocusEx
default boolean requestFocusEx() throws FocusException
Requests focus to this component. This call is redirected to the focus engine for the component type. The engine may veto the focus change, because it currently cannot change focus, or the request is not or cannot be virtualized.- Returns:
- true if focus was changed, false otherwise.
- Throws:
FocusException
- If focus could not be changed.
requestFocus
default java.lang.String requestFocus(IGProp<?> trigger)
Requests focus to this component. This call is redirected to the focus engine for the component type. The engine may veto the focus change, because it currently cannot change focus, or the request is not or cannot be virtualized.This method is less precise than
requestFocusEx(IGProp)
, but avoids try-catching.- Parameters:
trigger
- The component triggering the focus, null for none.- Returns:
null
for success, otherwise an error message indicating why focus was not able to be changed.
requestFocusEx
default boolean requestFocusEx(IGProp<?> trigger) throws FocusException
Requests focus to this component. This call is redirected to the focus engine for the component type. The engine may veto the focus change, because it currently cannot change focus, or the request is not or cannot be virtualized.- Parameters:
trigger
- The component triggering the focus, null for none.- Returns:
- true if focus was changed, false otherwise.
- Throws:
FocusException
- If focus could not be changed.
onFocusLost
default void onFocusLost(IFocusComp focusComp, IGProp<?> trigger, boolean isRemoteInduced)
Called to the focused component when it loses focus.Focus components override this method if they need to process focus lost.
- Parameters:
focusComp
- Component receiving focus, null for none.trigger
- The component triggering the focus, null for none.isRemoteInduced
- Flag indicating this event is due to a remote event.
onFocusGained
default void onFocusGained(IFocusComp opposite, IGProp<?> trigger, boolean isRemoteInduced)
Called to the component when it receives focus.Focus components override this method if they need to process focus lost.
- Parameters:
opposite
- Component losing focus, null for none.trigger
- The component triggering the focus, null for none.isRemoteInduced
- Flag indicating this event is due to a remote event.