Package io.jmix.ui.component.impl
Class AbstractComponent<T extends com.vaadin.ui.Component>
java.lang.Object
io.jmix.ui.component.impl.AbstractComponent<T>
- All Implemented Interfaces:
AttachNotifier,Component,Component.BelongToFrame,Component.HasCaption,Component.HasDescription,Component.HasIcon,Component.HasXmlDescriptor,Component.Wrapper,HasContextHelp,HasDebugId,HasHtmlCaption,HasHtmlDescription,HasHtmlSanitizer
- Direct Known Subclasses:
AbstractActionsHolderComponent,AbstractBox,AbstractDataGrid,AbstractOrderedLayout,AbstractPagination,AbstractResourceView,AbstractValueComponent,AbstractViewComponent,AccordionImpl,AppMenuImpl,AppWorkAreaImpl,BpmnModelerImpl,BpmnViewerImpl,ButtonImpl,CalendarImpl,CapsLockIndicatorImpl,ChartImpl,CustomChartImpl,FileMultiUploadFieldImpl,FormImpl,GeoMapImpl,GrapesJsHtmlEditorImpl,GridLayoutImpl,GroupBoxImpl,HtmlBoxLayoutImpl,JavaScriptComponentImpl,LinkImpl,LogoutButtonImpl,NewWindowButtonImpl,OutcomesPanelImpl,PivotTableImpl,PopupButtonImpl,PopupViewImpl,ResponsiveGridLayoutImpl,ScrollBoxLayoutImpl,SideMenuImpl,SplitPanelImpl,StockChartImpl,TabSheetImpl,TimeZoneIndicatorImpl,TreeImpl,UserActionsButtonImpl,WebdavDocumentLinkImpl
public abstract class AbstractComponent<T extends com.vaadin.ui.Component>
extends Object
implements Component, Component.Wrapper, Component.HasXmlDescriptor, Component.BelongToFrame, Component.HasIcon, Component.HasCaption, HasDebugId, HasContextHelp, HasHtmlCaption, HasHtmlDescription, AttachNotifier, HasHtmlSanitizer
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.jmix.ui.component.Component
Component.Alignment, Component.BelongToFrame, Component.Disposable, Component.Editable, Component.Focusable, Component.HasCaption, Component.HasDescription, Component.HasIcon, Component.HasXmlDescriptor, Component.WrapperNested classes/interfaces inherited from interface io.jmix.ui.component.HasContextHelp
HasContextHelp.ContextHelpIconClickEvent -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Component.Alignmentprotected org.springframework.context.ApplicationContextprotected Tprotected Consumer<HasContextHelp.ContextHelpIconClickEvent>protected com.vaadin.shared.Registrationprotected booleanprotected org.dom4j.Elementprotected Frameprotected Booleanprotected Stringstatic final Stringprotected Stringprotected ComponentFields inherited from interface io.jmix.ui.component.Component
AUTO_SIZE, AUTO_SIZE_PX, FULL_SIZE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddAttachListener(Consumer<AttachEvent> listener) Registers a new attached listener.addDetachListener(Consumer<DetachEvent> listener) Registers a new detached listener.voidaddStyleName(String styleName) Adds one or more style names to this component.protected voidvoidattached()Notifies all listeners that component has been attached.voiddetached()Notifies all listeners that component has been detached.com.vaadin.ui.Componentprotected EventHubgetFrame()floatGet component height inComponent.getHeightSizeUnit()Gets the height property units.protected HtmlSanitizergetIcon()Get icon source: "font-icon:ADD", "icons/myicon.png", "theme://createIcon", etc.protected StringgetIconName(Icons.Icon icon) protected com.vaadin.server.ResourcegetIconResource(String icon) getId()Component ID as defined inidattributeStyles implementation is client-type-specific.protected UiComponentPropertiesprotected UiPropertiesfloatgetWidth()Get component width inComponent.getWidthSizeUnit()Gets the width property units.org.dom4j.Elementprotected booleanhasSubscriptions(Class<?> eventClass) protected booleanbooleanbooleanbooleanbooleanbooleanIs the component enabled?
Note that this method only returns the status of the component and does not take parents into account.booleanbooleanbooleanIs the component responsive?booleanIs the component visible?
A component is visible only if all its parents are also visible.booleanprotected voidonContextHelpIconClick(com.vaadin.ui.Component.HasContextHelp.ContextHelpIconClickEvent e) protected <E> voidvoidremoveStyleName(String styleName) Removes one or more style names from component.protected StringvoidsetAlignment(Component.Alignment alignment) voidsetApplicationContext(org.springframework.context.ApplicationContext applicationContext) voidsetCaption(String caption) Sets the component's caption.voidsetCaptionAsHtml(boolean captionAsHtml) Sets whether the caption is rendered as HTML.voidSets a context help icon click handler.voidsetContextHelpText(String contextHelpText) Sets context help text.voidsetContextHelpTextHtmlEnabled(boolean enabled) Defines if context help text can be presented as HTML.voidsetDebugId(String id) INTERNAL.voidsetDescription(String description) Sets the component's description.voidsetDescriptionAsHtml(boolean descriptionAsHtml) Sets whether the description is rendered as HTML.voidsetEnabled(boolean enabled) Sets the component enabled state.voidvoidSet component height inComponent.getHeightSizeUnit()voidsetHtmlSanitizerEnabled(boolean htmlSanitizerEnabled) Sets whether html sanitizer is enabled or not.voidSet an icon by its source: "font-icon:ADD", "icons/myicon.png", "theme://createIcon", etc.voidsetIconFromSet(Icons.Icon icon) Set an icon from an icon set.voidSet component IDvoidINTERNAL.
ComponentContainer.add(Component)is normally used for adding components to a parent and the used method will call this method implicitly.voidsetResponsive(boolean responsive) Sets component to be responsive by width and height.voidsetStyleName(String name) Sets one or more style names of the component, replacing any previous styles.protected voidsetValidationError(String errorMessage) voidsetVisible(boolean visible) Sets visibility value for the component.voidSet component width inComponent.getWidthSizeUnit()}voidsetXmlDescriptor(org.dom4j.Element element) protected <E> booleanunsubscribe(Class<E> eventType, Consumer<E> listener) <X> XGet client specific component instance.<X> XunwrapComposition(Class<X> internalCompositionClass) Get the outmost external container of client specific component instance.<X> XunwrapCompositionOrNull(Class<X> internalCompositionClass) Get the outmost external container of client specific component instance.<X> XunwrapOrNull(Class<X> internalComponentClass) Get client specific component instance.<X> voidwithUnwrapped(Class<X> internalComponentClass, Consumer<X> action) Performs the givenactionwith underlying component if it can be casted to the giveninternalComponentClass.<X> voidwithUnwrappedComposition(Class<X> internalCompositionClass, Consumer<X> action) Get the outmost external container of client specific component instance and performs the givenaction.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.jmix.ui.component.Component
setHeightAuto, setHeightFull, setSizeAuto, setSizeFull, setWidthAuto, setWidthFull
-
Field Details
-
ICON_STYLE
- See Also:
-
id
-
component
-
element
protected org.dom4j.Element element -
frame
-
parent
-
alignment
-
icon
-
descriptionAsHtml
protected boolean descriptionAsHtml -
htmlSanitizerEnabled
-
contextHelpIconClickHandler
-
contextHelpIconClickListener
protected com.vaadin.shared.Registration contextHelpIconClickListener -
applicationContext
protected org.springframework.context.ApplicationContext applicationContext
-
-
Constructor Details
-
AbstractComponent
public AbstractComponent()
-
-
Method Details
-
setApplicationContext
@Autowired public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) -
getEventHub
-
publish
-
hasSubscriptions
-
unsubscribe
-
getFrame
- Specified by:
getFramein interfaceComponent.BelongToFrame
-
setFrame
- Specified by:
setFramein interfaceComponent.BelongToFrame
-
isResponsive
public boolean isResponsive()Description copied from interface:ComponentIs the component responsive?- Specified by:
isResponsivein interfaceComponent- Returns:
- true if the component applies conditional CSS rules for width / height sizes.
-
setResponsive
public void setResponsive(boolean responsive) Description copied from interface:ComponentSets component to be responsive by width and height.
If responsive flag is true then you can use conditional CSS rules that respond to size changes in the browser. You can set specific rules using "width-range" or "height-range" properties in CSS files.- Specified by:
setResponsivein interfaceComponent- Parameters:
responsive- responsive flag
-
getId
Description copied from interface:ComponentComponent ID as defined inidattribute -
setId
Description copied from interface:ComponentSet component ID -
assignDebugId
protected void assignDebugId() -
getParent
-
setParent
Description copied from interface:ComponentINTERNAL.
ComponentContainer.add(Component)is normally used for adding components to a parent and the used method will call this method implicitly. -
isAttached
public boolean isAttached()- Specified by:
isAttachedin interfaceAttachNotifier- Returns:
- whether a component is attached to a window
-
attached
public void attached()Description copied from interface:AttachNotifierNotifies all listeners that component has been attached.- Specified by:
attachedin interfaceAttachNotifier
-
detached
public void detached()Description copied from interface:AttachNotifierNotifies all listeners that component has been detached.- Specified by:
detachedin interfaceAttachNotifier
-
addAttachListener
Description copied from interface:AttachNotifierRegisters a new attached listener.- Specified by:
addAttachListenerin interfaceAttachNotifier- Parameters:
listener- a listener to add- Returns:
- a registration object for removing an event listener added to a source
-
addDetachListener
Description copied from interface:AttachNotifierRegisters a new detached listener.- Specified by:
addDetachListenerin interfaceAttachNotifier- Parameters:
listener- a listener to add- Returns:
- a registration object for removing an event listener added to a source
-
getDebugId
- Specified by:
getDebugIdin interfaceHasDebugId
-
setDebugId
Description copied from interface:HasDebugIdINTERNAL. Managed by debug Id system.- Specified by:
setDebugIdin interfaceHasDebugId
-
getStyleName
Description copied from interface:ComponentStyles implementation is client-type-specific.- Specified by:
getStyleNamein interfaceComponent- Returns:
- current style name.
-
setStyleName
Description copied from interface:ComponentSets one or more style names of the component, replacing any previous styles. Multiple styles can be specified as a space-separated list of style names. Styles implementation is client-type-specific.- Specified by:
setStyleNamein interfaceComponent- Parameters:
name- one or more style names separated by space.
-
addStyleName
Description copied from interface:ComponentAdds one or more style names to this component. Multiple styles can be specified as a space-separated list of style names.- Specified by:
addStyleNamein interfaceComponent- Parameters:
styleName- one or more style names separated by space.
-
removeStyleName
Description copied from interface:ComponentRemoves one or more style names from component. Multiple styles can be specified as a space-separated list of style names.- Specified by:
removeStyleNamein interfaceComponent- Parameters:
styleName- one or more style names separated by space.
-
isEnabled
public boolean isEnabled()Description copied from interface:ComponentIs the component enabled?
Note that this method only returns the status of the component and does not take parents into account. Even though this method returns true the component can be disabled to the user if a parent is disabled. -
isEnabledRecursive
public boolean isEnabledRecursive()- Specified by:
isEnabledRecursivein interfaceComponent- Returns:
- true if the component and all its parent components are enabled
-
setEnabled
public void setEnabled(boolean enabled) Description copied from interface:ComponentSets the component enabled state.
The user can not interact with disabled components, which are shown with a style that indicates the status. Components are enabled by default.- Specified by:
setEnabledin interfaceComponent- Parameters:
enabled- enabled flag
-
isVisible
public boolean isVisible()Description copied from interface:ComponentIs the component visible?
A component is visible only if all its parents are also visible. This is not checked by this method though, so even if this method returns true, the component can be hidden from the user because a parent is set to invisible. -
isVisibleRecursive
public boolean isVisibleRecursive()- Specified by:
isVisibleRecursivein interfaceComponent- Returns:
- true if the component and all its parent components are visible
-
setVisible
public void setVisible(boolean visible) Description copied from interface:ComponentSets visibility value for the component.
Visible components are drawn in the user interface, while invisible ones are not. The effect is not a cosmetic CSS change - no information about an invisible component will be sent to the client. The effect is thus the same as removing the component from its parent.- Specified by:
setVisiblein interfaceComponent- Parameters:
visible- visible flag
-
getIcon
Description copied from interface:Component.HasIconGet icon source: "font-icon:ADD", "icons/myicon.png", "theme://createIcon", etc.- Specified by:
getIconin interfaceComponent.HasIcon
-
getCaption
- Specified by:
getCaptionin interfaceComponent.HasCaption- Returns:
- the caption of the component
-
setCaption
Description copied from interface:Component.HasCaptionSets the component's caption.- Specified by:
setCaptionin interfaceComponent.HasCaption- Parameters:
caption- the new component's caption
-
isCaptionAsHtml
public boolean isCaptionAsHtml()- Specified by:
isCaptionAsHtmlin interfaceHasHtmlCaption- Returns:
trueif the caption is rendered as HTML,falseif rendered as plain text
-
setCaptionAsHtml
public void setCaptionAsHtml(boolean captionAsHtml) Description copied from interface:HasHtmlCaptionSets whether the caption is rendered as HTML.- Specified by:
setCaptionAsHtmlin interfaceHasHtmlCaption- Parameters:
captionAsHtml-trueif the caption is rendered as HTML,falseif rendered as plain text- See Also:
-
getDescription
- Specified by:
getDescriptionin interfaceComponent.HasDescription- Returns:
- the components description, used in tooltips
-
setDescription
Description copied from interface:Component.HasDescriptionSets the component's description.- Specified by:
setDescriptionin interfaceComponent.HasDescription- Parameters:
description- the new description to set
-
isDescriptionAsHtml
public boolean isDescriptionAsHtml()- Specified by:
isDescriptionAsHtmlin interfaceHasHtmlDescription- Returns:
trueif the description is rendered as HTML,falseif rendered as plain text
-
setDescriptionAsHtml
public void setDescriptionAsHtml(boolean descriptionAsHtml) Description copied from interface:HasHtmlDescriptionSets whether the description is rendered as HTML.- Specified by:
setDescriptionAsHtmlin interfaceHasHtmlDescription- Parameters:
descriptionAsHtml-trueif the description is rendered as HTML,falseif rendered as plain text- See Also:
-
setIcon
Description copied from interface:Component.HasIconSet an icon by its source: "font-icon:ADD", "icons/myicon.png", "theme://createIcon", etc.- Specified by:
setIconin interfaceComponent.HasIcon
-
setIconFromSet
Description copied from interface:Component.HasIconSet an icon from an icon set.- Specified by:
setIconFromSetin interfaceComponent.HasIcon
-
getIconResource
-
getIconName
-
getHeight
public float getHeight()Description copied from interface:ComponentGet component height inComponent.getHeightSizeUnit() -
getHeightSizeUnit
Description copied from interface:ComponentGets the height property units.- Specified by:
getHeightSizeUnitin interfaceComponent- Returns:
- units used in height property.
-
setHeight
Description copied from interface:ComponentSet component height inComponent.getHeightSizeUnit() -
getWidth
public float getWidth()Description copied from interface:ComponentGet component width inComponent.getWidthSizeUnit() -
getWidthSizeUnit
Description copied from interface:ComponentGets the width property units.- Specified by:
getWidthSizeUnitin interfaceComponent- Returns:
- units used in the width property.
-
setWidth
Description copied from interface:ComponentSet component width inComponent.getWidthSizeUnit()} -
getAlignment
- Specified by:
getAlignmentin interfaceComponent
-
setAlignment
- Specified by:
setAlignmentin interfaceComponent
-
getComponent
- Specified by:
getComponentin interfaceComponent.Wrapper
-
getComposition
public com.vaadin.ui.Component getComposition()- Specified by:
getCompositionin interfaceComponent.Wrapper
-
getXmlDescriptor
@Nullable public org.dom4j.Element getXmlDescriptor()- Specified by:
getXmlDescriptorin interfaceComponent.HasXmlDescriptor
-
setXmlDescriptor
public void setXmlDescriptor(@Nullable org.dom4j.Element element) - Specified by:
setXmlDescriptorin interfaceComponent.HasXmlDescriptor
-
getContextHelpText
- Specified by:
getContextHelpTextin interfaceHasContextHelp- Returns:
- context help text
-
setContextHelpText
Description copied from interface:HasContextHelpSets context help text. If set, then a special icon will be added for a field.- Specified by:
setContextHelpTextin interfaceHasContextHelp- Parameters:
contextHelpText- context help text to be set
-
isContextHelpTextHtmlEnabled
public boolean isContextHelpTextHtmlEnabled()- Specified by:
isContextHelpTextHtmlEnabledin interfaceHasContextHelp- Returns:
- true if field accepts context help text in HTML format, false otherwise
-
setContextHelpTextHtmlEnabled
public void setContextHelpTextHtmlEnabled(boolean enabled) Description copied from interface:HasContextHelpDefines if context help text can be presented as HTML.- Specified by:
setContextHelpTextHtmlEnabledin interfaceHasContextHelp- Parameters:
enabled- true if field accepts context help text in HTML format, false otherwise
-
getContextHelpIconClickHandler
@Nullable public Consumer<HasContextHelp.ContextHelpIconClickEvent> getContextHelpIconClickHandler()- Specified by:
getContextHelpIconClickHandlerin interfaceHasContextHelp- Returns:
- a context help icon click handler
-
setContextHelpIconClickHandler
public void setContextHelpIconClickHandler(@Nullable Consumer<HasContextHelp.ContextHelpIconClickEvent> handler) Description copied from interface:HasContextHelpSets a context help icon click handler. If set, then a special icon will be added for a field. Click handler has priority over context help text, i.e. no tooltip with context help text will be shown if click listener is set.- Specified by:
setContextHelpIconClickHandlerin interfaceHasContextHelp- Parameters:
handler- the handler to set
-
onContextHelpIconClick
protected void onContextHelpIconClick(com.vaadin.ui.Component.HasContextHelp.ContextHelpIconClickEvent e) -
unwrap
Description copied from interface:ComponentGet client specific component instance. Can be used in client module to simplify invocation of underlying API.
Example:com.vaadin.ui.TextField vTextField = textField.unwrap(com.vaadin.ui.TextField.class);
-
unwrapOrNull
Description copied from interface:ComponentGet client specific component instance. Can be used in client module to simplify invocation of underlying API.
Returnsnullif underlying component cannot be casted to the giveninternalComponentClass. Example:com.vaadin.ui.TextField vTextField = textField.unwrapOrNull(com.vaadin.ui.TextField.class);
- Specified by:
unwrapOrNullin interfaceComponent- Type Parameters:
X- type of internal class- Parameters:
internalComponentClass- class of underlying component implementation based on Vaadin or Swing- Returns:
- internal client specific component or null if it cannot be casted to given class
-
withUnwrapped
Description copied from interface:ComponentPerforms the givenactionwith underlying component if it can be casted to the giveninternalComponentClass. Example:textField.withUnwrapped(com.vaadin.ui.TextField.class, vTextField -> { // do something });- Specified by:
withUnwrappedin interfaceComponent- Type Parameters:
X- type of internal class- Parameters:
internalComponentClass- class of underlying component implementation based on Vaadin or Swingaction- action to perform if underlying component can be casted to given class
-
unwrapComposition
Description copied from interface:ComponentGet the outmost external container of client specific component instance. Can be used in client module to simplify invocation of underlying API.
Example:com.vaadin.ui.Layout vLayout = table.unwrapComposition(com.vaadin.ui.Layout.class);
- Specified by:
unwrapCompositionin interfaceComponent- Type Parameters:
X- type of internal class- Parameters:
internalCompositionClass- class of underlying composition implementation based on Vaadin or Swing- Returns:
- internal client specific component
-
unwrapCompositionOrNull
Description copied from interface:ComponentGet the outmost external container of client specific component instance. Can be used in client module to simplify invocation of underlying API.
Returns null if composition cannot be casted to giveninternalCompositionClass. Example:com.vaadin.ui.Layout vLayout = table.unwrapCompositionOrNull(com.vaadin.ui.Layout.class);
- Specified by:
unwrapCompositionOrNullin interfaceComponent- Type Parameters:
X- type of internal class- Parameters:
internalCompositionClass- class of underlying composition implementation based on Vaadin or Swing- Returns:
- internal client specific component or null if cannot be casted to given class
-
withUnwrappedComposition
Description copied from interface:ComponentGet the outmost external container of client specific component instance and performs the givenaction.
Can be used in client module to simplify invocation of underlying API.
Example:table.withUnwrappedComposition(com.vaadin.ui.Layout.class, vLayout -> { // do something });- Specified by:
withUnwrappedCompositionin interfaceComponent- Type Parameters:
X- type of internal class- Parameters:
internalCompositionClass- class of underlying composition implementation based on Vaadin or Swingaction- to perform if underlying composition can be casted to given class
-
hasValidationError
protected boolean hasValidationError() -
setValidationError
-
isHtmlSanitizerEnabled
public boolean isHtmlSanitizerEnabled()- Specified by:
isHtmlSanitizerEnabledin interfaceHasHtmlSanitizer- Returns:
- html sanitizer is enabled
-
setHtmlSanitizerEnabled
public void setHtmlSanitizerEnabled(boolean htmlSanitizerEnabled) Description copied from interface:HasHtmlSanitizerSets whether html sanitizer is enabled or not.- Specified by:
setHtmlSanitizerEnabledin interfaceHasHtmlSanitizer- Parameters:
htmlSanitizerEnabled- specifies whether html sanitizer is enabled
-
sanitize
-
getUiProperties
-
getUiComponentProperties
-
getHtmlSanitizer
-