Перейти к содержанию

StylePack

Редактируемая тема с переиспользуемыми правилами, привязками виджетов, токенами и анимациями.

Обзор

StylePack одновременно является Theme и редактируемой моделью таблицы стилей. Соберите его в Java или загрузите полный XML <StylePack>, затем установите в UI-контекст. Именованные определения выбираются по типу виджета, style-классу, явному style id или прямой привязке типа виджета.

Порядок разрешения

Сначала применяются токены темы, затем fallback pack-а, привязанное базовое определение и подходящие селекторы или явные style-правила. Подходящие определения накладываются в порядке добавления: более позднее правило перекрывает раннее независимо от специфичности селектора. Возвращаемые карты и списки являются снимками.

Сборка style pack в Java

StylePack pack = StylePack.create("app")
        .tokens(ThemeTokens.defaults())
        .put(StyleDefinition.of("button.primary", primaryStyle)
                .target(Button.STYLE_TYPE)
                .styleClass("primary"));
context.theme(pack);

Загрузка style pack из XML

<StylePack id="app">
  <Style id="button.primary" target="button" class="primary">
    <Setter property="background" value="#365df5"/>
    <State name="hovered">
      <Setter property="background" value="#4b70ff"/>
    </State>
  </Style>
</StylePack>

API

Создание и парсинг

Метод Описание
create(String) Создаёт пустой style pack с нормализованным id.
from(String) Парсит полный XML <StylePack> со встроенными свойствами.
copy() Создаёт независимую редактируемую копию со всеми правилами и переопределениями состояний.

StylePack::create(String)

create(String)

Создаёт пустой style pack с нормализованным id.

Параметр Тип Описание
id String Id pack-а; null или пустое значение превращается в style-pack.

Возвращает StylePack: Новый изменяемый style pack.

StylePack::from(String)

from(String)

Парсит полный XML <StylePack> со встроенными свойствами.

Параметр Тип Описание
xml String Полный XML-документ StylePack.

Возвращает StylePack: Разобранный изменяемый style pack.

StylePack::copy()

Копировать style pack

Создаёт независимую редактируемую копию со всеми правилами и переопределениями состояний.

Возвращает StylePack: Независимая изменяемая копия этого style pack.

Правила стилей

Метод Описание
put(StyleDefinition) Добавляет или заменяет одно именованное определение стиля.
bind(String, String) Привязывает тип стиля виджета к id базового определения.

StylePack::put(StyleDefinition)

put(StyleDefinition)

Добавляет или заменяет одно именованное определение стиля.

Параметр Тип Описание
definition StyleDefinition Неизменяемое определение, сохраняемое по id.

Возвращает StylePack: Тот же style pack для fluent-конфигурации.

Исключения:

  • NullPointerException: Определение равно null.

StylePack::bind(String, String)

bind(String, String)

Привязывает тип стиля виджета к id базового определения.

Параметр Тип Описание
widgetType String Тип стиля виджета; wildcard обновляет id fallback-стиля.
styleId String Id определения; пустое значение удаляет привязку.

Возвращает StylePack: Тот же style pack для fluent-конфигурации.

Preset-ы анимаций

Метод Описание
putAnimation(StyleAnimationDefinition) Добавляет или заменяет один именованный preset анимации.

StylePack::putAnimation(StyleAnimationDefinition)

putAnimation(StyleAnimationDefinition)

Добавляет или заменяет один именованный preset анимации.

Параметр Тип Описание
animation StyleAnimationDefinition Определение анимации, сохраняемое по id.

Возвращает StylePack: Тот же style pack для fluent-конфигурации.

Исключения:

  • NullPointerException: Определение анимации равно null.

Разрешение

Метод Описание
resolveStyleFor(String, String, Collection) Разрешает все активные слои стилей для одного виджета.

StylePack::resolveStyleFor(String, String, Collection)

resolveStyleFor(String, String, Collection)

Разрешает все активные слои стилей для одного виджета.

Параметр Тип Описание
widgetType String Тип стиля виджета.
widgetStyleId String Явный style id виджета или пустая строка.
styleClasses Collection Style-классы виджета; null трактуется как пустая коллекция.

Возвращает Style: Неизменяемый итоговый стиль от низшего к высшему приоритету.