com.vaadin.ui.
Class AbstractComponent
- java.lang.Object
-
- com.vaadin.server.AbstractClientConnector
-
- com.vaadin.ui.AbstractComponent
-
All Implemented Interfaces:
ContextClickEvent.ContextClickNotifier
,MethodEventSource
,ClientConnector
,Sizeable
,Connector
,Component
,Serializable
Direct Known Subclasses:
AbstractComponentContainer
,AbstractEmbedded
,AbstractField
,AbstractFocusable
,AbstractJavaScriptComponent
,AbstractListing
,AbstractMedia
,AbstractSingleComponentContainer
,Composite
,CustomComponent
,Embedded
,Label
,Link
,MenuBar
,PopupView
,ProgressBar
,Upload
public abstract class AbstractComponent extends AbstractClientConnector implements Component, ContextClickEvent.ContextClickNotifier
An abstract class that defines default implementation for the
Component
interface. Basic UI components that are not derived from an external component can inherit this class to easily qualify as Vaadin components. Most components in Vaadin do just that.Since:
3.0
Author:
Vaadin Ltd.
See Also:
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.vaadin.server.ClientConnector
ClientConnector.AttachEvent, ClientConnector.AttachListener, ClientConnector.ConnectorErrorEvent, ClientConnector.DetachEvent, ClientConnector.DetachListener
-
Nested classes/interfaces inherited from interface com.vaadin.ui.Component
Component.ErrorEvent, Component.Event, Component.Focusable, Component.Listener
-
Nested classes/interfaces inherited from interface com.vaadin.server.Sizeable
Sizeable.Unit
-
-
Field Summary
Fields Modifier and Type Field Description protected static String
DESIGN_ATTR_PLAIN_TEXT
-
Fields inherited from interface com.vaadin.server.Sizeable
SIZE_UNDEFINED, UNITS_CM, UNITS_EM, UNITS_EX, UNITS_INCH, UNITS_MM, UNITS_PERCENTAGE, UNITS_PICAS, UNITS_PIXELS, UNITS_POINTS
-
-
Constructor Summary
Constructors Constructor Description AbstractComponent()
Constructs a new Component.
-
Method Summary
All Methods Modifier and Type Method Description Registration
addContextClickListener(ContextClickEvent.ContextClickListener listener)
Adds a context click listener that gets notified when a context click happens.
Registration
addListener(Component.Listener listener)
Registers a new (generic) component event listener for the component.
Registration
addShortcutListener(ShortcutListener shortcut)
void
addStyleName(String style)
Adds one or more style names to this component.
void
attach()
Notifies the connector that it is connected to a VaadinSession (and therefore also to a UI).
void
beforeClientResponse(boolean initial)
Called before the shared state and RPC invocations are sent to the client.
void
detach()
Notifies the connector that it is detached from its VaadinSession.
<T extends HasComponents>
TfindAncestor(Class<T> parentType)
Returns the closest ancestor with the given type.
protected void
fireComponentErrorEvent()
Emits the component error event.
protected void
fireComponentEvent()
Emits the component event.
protected void
focus()
Sets the focus for this component if the component is
Component.Focusable
.protected ActionManager
getActionManager()
Gets the
ActionManager
used to manage theShortcutListener
s added to this component.String
getCaption()
Gets the caption of the component.
ErrorMessage
getComponentError()
Gets the component's error message.
protected Collection<String>
getCustomAttributes()
Returns a collection of attributes that should not be handled by the basic implementation of the
readDesign(Element, DesignContext)
andwriteDesign(Element, DesignContext)
methods.Object
getData()
Gets the application specific data.
String
getDebugId()
Deprecated.
As of 7.0.String
getDescription()
Gets the components description, used in tooltips and can be displayed directly in certain other components such as forms.
ErrorMessage
getErrorMessage()
Gets the error message for this component.
float
getHeight()
Gets the height of the object.
Sizeable.Unit
getHeightUnits()
Gets the height property units.
Resource
getIcon()
Gets the icon resource of the component.
String
getId()
Gets currently set debug identifier.
Locale
getLocale()
Gets the locale of the component.
HasComponents
getParent()
Gets the parent component of the component.
String
getPrimaryStyleName()
Gets the primary style name of the component.
protected AbstractComponentState
getState()
Returns the shared state bean with information to be sent from the server to the client.
protected AbstractComponentState
getState(boolean markAsDirty)
Returns the shared state for this connector.
String
getStyleName()
Gets all user-defined CSS style names of a component.
float
getWidth()
Gets the width of the object.
Sizeable.Unit
getWidthUnits()
Gets the width property units.
boolean
isCaptionAsHtml()
Checks whether captions are rendered as HTML
boolean
isConnectorEnabled()
Checks if the communicator is enabled.
boolean
isEnabled()
Tests whether the component is enabled or not.
protected boolean
isOrHasAncestor(Component content)
Determine whether a
content
component is equal to, or the ancestor of this component.protected boolean
isReadOnly()
Returns the read-only status from the state of this
AbstractComponent
.protected boolean
isRequiredIndicatorVisible()
Checks whether the required indicator is visible or not.
boolean
isResponsive()
Returns true if the component is responsive.
boolean
isVisible()
Tests the visibility property of the component.
void
readDesign(org.jsoup.nodes.Element design, DesignContext designContext)
Reads the component state from the given design.
void
removeContextClickListener(ContextClickEvent.ContextClickListener listener)
Deprecated.
void
removeListener(Component.Listener listener)
Deprecated.
void
removeShortcutListener(ShortcutListener shortcut)
Deprecated.
void
removeStyleName(String style)
Removes one or more style names from component.
void
setCaption(String caption)
Sets the caption of the component.
void
setCaptionAsHtml(boolean captionAsHtml)
Sets whether the caption is rendered as HTML.
void
setComponentError(ErrorMessage componentError)
Sets the component's error message.
void
setData(Object data)
Sets the data object, that can be used for any application specific data.
void
setDebugId(String id)
Deprecated.
As of 7.0.void
setDescription(String description)
Sets the component's description.
void
setDescription(String description, ContentMode mode)
Sets the component's description using given content
mode
.void
setEnabled(boolean enabled)
Enables or disables the component.
void
setHeight(float height, Sizeable.Unit unit)
Sets the height of the object.
void
setHeight(String height)
Sets the height of the component using String presentation.
void
setHeightFull()
Sets the height to 100%.
void
setHeightUndefined()
Clears any defined height.
void
setIcon(Resource icon)
Sets the component's icon.
void
setId(String id)
Adds an unique id for component that is used in the client-side for testing purposes.
void
setLocale(Locale locale)
Sets the locale of this component.
void
setParent(HasComponents parent)
Sets the parent connector of the component.
void
setPrimaryStyleName(String style)
Changes the primary style name of the component.
protected void
setReadOnly(boolean readOnly)
Sets the read-only status in the state of this
AbstractComponent
.protected void
setRequiredIndicatorVisible(boolean visible)
Sets the visibility of the required indicator.
void
setResponsive(boolean responsive)
Toggles responsiveness of this component.
void
setSizeFull()
Sets the size to 100% x 100%.
void
setSizeUndefined()
Clears any size settings.
void
setStyleName(String style)
Sets one or more user-defined style names of the component, replacing any previous user-defined styles.
void
setVisible(boolean visible)
Sets the visibility of the component.
void
setWidth(float width, Sizeable.Unit unit)
Sets the width of the object.
void
setWidth(String width)
Sets the width of the component using String presentation.
void
setWidthFull()
Sets the width to 100%.
void
setWidthUndefined()
Clears any defined width.
void
writeDesign(org.jsoup.nodes.Element design, DesignContext designContext)
Writes the component state to the given design.
-
Methods inherited from class com.vaadin.server.AbstractClientConnector
addAttachListener, addDetachListener, addExtension, addListener, addListener, addListener, addListener, addListener, addListener, addMethodInvocationToQueue, createState, encodeState, equals, fireEvent, getAllChildrenIterable, getConnectorId, getErrorHandler, getExtensions, getListeners, getResource, getRpcManager, getRpcProxy, getSession, getStateType, getUI, handleConnectorRequest, hashCode, hasListeners, isAttached, isThis, markAsDirty, markAsDirtyRecursive, registerRpc, registerRpc, removeAttachListener, removeDetachListener, removeExtension, removeListener, removeListener, removeListener, removeListener, removeListener, requestRepaint, requestRepaintAll, retrievePendingRpcCalls, setErrorHandler, setResource, updateDiffstate
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.vaadin.server.ClientConnector
addAttachListener, addDetachListener, encodeState, getErrorHandler, getExtensions, getRpcManager, getStateType, handleConnectorRequest, isAttached, markAsDirty, markAsDirtyRecursive, removeAttachListener, removeDetachListener, removeExtension, requestRepaint, requestRepaintAll, retrievePendingRpcCalls, setErrorHandler
-
Methods inherited from interface com.vaadin.ui.Component
addStyleNames, getUI, removeStyleNames, setStyleName
-
Methods inherited from interface com.vaadin.shared.Connector
getConnectorId
-
-
-
-
Field Detail
-
DESIGN_ATTR_PLAIN_TEXT
protected static final String DESIGN_ATTR_PLAIN_TEXT
See Also:
-
-
Method Detail
-
setId
public void setId(String id)
Description copied from interface:
Component
Adds an unique id for component that is used in the client-side for testing purposes. Keeping identifiers unique is the responsibility of the programmer.
-
getId
public String getId()
Description copied from interface:
Component
Gets currently set debug identifier.
-
setDebugId
@Deprecated public void setDebugId(String id)
Deprecated.As of 7.0. UsesetId(String)
-
getDebugId
@Deprecated public String getDebugId()
Deprecated.As of 7.0. UsegetId()
-
getStyleName
public String getStyleName()
Description copied from interface:
Component
Gets all user-defined CSS style names of a component. If the component has multiple style names defined, the return string is a space-separated list of style names. Built-in style names defined in Vaadin or GWT are not returned.
The style names are returned only in the basic form in which they were added; each user-defined style name shows as two CSS style class names in the rendered HTML: one as it was given and one prefixed with the component-specific style name. Only the former is returned.
Specified by:
getStyleName
in interfaceComponent
Returns:
the style name or a space-separated list of user-defined style names of the component
See Also:
Component.setStyleName(String)
,Component.addStyleName(String)
,Component.removeStyleName(String)
-
setStyleName
public void setStyleName(String style)
Description copied from interface:
Component
Sets one or more user-defined style names of the component, replacing any previous user-defined styles. Multiple styles can be specified as a space-separated list of style names. The style names must be valid CSS class names and should not conflict with any built-in style names in Vaadin or GWT.
Label label = new Label("This text has a lot of style"); label.setStyleName("myonestyle myotherstyle");
Each style name will occur in two versions: one as specified and one that is prefixed with the style name of the component. For example, if you have a
Button
component and give it "mystyle
" style, the component will have both "mystyle
" and "v-button-mystyle
" styles. You could then style the component either with:.myonestyle {background: blue;}
or
.v-button-myonestyle {background: blue;}
It is normally a good practice to use
addStyleName()
rather than this setter, as different software abstraction layers can then add their own styles without accidentally removing those defined in other layers.Specified by:
setStyleName
in interfaceComponent
Parameters:
style
- the new style or styles of the component as a space-separated listSee Also:
Component.getStyleName()
,Component.addStyleName(String)
,Component.removeStyleName(String)
-
setPrimaryStyleName
public void setPrimaryStyleName(String style)
Description copied from interface:
Component
Changes the primary style name of the component.
The primary style name identifies the component when applying the CSS theme to the Component. By changing the style name all CSS rules targeted for that style name will no longer apply, and might result in the component not working as intended.
To preserve the original style of the component when changing to a new primary style you should make your new primary style inherit the old primary style using the SASS @include directive. See more in the SASS tutorials.
Specified by:
setPrimaryStyleName
in interfaceComponent
Parameters:
style
- The new primary style name
-
getPrimaryStyleName
public String getPrimaryStyleName()
Description copied from interface:
Component
Gets the primary style name of the component. See
Component.setPrimaryStyleName(String)
for a better description of the primary stylename.Specified by:
getPrimaryStyleName
in interfaceComponent
Returns:
the primary style name
-
addStyleName
public void addStyleName(String style)
Description copied from interface:
Component
Adds one or more style names to this component. Multiple styles can be specified as a space-separated list of style names. The style name will be rendered as a HTML class name, which can be used in a CSS definition.
Label label = new Label("This text has style"); label.addStyleName("mystyle");
Each style name will occur in two versions: one as specified and one that is prefixed with the style name of the component. For example, if you have a
Button
component and give it "mystyle
" style, the component will have both "mystyle
" and "v-button-mystyle
" styles. You could then style the component either with:.mystyle {font-style: italic;}
or
.v-button-mystyle {font-style: italic;}
Specified by:
addStyleName
in interfaceComponent
Parameters:
style
- the new style to be added to the componentSee Also:
Component.getStyleName()
,Component.setStyleName(String)
,Component.removeStyleName(String)
-
removeStyleName
public void removeStyleName(String style)
Description copied from interface:
Component
Removes one or more style names from component. Multiple styles can be specified as a space-separated list of style names.
The parameter must be a valid CSS style name. Only user-defined style names added with
addStyleName()
orsetStyleName()
can be removed; built-in style names defined in Vaadin or GWT can not be removed.Specified by:
removeStyleName
in interfaceComponent
Parameters:
style
- the style name or style names to be removedSee Also:
Component.getStyleName()
,Component.setStyleName(String)
,Component.addStyleName(String)
-
getCaption
public String getCaption()
Description copied from interface:
Component
Gets the caption of the component.
See
Component.setCaption(String)
for a detailed description of the caption.Specified by:
getCaption
in interfaceComponent
Returns:
the caption of the component or
null
if the caption is not set.See Also:
-
setCaption
public void setCaption(String caption)
Description copied from interface:
Component
Sets the caption of the component.
A caption is an explanatory textual label accompanying a user interface component, usually shown above, left of, or inside the component. Icon (see
setIcon()
is closely related to caption and is usually displayed horizontally before or after it, depending on the component and the containing layout.The caption can usually also be given as the first parameter to a constructor, though some components do not support it.
RichTextArea area = new RichTextArea(); area.setCaption("You can edit stuff here"); area.setValue("<h1>Helpful Heading</h1>" + "<p>All this is for you to edit.</p>");
The contents of a caption are automatically quoted, so no raw HTML can be rendered in a caption. The validity of the used character encoding, usually UTF-8, is not checked.
The caption of a component is, by default, managed and displayed by the layout component or component container in which the component is placed. For example, the
VerticalLayout
component shows the captions left-aligned above the contained components, while theFormLayout
component shows the captions on the left side of the vertically laid components, with the captions and their associated components left-aligned in their own columns. TheCustomComponent
does not manage the caption of its composition root, so if the root component has a caption, it will not be rendered. Some components, such asButton
andPanel
, manage the caption themselves and display it inside the component.Specified by:
setCaption
in interfaceComponent
Parameters:
caption
- the new caption for the component. If the caption isnull
, no caption is shown and it does not normally take any space
-
setCaptionAsHtml
public void setCaptionAsHtml(boolean captionAsHtml)
Sets whether the caption is rendered as HTML.
If set to true, the captions are rendered in the browser as HTML and the developer is responsible for ensuring no harmful HTML is used. If set to false, the caption is rendered in the browser as plain text.
The default is false, i.e. to render that caption as plain text.
Parameters:
captionAsHtml
- true if the captions are rendered as HTML, false if rendered as plain text
-
isCaptionAsHtml
public boolean isCaptionAsHtml()
Checks whether captions are rendered as HTML
The default is false, i.e. to render that caption as plain text.
Returns:
true if the captions are rendered as HTML, false if rendered as plain text
-
getLocale
public Locale getLocale()
Description copied from interface:
Component
Gets the locale of the component.
If a component does not have a locale set, the locale of its parent is returned, and so on. Eventually, if no parent has locale set, the locale of the application is returned. If the application does not have a locale set, it is determined by
Locale.getDefault()
.As the component must be attached before its locale can be acquired, using this method in the internationalization of component captions, etc. is generally not feasible. For such use case, we recommend using an otherwise acquired reference to the application locale.
-
setLocale
public void setLocale(Locale locale)
Sets the locale of this component.
// Component for which the locale is meaningful InlineDateField date = new InlineDateField("Datum"); // German language specified with ISO 639-1 language // code and ISO 3166-1 alpha-2 country code. date.setLocale(new Locale("de", "DE")); date.setResolution(DateField.RESOLUTION_DAY); layout.addComponent(date);
Parameters:
locale
- the locale to become this component's locale.
-
getIcon
public Resource getIcon()
Description copied from interface:
Component
Gets the icon resource of the component.
See
Component.setIcon(Resource)
for a detailed description of the icon.
-
setIcon
public void setIcon(Resource icon)
Sets the component's icon.
-
isEnabled
public boolean isEnabled()
Description copied from interface:
Component
Tests whether the component is enabled or not. A user can not interact with disabled components. Disabled components are rendered in a style that indicates the status, usually in gray color. Children of a disabled component are also disabled. Components are enabled by default.
As a security feature, all updates for disabled components are blocked on the server-side.
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.
-
setEnabled
public void setEnabled(boolean enabled)
Description copied from interface:
Component
Enables or disables the component. The user can not interact with disabled components, which are shown with a style that indicates the status, usually shaded in light gray color. Components are enabled by default.
Button enabled = new Button("Enabled"); enabled.setEnabled(true); // The default layout.addComponent(enabled); Button disabled = new Button("Disabled"); disabled.setEnabled(false); layout.addComponent(disabled);
Specified by:
setEnabled
in interfaceComponent
Parameters:
enabled
- a boolean value specifying if the component should be enabled or not
-
isConnectorEnabled
public boolean isConnectorEnabled()
Description copied from interface:
ClientConnector
Checks if the communicator is enabled. An enabled communicator is allowed to receive messages from its counter-part.
Specified by:
isConnectorEnabled
in interfaceClientConnector
Overrides:
isConnectorEnabled
in classAbstractClientConnector
Returns:
true if the connector can receive messages, false otherwise
-
isVisible
public boolean isVisible()
Description copied from interface:
Component
Tests the visibility property of the component.
Visible components are drawn in the user interface, while invisible ones are not. The effect is not merely 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. Making a component invisible through this property can alter the positioning of other components.
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.
-
setVisible
public void setVisible(boolean visible)
Description copied from interface:
Component
Sets the visibility of the component.
Visible components are drawn in the user interface, while invisible ones are not. The effect is not merely 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.
TextField readonly = new TextField("Read-Only"); readonly.setValue("You can't see this!"); readonly.setVisible(false); layout.addComponent(readonly);
A component is visible only if all of its parents are also visible. If a component is explicitly set to be invisible, changes in the visibility of its parents will not change the visibility of the component.
Specified by:
setVisible
in interfaceComponent
Parameters:
visible
- the boolean value specifying if the component should be visible after the call or not.See Also:
-
getDescription
public String getDescription()
Description copied from interface:
Component
Gets the components description, used in tooltips and can be displayed directly in certain other components such as forms. The description can be used to briefly describe the state of the component to the user. The description string may contain certain XML tags:
Tag Description Example <b> bold bold text <i> italic italic text <u> underlined underlined text <br> linebreak N/A <ul>
<li>item1
<li>item1
</ul>item list - item1
- item2
These tags may be nested.
Specified by:
getDescription
in interfaceComponent
Returns:
component's description
String
-
setDescription
public void setDescription(String description)
Sets the component's description. See
getDescription()
for more information on what the description is.Parameters:
description
- the new description string for the component.See Also:
-
setDescription
public void setDescription(String description, ContentMode mode)
Sets the component's description using given content
mode
. SeegetDescription()
for more information on what the description is.If the content
mode
is ContentMode.HTML the description is displayed as HTML in tooltips or directly in certain components so care should be taken to avoid creating the possibility for HTML injection and possibly XSS vulnerabilities.Parameters:
description
- the new description string for the component.mode
- the content mode for the descriptionSince:
8.0
-
getParent
public HasComponents getParent()
Description copied from interface:
Component
Gets the parent component of the component.
Components can be nested but a component can have only one parent. A component that contains other components, that is, can be a parent, should usually inherit the
ComponentContainer
interface.
-
setParent
public void setParent(HasComponents parent)
Description copied from interface:
Component
Sets the parent connector of the component.
This method automatically calls
Component.attach()
if the component becomes attached to the session, regardless of whether it was attached previously. Conversely, if the component currently is attached to the session,ClientConnector.detach()
is called for the connector before attaching it to a new parent.This method is rarely called directly.
ComponentContainer.addComponent(Component)
or aHasComponents
specific method is normally used for adding components to a parent and the used method will call this method implicitly.
-
findAncestor
public <T extends HasComponents> T findAncestor(Class<T> parentType)
Returns the closest ancestor with the given type.
To find the Window that contains the component, use
Window w = getParent(Window.class);
Type Parameters:
T
- The type of the ancestorParameters:
parentType
- The ancestor class we are looking forReturns:
The first ancestor that can be assigned to the given class. Null if no ancestor with the correct type could be found.
-
getErrorMessage
public ErrorMessage getErrorMessage()
Gets the error message for this component.
Returns:
ErrorMessage containing the description of the error state of the component or null, if the component contains no errors. Extending classes should override this method if they support other error message types such as validation errors or buffering errors. The returned error message contains information about all the errors.
-
getComponentError
public ErrorMessage getComponentError()
Gets the component's error message.
Returns:
the component's error message.
-
setComponentError
public void setComponentError(ErrorMessage componentError)
Sets the component's error message. The message may contain certain XML tags, for more information see
ErrorMessage
.Parameters:
componentError
- the newErrorMessage
of the component.
-
attach
public void attach()
Description copied from interface:
ClientConnector
Notifies the connector that it is connected to a VaadinSession (and therefore also to a UI).
The caller of this method is
Component.setParent(HasComponents)
if the parent is itself already attached to the session. If not, the parent will call theClientConnector.attach()
for all its children when it is attached to the session. This method is always called before the connector's data is sent to the client-side for the first time.The attachment logic is implemented in
AbstractClientConnector
.Specified by:
attach
in interfaceClientConnector
Specified by:
Overrides:
attach
in classAbstractClientConnector
-
detach
public void detach()
Description copied from class:
AbstractClientConnector
Notifies the connector that it is detached from its VaadinSession.
The caller of this method is
Component.setParent(HasComponents)
if the parent is in the session. When the parent is detached from the session it is its responsibility to callClientConnector.detach()
for each of its children.The
AbstractClientConnector.getSession()
andAbstractClientConnector.getUI()
methods might returnnull
after this method is called.Specified by:
detach
in interfaceClientConnector
Overrides:
detach
in classAbstractClientConnector
-
focus
protected void focus()
Sets the focus for this component if the component is
Component.Focusable
.
-
getState
protected AbstractComponentState getState()
Returns the shared state bean with information to be sent from the server to the client. Subclasses should override this method and set any relevant fields of the state returned by super.getState().
Overrides:
getState
in classAbstractClientConnector
Returns:
updated component shared state
Since:
7.0
-
getState
protected AbstractComponentState getState(boolean markAsDirty)
Description copied from class:
AbstractClientConnector
Returns the shared state for this connector.
Overrides:
getState
in classAbstractClientConnector
Parameters:
markAsDirty
- true if the connector should automatically be marked dirty, false otherwiseReturns:
The shared state for this connector. Never null.
See Also:
-
beforeClientResponse
public void beforeClientResponse(boolean initial)
Description copied from interface:
ClientConnector
Called before the shared state and RPC invocations are sent to the client. Gives the connector an opportunity to set computed/dynamic state values or to invoke last minute RPC methods depending on other component features.
Specified by:
beforeClientResponse
in interfaceClientConnector
Overrides:
beforeClientResponse
in classAbstractClientConnector
Parameters:
initial
-true
if the client-side connector will be created and initialized after this method has been invoked.false
if there is already an initialized client-side connector.
-
addListener
public Registration addListener(Component.Listener listener)
Description copied from interface:
Component
Registers a new (generic) component event listener for the component.
class Listening extends CustomComponent implements Listener { // Stored for determining the source of an event Button ok; Label status; // For displaying info about the event public Listening() { VerticalLayout layout = new VerticalLayout(); // Some miscellaneous component TextField name = new TextField("Say it all here"); name.addListener(this); layout.addComponent(name); // Handle button clicks as generic events instead // of Button.ClickEvent events ok = new Button("OK"); ok.addListener(this); layout.addComponent(ok); // For displaying information about an event status = new Label(""); layout.addComponent(status); setCompositionRoot(layout); } public void componentEvent(Event event) { // Act according to the source of the event if (event.getSource() == ok) getWindow().showNotification("Click!"); status.setValue( "Event from " + event.getSource().getClass().getName() + ": " + event.getClass().getName()); } } Listening listening = new Listening(); layout.addComponent(listening);
Specified by:
addListener
in interfaceComponent
Parameters:
listener
- the new Listener to be registered.Returns:
a registration object for removing this listener
See Also:
-
removeListener
@Deprecated public void removeListener(Component.Listener listener)
Deprecated.Description copied from interface:
Component
Removes a previously registered component event listener from this component.
Specified by:
removeListener
in interfaceComponent
Parameters:
listener
- the listener to be removed.See Also:
-
fireComponentEvent
protected void fireComponentEvent()
Emits the component event. It is transmitted to all registered listeners interested in such events.
-
fireComponentErrorEvent
protected void fireComponentErrorEvent()
Emits the component error event. It is transmitted to all registered listeners interested in such events.
-
setData
public void setData(Object data)
Sets the data object, that can be used for any application specific data. The component does not use or modify this data.
Parameters:
data
- the Application specific data.Since:
3.1
-
getData
public Object getData()
Gets the application specific data. See
setData(Object)
.Returns:
the Application specific data set with setData function.
Since:
3.1
-
getHeight
public float getHeight()
Description copied from interface:
Sizeable
Gets the height of the object. Negative number implies unspecified size (terminal is free to set the size).
-
getHeightUnits
public Sizeable.Unit getHeightUnits()
Description copied from interface:
Sizeable
Gets the height property units.
Specified by:
getHeightUnits
in interfaceSizeable
Returns:
units used in height property.
-
getWidth
public float getWidth()
Description copied from interface:
Sizeable
Gets the width of the object. Negative number implies unspecified size (terminal is free to set the size).
-
getWidthUnits
public Sizeable.Unit getWidthUnits()
Description copied from interface:
Sizeable
Gets the width property units.
Specified by:
getWidthUnits
in interfaceSizeable
Returns:
units used in width property.
-
setHeight
public void setHeight(float height, Sizeable.Unit unit)
Description copied from interface:
Sizeable
Sets the height of the object. Negative number implies unspecified size (terminal is free to set the size).
-
setSizeFull
public void setSizeFull()
Description copied from interface:
Sizeable
Sets the size to 100% x 100%.
Specified by:
setSizeFull
in interfaceSizeable
-
setWidthFull
public void setWidthFull()
Description copied from interface:
Sizeable
Sets the width to 100%.
Specified by:
setWidthFull
in interfaceSizeable
-
setHeightFull
public void setHeightFull()
Description copied from interface:
Sizeable
Sets the height to 100%.
Specified by:
setHeightFull
in interfaceSizeable
-
setSizeUndefined
public void setSizeUndefined()
Description copied from interface:
Sizeable
Clears any size settings.
Specified by:
setSizeUndefined
in interfaceSizeable
-
setWidthUndefined
public void setWidthUndefined()
Description copied from interface:
Sizeable
Clears any defined width.
Specified by:
setWidthUndefined
in interfaceSizeable
-
setHeightUndefined
public void setHeightUndefined()
Description copied from interface:
Sizeable
Clears any defined height.
Specified by:
setHeightUndefined
in interfaceSizeable
-
setWidth
public void setWidth(float width, Sizeable.Unit unit)
Description copied from interface:
Sizeable
Sets the width of the object. Negative number implies unspecified size (terminal is free to set the size).
-
setWidth
public void setWidth(String width)
Description copied from interface:
Sizeable
Sets the width of the component using String presentation. String presentation is similar to what is used in Cascading Style Sheets. Size can be length or percentage of available size. The empty string ("") or null will unset the width and set the units to pixels. See CSS specification for more details.
-
setHeight
public void setHeight(String height)
Description copied from interface:
Sizeable
Sets the height of the component using String presentation. String presentation is similar to what is used in Cascading Style Sheets. Size can be length or percentage of available size. The empty string ("") or null will unset the height and set the units to pixels. See CSS specification for more details.
-
readDesign
public void readDesign(org.jsoup.nodes.Element design, DesignContext designContext)
Description copied from interface:
Component
Reads the component state from the given design.
The component is responsible not only for updating its own state but also for ensuring that its children update their state based on the design.
It is assumed that the component is in its default state when this method is called. Reading should only take into consideration attributes specified in the design and not reset any unspecified attributes to their defaults.
This method must not modify the design.
Specified by:
readDesign
in interfaceComponent
Parameters:
design
- The element to obtain the state fromdesignContext
- The DesignContext instance used for parsing the design
-
setResponsive
public void setResponsive(boolean responsive)
Toggles responsiveness of this component.
Parameters:
responsive
- boolean enables responsiveness, false disablesSince:
7.5.0
-
isResponsive
public boolean isResponsive()
Returns true if the component is responsive.
Returns:
true if the component is responsive
Since:
7.5.0
-
setReadOnly
protected void setReadOnly(boolean readOnly)
Sets the read-only status in the state of this
AbstractComponent
. This method should be made public inComponents
that implementHasValue
.Parameters:
readOnly
- a boolean value specifying whether the component is put read-only mode or not
-
isReadOnly
protected boolean isReadOnly()
Returns the read-only status from the state of this
AbstractComponent
. This method should be made public inComponents
that implementHasValue
.Returns:
true
if state has read-only on;false
if notSee Also:
-
getCustomAttributes
protected Collection<String> getCustomAttributes()
Returns a collection of attributes that should not be handled by the basic implementation of the
readDesign(Element, DesignContext)
andwriteDesign(Element, DesignContext)
methods. Typically these are handled in a custom way in the overridden versions of the above methodsReturns:
the collection of attributes that are not handled by the basic implementation
Since:
7.4
-
writeDesign
public void writeDesign(org.jsoup.nodes.Element design, DesignContext designContext)
Description copied from interface:
Component
Writes the component state to the given design.
The component is responsible not only for writing its own state but also for ensuring that its children write their state to the design.
This method must not modify the component state.
Specified by:
writeDesign
in interfaceComponent
Parameters:
design
- The element to write the component state to. Any previous attributes or child nodes are not cleared.designContext
- The DesignContext instance used for writing the design
-
getActionManager
protected ActionManager getActionManager()
Gets the
ActionManager
used to manage theShortcutListener
s added to this component.Returns:
the ActionManager in use
-
addShortcutListener
public Registration addShortcutListener(ShortcutListener shortcut)
-
removeShortcutListener
@Deprecated public void removeShortcutListener(ShortcutListener shortcut)
Deprecated.
-
isOrHasAncestor
protected boolean isOrHasAncestor(Component content)
Determine whether a
content
component is equal to, or the ancestor of this component.Parameters:
content
- the potential ancestor elementReturns:
true
if the relationship holds
-
addContextClickListener
public Registration addContextClickListener(ContextClickEvent.ContextClickListener listener)
Description copied from interface:
ContextClickEvent.ContextClickNotifier
Adds a context click listener that gets notified when a context click happens.
Specified by:
addContextClickListener
in interfaceContextClickEvent.ContextClickNotifier
Parameters:
listener
- the context click listener to add, not nullReturns:
a registration object for removing the listener
See Also:
-
removeContextClickListener
@Deprecated public void removeContextClickListener(ContextClickEvent.ContextClickListener listener)
Deprecated.Description copied from interface:
ContextClickEvent.ContextClickNotifier
Removes a context click listener that was previously added with
ContextClickEvent.ContextClickNotifier.addContextClickListener(ContextClickListener)
.Specified by:
removeContextClickListener
in interfaceContextClickEvent.ContextClickNotifier
Parameters:
listener
- the context click listener to remove
-
setRequiredIndicatorVisible
protected void setRequiredIndicatorVisible(boolean visible)
Sets the visibility of the required indicator. NOTE: Does not apply for all components!.
If the component supports the required indicator (state extends
AbstractFieldState
), then expose this method andisRequiredIndicatorVisible()
aspublic
in the component and call this method.This method will throw a
IllegalStateException
if the component state (returned bygetState()
) does not inheritAbstractFieldState
.Parameters:
visible
-true
to make the required indicator visible,false
if notSince:
8.0
-
isRequiredIndicatorVisible
protected boolean isRequiredIndicatorVisible()
Checks whether the required indicator is visible or not. NOTE: Does not apply for all components!.
This method will throw a
IllegalStateException
if the component state (returned bygetState()
) does not inheritAbstractFieldState
.Returns:
true
if visible,false
if notSince:
8.0
See Also:
-
-