3.5.2.2.3. ButtonsPanel
ButtonsPanel
- контейнер, унифицирующий использование и размещение компонентов (чаще всего кнопок) для управления данными в таблице.
XML-имя компонента: buttonsPanel
.
Пример описания ButtonsPanel
в XML-дескрипторе экрана:
<table id="customersTable" dataContainer="customersDc" width="100%">
<actions>
<action id="create" type="create"/>
<action id="edit" type="edit"/>
<action id="remove" type="remove"/>
<action id="excel" type="excel"/>
</actions>
<columns>
<column id="name"/>
<column id="email"/>
</columns>
<rowsCount/>
<buttonsPanel id="buttonsPanel" alwaysVisible="true">
<button id="createBtn" action="customersTable.create"/>
<button id="editBtn" action="customersTable.edit"/>
<button id="removeBtn" action="customersTable.remove"/>
<button id="excelBtn" action="customersTable.excel"/>
</buttonsPanel>
</table>
Элемент buttonsPanel
можно разместить как внутри table
, так и в произвольном месте экрана.
Если buttonsPanel
находится внутри table
, то она комбинируется с компонентом rowsCount таблицы, тем самым оптимально расходуя место по вертикали. Кроме того, в этом случае при открытии экрана выбора методом Frame.openLookup()
(например, из компонента PickerField) панель кнопок скрывается.
Значение атрибута |
Атрибут alwaysVisible
служит для отключения скрытия панели в экране выбора при его открытии методом Frame.openLookup()
. Если значение атрибута равно true
, то панель с кнопками не скрывается. По умолчанию значение атрибута равно false
.
По умолчанию кнопки в компоненте buttonsPanel
расположены горизонтально с переносом вниз. При недостатке места по горизонтали кнопки, которые не помещаются, будут перенесены на следующую строку.
Для того чтобы кнопки не переносились на следующую строку, пользователь может изменить поведение по умолчанию:
-
Создать расширение темы или новую тему.
-
Определить переменную SCSS
$cuba-buttonspanel-flow
:$cuba-buttonspanel-flow: false
События щелчка по области компонента buttonsPanel
можно отслеживать с помощью интерфейса LayoutClickListener
.
В компоненте ButtonsPanel
можно использовать горячие клавиши. Задать сочетание клавиш и вызываемое действие можно с помощью метода addShortcutAction()
:
buttonsPanel.addShortcutAction(new ShortcutAction("SHIFT-A", shortcutTriggeredEvent ->
notifications.create()
.withCaption("SHIFT-A action")
.show()
));
- Атрибуты buttonsPanel
-
align - alwaysVisible - caption - captionAsHtml - contextHelpText - contextHelpTextHtmlEnabled - css - description - descriptionAsHtml - enable - box.expandRatio - height - htmlSanitizerEnabled - id - stylename - visible - width
- API