3.5.2.5. API компонентов
- Доступно для всех визуальных компонентов
-
-
unwrap()
- возвращает экземпляр компонента для текущего типа клиента (компонент Vaadin или Swing). Можно использовать в клиентском модуле для доступа к API базового компонента, см. раздел Работа с компонентами Vaadin.com.vaadin.ui.TextField vTextField = textField.unwrap(com.vaadin.ui.TextField.class);
-
unwrapComposition()
- возвращает экземпляр самого внешнего контейнера для текущего типа клиента. Можно использовать в клиентском модуле для доступа к API базового компонента.
-
- Buffered
-
-
commit()
- обновляет источник данных, сохраняя все изменения, внесённые после последнего коммита.
-
discard()
- отменяет все изменения, внесённые после последнего коммита. Значение компонента обновляется из источника данных.
-
isModified()
- возвращаетtrue
, если значение компонента изменилось с момента последнего обновления из источника данных.
if (textArea.isModified()) { textArea.commit(); }
Доступно для компонентов:
-
- Collapsable
-
-
addExpandedStateChangeListener()
- добавляет слушатель, реализующий интерфейсExpandedStateChangeListener
, для отслеживания событий сворачивания/разворачивания компонента.@Subscribe("groupBox") protected void onGroupBoxExpandedStateChange(Collapsable.ExpandedStateChangeEvent event) { notifications.create() .withCaption("Expanded: " + groupBox.isExpanded()) .show(); }
Доступно для компонентов:
-
- ComponentContainer
-
-
add()
- добавляет дочерний компонент в контейнер.
-
remove()
- удаляет дочерний компонент из контейнера.
-
removeAll()
- удаляет все дочерние компоненты из контейнера.
-
getOwnComponent()
- возвращает компонент, вложенный непосредственно в этот контейнер.
-
getComponent()
- возвращает компонент, находящийся где-либо внутри дерева компонентов в этом контейнере.
-
getComponentNN()
- возвращает компонент, находящийся где-либо внутри дерева компонентов в этом контейнере, и выбрасывает исключение, если компонент не найден.
-
getOwnComponents()
- возвращает список всех компонентов, вложенных непосредственно в этот контейнер.
-
getComponents()
- возвращает список всех компонентов, находящихся где-либо внутри дерева компонентов в этом контейнере.
Доступно для компонентов:
Accordion - BoxLayout - CssLayout - FieldGroup - Form - Frame - GridLayout - GroupBoxLayout - HtmlBoxLayout - ScrollBoxLayout - SplitPanel - TabSheet
-
- OrderedContainer
-
-
indexOf()
- возвращает индекс компонента внутри упорядоченного контейнера.
Доступно для компонентов:
BoxLayout - CssLayout - Frame - GroupBoxLayout - ScrollBoxLayout -
-
- HasContextHelp
-
-
setContextHelpText()
- задаёт текст контекстной подсказки для компонента, см. атрибут contextHelpText. -
setContextHelpTextHtmlEnabled()
- указывает, может ли текст контекстной подсказки быть обработан как HTML, см.атрибут contextHelpTextHtmlEnabled. -
setContextHelpIconClickHandler()
- добавляет слушатель кликов по значку контекстной подсказки. Слушатель имеет приоритет над текстом подсказки, таким образом, контекстная подсказка с текстом не будет отображаться, если также установлен слушатель кликов по значку подсказки.
textArea.setContextHelpIconClickHandler(contextHelpIconClickEvent -> dialogs.createMessageDialog() .withCaption("Title") .withMessage("Message body") .withType(Dialogs.MessageType.CONFIRMATION) .show() );
Доступно для большинства компонентов:
Accordion - BoxLayout - BrowserFrame - ButtonsPanel - Calendar - CheckBox - CheckBoxGroup - ColorPicker - CssLayout - CurrencyField - DataGrid - DateField - DatePicker - Embedded - FieldGroup - FileUploadField - Filter - Form - GridLayout - GroupBoxLayout - GroupTable - HtmlBoxLayout - Image - JavaScriptComponent - Label - LookupField - LookupPickerField - MaskedField - OptionsGroup - OptionsList - PasswordField - PickerField - PopupView - ProgressBar - RadioButtonGroup - RichTextArea - ScrollBoxLayout - SearchPickerField - SourceCodeEditor - SplitPanel - SuggestionField - SuggestionPickerField - Table - TabSheet - TextArea - TextField - TimeField - TokenList - Tree - TreeDataGrid - TreeTable - TwinColumn
-
- HasSettings
-
-
applySettings()
- восстанавливает последние пользовательские настройки для этого компонента. -
saveSettings()
- сохраняет текущие пользовательские настройки для этого компонента.
Доступно для компонентов:
DataGrid - Filter - GroupBoxLayout - SplitPanel - Table - TextArea
-
- HasUserOriginated
-
-
isUserOriginated()
- предоставляет информацию о происхождении события. Возвращаетtrue
, если событие было вызвано пользователем на стороне клиента, илиfalse
, если событие было вызвано программно на стороне сервера.Пример использования:
@Subscribe("customersTable") protected void onCustomersTableSelection(Table.SelectionEvent<Customer> event) { if (event.isUserOriginated()) notifications.create() .withCaption("You selected " + event.getSelected().size() + " customers") .show(); }
Метод
isUserOriginated()
доступен для следующих событий:-
CollapseEvent
компонента TreeDataGrid, -
ColumnCollapsingChangeEvent
компонента DataGrid, -
ColumnReorderEvent
компонента DataGrid, -
ColumnResizeEvent
компонента DataGrid, -
ExpandedStateChangeEvent
компонентов Filter и GroupBoxLayout (см. Collapsable), -
ExpandEvent
компонента TreeDataGrid, -
SelectedTabChangeEvent
компонента TabSheet, -
SelectionEvent
компонента DataGrid, -
SelectionEvent
компонента Table, -
SortEvent
компонента DataGrid, -
SplitPositionChangeEvent
компонента SplitPanel, -
ValueChangeEvent
компонентов, реализующих интерфейсHasValue
(см. ValueChangeListener).
-
- HasValue
-
-
addValueChangeListener()
- добавляет слушатель, реализующий интерфейсValueChangeListener
, для отслеживания изменения значения компонента.@Inject private TextField<String> textField; @Inject private Notifications notifications; @Subscribe protected void onInit(InitEvent event) { textField.addValueChangeListener(stringValueChangeEvent -> notifications.create() .withCaption("Before: " + stringValueChangeEvent.getPrevValue() + ". After: " + stringValueChangeEvent.getValue()) .show()); }
С той же целью вы можете подписаться на событие изменения значения конкретного компонента в контроллере экрана, к примеру:
@Subscribe("textField") protected void onTextFieldValueChange(HasValue.ValueChangeEvent<String> event) { notifications.create() .withCaption("Before: " + event.getPrevValue() + ". After: " + event.getValue()) .show(); }
См. также UserOriginated.
Доступно для компонентов:
CheckBox - CheckBoxGroup - ColorPicker - CurrencyField - DateField - DatePicker - FileUploadField - Label - LookupField - LookupPickerField - MaskedField - OptionsGroup - OptionsList - PasswordField - PickerField - ProgressBar - RadioButtonGroup - RichTextArea - SearchPickerField - SourceCodeEditor - SuggestionField - SuggestionPickerField - TextArea - TextField - TimeField - TokenList - TwinColumn -
-
- LayoutClickNotifier
-
-
addLayoutClickListener()
- добавляет слушатель, реализующий интерфейсLayoutClickListener
, для отслеживания кликов по области компонента.vbox.addLayoutClickListener(layoutClickEvent -> notifications.create() .withCaption("Clicked") .show());
С той же целью вы можете подписаться на событие клика по конкретному компоненту, к примеру:
@Subscribe("vbox") protected void onVboxLayoutClick(LayoutClickNotifier.LayoutClickEvent event) { notifications.create() .withCaption("Clicked") .show(); }
Доступно для компонентов:
-
- HasMargin
-
-
setMargin()
- устанавливает компоненту внешние поля.-
Добавление внешних полей со всех сторон компонента:
vbox.setMargin(true);
-
Добавление внешних полей только в верхней и нижней части компонента:
vbox.setMargin(true, false, true, false);
-
Создание объекта конфигурации
MarginInfo
:vbox.setMargin(new MarginInfo(true, false, false, true));
-
-
getMargin()
- возвращает конфигурацию внешних полей в виде экземпляраMarginInfo
.
Доступно для компонентов:
BoxLayout - Filter - Frame - GridLayout - ScrollBoxLayout
-
- HasOuterMargin
-
-
setOuterMargin()
- устанавливает внешние поля вокруг границы компонента.-
Добавление внешних полей со всех сторон компонента:
groupBox.setOuterMargin(true);
-
Добавление внешних полей только в верхней и нижней части компонента:
groupBox.setOuterMargin(true, false, true, false);
-
Создание объекта конфигурации
MarginInfo
:groupBox.setOuterMargin(new MarginInfo(true, false, false, true));
-
-
getOuterMargin()
- возвращает конфигурацию внешних полей в виде экземпляраMarginInfo
.
Доступно для компонентов:
-
- HasSpacing
-
-
setSpacing()
- добавляет внутренние поля между компонентом и вложенными в него компонентами.vbox.setSpacing(true);
Доступно для компонентов:
-
- ShortcutNotifier
-
-
addShortcutAction()
- добавляет действие, вызываемое при нажатии определённого сочетания клавиш.cssLayout.addShortcutAction(new ShortcutAction("SHIFT-A", shortcutTriggeredEvent -> notifications.create() .withCaption("SHIFT-A action") .show()));
Доступно для компонентов:
-