3.5.2.2.3. ButtonsPanel
ButtonsPanel
is a container that streamlines the use and placement of the components (usually, buttons) for data management in a table.
XML-name of the component: buttonsPanel
.
A sample definition of ButtonsPanel
in screen XML-descriptor:
<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
element can be located either inside a table
, or in any other place of a screen.
If the buttonsPanel
is located in a table
, it is combined with the table’s rowsCount component thus using vertical space more effectively. Additionally, if a lookup screen is opened using Frame.openLookup()
(for example, from the PickerField component) the buttons panel becomes hidden.
The caption of |
alwaysVisible
attribute disables panel hiding in a lookup screen when it is opened by Frame.openLookup()
. If the attribute value is true
, the buttons panel is not hidden. By default, the attribute value is false
.
By default, buttons in the buttonsPanel
are placed horizontally with line wrapping. If there is not enough space in a line, the buttons that do not fit will be displayed in the next line.
You can change the default behavior to display buttonsPanel
in one row:
-
Create a theme extension or a custom theme.
-
Define the SCSS variable
$cuba-buttonspanel-flow
:$cuba-buttonspanel-flow: false
Clicks on the buttonsPanel
area can be intercepted with the help of the LayoutClickListener
interface.
You can use keyboard shortcuts in ButtonsPanel
. Set the shortcut and the action to be performed using the addShortcutAction()
method:
buttonsPanel.addShortcutAction(new ShortcutAction("SHIFT-A", shortcutTriggeredEvent ->
notifications.create()
.withCaption("SHIFT-A action")
.show()
));
- Attributes of buttonsPanel
-
align - alwaysVisible - caption - captionAsHtml - contextHelpText - contextHelpTextHtmlEnabled - css - description - descriptionAsHtml - enable - box.expandRatio - height - htmlSanitizerEnabled - id - stylename - visible - width
- API