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())); 
Доступно для компонентов:
 -