Label
Надпись (Label
) − это текстовый компонент, отображающий статический текст либо значение атрибута сущности.
XML-имя компонента: label
.
Простой Label
Пример использования:
<label value="Simple label"/>
Атрибут value
предназначен для задания текста надписи.
Текст, содержащийся в атрибуте value
, будет разбит на несколько строк, если по длине он превысит значение атрибута width
. Поэтому для отображения многострочной надписи, достаточно указать абсолютное значение атрибута width
. Если текст надписи слишком длинный, а значение атрибута width
не определено, то текст будет урезан.
<label value="Label, which should be split into multiple lines"
width="200px"/>
Динамический Label
Параметры надписи можно задать в контроллере экрана. Для этого необходимо задать компоненту идентификатор, по которому получить ссылку на него в контроллере:
<label id="dynamicLabel"/>
@Autowired
private Label<String> dynamicLabel;
@Subscribe
protected void onInit(InitEvent event) {
dynamicLabel.setValue("Some value");
}
Label, связанный с данными
Компонент Label
может отображать значение атрибута сущности. Для этого используются атрибуты dataContainer
и property
. Например:
<data>
<instance id="customerDc"
class="ui.ex1.entity.Customer"/>
</data>
<layout>
<label align="MIDDLE_CENTER"
dataContainer="customerDc"
property="firstName"/>
</layout>
В данном случае компонент отображает атрибут name
сущности Customer
, находящейся в контейнере данных customerDc
.
HTML-контент
Атрибут htmlEnabled
указывает, каким образом будет рассматриваться значение атрибута value
: при htmlEnabled="true"
– как HTML-код, иначе – как строка.
Атрибут htmlSanitizerEnabled разрешает или запрещает санитизацию HTML. Если атрибуты htmlEnabled
и htmlSanitizerEnabled
установлены в true
, то значение атрибута value
будет санитизировано.
@Autowired
private Label<String> htmlLabel;
private static final String UNSAFE_HTML = "<i>Jackdaws </i><u>love</u> " +
"<font size=\"javascript:alert(1)\" " +
"color=\"moccasin\">my</font> " +
"<font size=\"7\">big</font> <sup>sphinx</sup> " +
"<font face=\"Verdana\">of</font> <span style=\"background-color: " +
"red;\">quartz</span><svg/onload=alert(\"XSS\")>";
@Subscribe
protected void onInit(InitEvent event) {
htmlLabel.setHtmlEnabled(true);
htmlLabel.setHtmlSanitizerEnabled(true);
htmlLabel.setValue(UNSAFE_HTML);
}
Предопределенные стили
К компоненту Label
можно применить предопределенные стилис помощью атрибута stylename
или в XML-дескрипторе или контроллере экрана:
<label value="Colored label"
stylename="colored"/>
@Autowired
private Label<String> styledLabel;
@Subscribe
protected void onInit(InitEvent event) {
styledLabel.setStyleName("bold");
}
-
bold
- жирный шрифт. Подходит для выделения важных текстовых элементов UI. -
colored
- цветной текст. -
failure
- стиль сообщения об ошибке. Добавляет рамку вокруг компонента и значок рядом с текстом. Используется как уведомление рядом с другим компонентом. -
h1
- стиль основных заголовков приложения. -
h2
- стиль заголовков разделов приложения. -
h3
- стиль подзаголовков. -
h4
- стиль подзаголовков. -
light
- облегченный шрифт. Подходит для выделения второстепенных текстовых элементов UI. -
spinner
- стиль спиннера. Используйте для пустых компонентов Label, чтобы создать спиннер. -
success
- стиль сообщения об успешном выполнении. Добавляет рамку вокруг компонента и значок рядом с текстом. Используется как уведомление рядом с другим компонентом.
События и слушатели
Чтобы сгенерировать заглушку слушателя в Jmix Studio, выберите компонент в XML-дескрипторе экрана или на панели иерархии Jmix UI и используйте вкладку Handlers на панели инспектора Jmix UI. В качестве альтернативы вы можете воспользоваться кнопкой Generate Handler на верхней панели контроллера экрана. |
Formatter
Добавляет экземпляр formatter в компонент.
В приведенном ниже примере показано использование formatter
для надписи formattedLabel1
:
@Install(to = "formattedLabel", subject = "formatter")
protected String formattedLabelFormatter(String value) {
return value.toUpperCase();
}
Чтобы добавить formatter программно, используйте метод компонента setFormatter()
.
ValueChangeEvent
См. ValueChangeEvent.
XML-атрибуты Label
Просматривать и редактировать атрибуты, применимые к компоненту, можно с помощью панели инспектора Jmix UI в конструкторе экранов Studio. |
align - colspan - contextHelpText - contextHelpTextHtmlEnabled - css - dataContainer - description - descriptionAsHtml - box.expandRatio - height - htmlEnabled - htmlSanitizerEnabled - icon - id - property - rowspan - stylename - visible - width