Платформа включает в себя две готовые темы: Halo и Havana. Приложение будет по умолчанию использовать ту из них, которая указана
в свойстве приложения cuba.web.theme. Пользователь может выбрать другую доступную тему в стандартном экране -> . Если вы не хотите, чтобы пользователи имели возможность сами выбирать тему, зарегистрируйте экран settings
в файле web-screens.xml проекта с параметром changeThemeEnabled = false
:
<screen id="settings" template="/com/haulmont/cuba/web/app/ui/core/settings/settings-window.xml"> <param name="changeThemeEnabled" value="false"/> </screen>
При использовании существующих тем можно настроить некоторые параметры фирменного стиля (branding): пиктограммы и заголовки
окна логина и главного окна, пиктограмму вебсайта favicon.ico
. Для этого необходимо выполнить следующее:
-
Создайте следующую файловую структуру внутри каталога
modules/web
проекта:themes/ havana/ branding/ myapp-login.png myapp-menu.png favicon.ico
Здесь
havana
- каталог с именем используемой темы,favicon.ico
- пиктограмма вебсайта,myapp-login.png
- изображение для окна логина,myapp-menu.png
- изображение для главного окна. -
В CUBA Studio откройте -> и нажмите кнопку внизу страницы. Используя ссылки и задайте путь к файлам пиктограмм соответственно главного окна и окна логина. Путь указывается относительно каталога темы. Остальные ссылки служат для задания заголовков окон и текста приглашения окна логина.
Данные параметры сохраняются в главном пакете сообщений модуля gui (то есть в файле
modules/gui/<root_package>/gui/messages.properties
и его вариантах для разных локалей). Использование пакетов сообщений дает возможность использовать разные файлы изображений для разных локалей пользователей. Пример содержимого файлаmessages.properties
:application.caption = MyApp application.logoImage = branding/myapp-menu.png loginWindow.caption = MyApp Login loginWindow.welcomeLabel = Welcome to MyApp! loginWindow.logoImage = branding/myapp-login.png
Путь к
favicon.ico
указывать не нужно, он должен обязательно находится в корне каталога с именем темы.
В существующую тему можно также добавить файлы изображений для использования в свойствах icon действий и визуальных компонентов, например Button.
Например, чтобы добавить в тему Havana пиктограмму, достаточно в описанный выше каталог modules/web/themes/havana
добавить файл изображения (желательно в некоторый подкаталог):
themes/ havana/ images/ address-book.png
После этого можно использовать эту пиктограмму, указывая в свойстве icon
путь к ней относительно каталога темы:
<action id="adresses" icon="images/address-book.png"/>
Вместо файлов изображений для пиктограмм можно использовать элементы шрифта Font Awesome. Для этого достаточно указать в свойстве icon
имя нужной константы перечисления com.vaadin.server.FontAwesome
с префиксом font-icon:
, например:
<action id="adresses" icon="font-icon:BOOK"/>
В проекте можно заменить изображения, используемые в стандартных действиях и экранах платформы. Для замены пиктограммы темы
Havana достаточно положить в каталог modules/web/themes/havana/icons
проекта нужный файл изображения. Например, для замены пиктограммы стандартного действия create
это будет файл с именем create.png
(имя файла легко определить по URL соответствующего HTML-элемента img
в работающем приложении):
themes/ havana/ icons/ create.png
В теме Halo по умолчанию (при включенном свойстве приложения cuba.web.useFontIcons) пиктограммы стандартных действий и экранов платформы загружаются из шрифта Font Awesome. В этом случае заменить стандартную пиктограмму можно только создав свою тему на базе Halo (см. далее) и задав в файле <your_theme>-theme.properties
нужное соответствие между именем пиктограммы и именем элемента шрифта, например:
cuba.web.icons.create.png = PLUS
При выключенном свойстве cuba.web.useFontIcons
пиктограммы стандартных действий и экранов платформы для темы Halo загружаются так же, как и для темы Havana - из файлов
изображений в подкаталоге icons
. Поэтому их можно заменить описанным для Havana способом.
Тема Halo поддерживает свойство приложения cuba.web.useInverseHeader, управляющее цветом заголовка приложения. По умолчанию это свойство установлено в true
, что задает темный (инверсный) заголовок. В проекте можно не изменяя темы сделать заголовок светлым, установив данное свойство
в false
.