button
Компонент button позволяет пользователю запускать действие.
XML-элемент |
|
|---|---|
Java-класс |
|
Основы
Кнопка может отображать текст, значок или оба элемента. Всплывающая подсказка задаётся атрибутом title.
<button id="helloButton"
text="Say hello!"
title="Click me!"/>
<button id="saveButton1"
text="Save"
icon="ARCHIVE"/>
<button id="saveButton2"
title="Save"
icon="ARCHIVE"/>
Использование Action
Используйте атрибут action, чтобы связать кнопку с существующим действие. Кнопка автоматически отображает текст действия, значок, включенное и видимое состояния и вызывает действие при нажатии.
Для действия экрана укажите в action его идентификатор. Для действия другого компонента используйте формат <componentId>.<actionId>.
<actions>
<action id="someAction"
text="Click me!"/>
</actions>
<layout>
<button action="someAction"/>
</layout>
Кнопка с программным действием
Действие можно создать в Java и назначить кнопке методом setAction(). Оно задаёт текст кнопки и операцию, которая выполняется при нажатии.
<button id="buttonAction"/>
@ViewComponent
protected JmixButton buttonAction;
@Autowired
protected Notifications notifications;
@Subscribe
protected void onInit(InitEvent event) {
buttonAction.setAction(
new BaseAction("action")
.withText("Click me!")
.withHandler(actionPerformedEvent -> notifications.show("Action performed"))
);
}
Кнопка с изображением
Значок кнопки может быть компонентом, например image. В следующем примере загружается изображение и присваивается его кнопке с помощью метода setIcon().
<button id="logoButton" themeNames="icon"/>
private static final String LOGO_SRC_PATH = "/META-INF/resources/icons/jmix-logo.png";
@ViewComponent
private JmixButton logoButton;
@Subscribe
public void onInit(InitEvent event) {
Image logo = new Image(DownloadHandler.forClassResource(getClass(), LOGO_SRC_PATH), "jmix-logo");
logo.setWidth("100px");
logoButton.setIcon(logo);
}
Варианты
Используйте атрибут themeNames, чтобы применить один или несколько вариантов темы.
| Вариант | Описание | Поддерживается в |
|---|---|---|
|
Применяет основной стиль кнопки. |
Aura, Lumo |
|
Применяет стиль успеха. |
Aura, Lumo |
|
Применяет стиль предупреждения. |
Aura, Lumo |
|
Применяет стиль ошибки. |
Aura, Lumo |
|
Применяет контрастный стиль. |
Lumo |
|
Увеличивает размер кнопки. |
Aura, Lumo |
|
Уменьшает размер кнопки. |
Aura, Lumo |
|
Уменьшает отступы вокруг значка. |
Aura, Lumo |
|
Применяет стиль кнопки с меньшим визуальным акцентом. |
Aura, Lumo |
|
Применяет встроенный стиль кнопки для использования внутри текстового содержимого. |
Lumo |
Атрибуты
button имеет следующие уникальные атрибуты:
| Имя | Описание | По умолчанию |
|---|---|---|
|
Связывает кнопку с действием экрана или компонента. См. Кнопка с декларативным действием. |
— |
Отключает кнопку сразу после нажатия, чтобы предотвратить повторную отправку. Чтобы снова включить кнопку, вызовите |
|
|
Устанавливает значок, отображаемый кнопкой. |
— |
|
Помещает значок после текста кнопки. |
|
|
Управляет обработкой пробелов и разрывов строк в тексте кнопки. |
|
button имеет следующие общие атрибуты:
id - alignSelf - ariaLabel - ariaLabelledBy - autofocus - classNames - css - enabled - focusShortcut - height - maxHeight - maxWidth - minHeight - minWidth - tabIndex - text - themeNames - title - visible - width
Обработчики
button имеет следующие уникальные обработчики:
| Имя | Описание |
|---|---|
Запускается, когда пользователь нажимает кнопку. Чтобы зарегистрировать обработчик программно, используйте метод |
|
Запускается, когда пользователь дважды нажимает кнопку в течение короткого интервала. |
|
Запускается после небольшой задержки, когда определяется, что щелчок не является частью двойного щелчка. |
button имеет следующие общие обработчики:
Элементы
Компонент button может содержать следующие вложенные элементы: icon, prefix and suffix, и tooltip.