3.5.17.1. Использование ресурсов WebJar

Данный метод позволяет использовать различные JavaScript-библиотеки, упакованные в JAR-файлы и развёрнутые в Maven Central. Для подключения библиотеки к приложению требуется следующее:

  • Добавить зависимость в метод compile модуля web:

    compile 'org.webjars.bower:jrcarousel:1.0.0'
  • Создать в проекте модуль web-toolkit.

  • Создать класс клиентского виджета GWT и реализовать в нём native JSNI метод для создания компонента.

  • Создать класс серверного компонента с аннотацией @WebJarResource.

    Аннотация может использоваться только с наследниками ClientConnector (которые обычно являются классами компонентов UI в модуле web-toolkit).

    Значение аннотации @WebJarResource, или определение ресурса, можно указать в одном из двух форматов:

    1. <webjar_name>:<sub_path>, например:

      @WebJarResource("pivottable:plugins/c3/c3.min.css")
    2. <webjar_name>/<resource_version>/<webjar_resource>, например:

      @WebJarResource("jquery-ui/1.12.1/jquery-ui.min.js")

    Оно может содержать одно или более строковых определений ресурсов WebJar:

    @WebJarResource({
            "jquery-ui:jquery-ui.min.js",
            "jquery-fileupload:jquery-fileupload.min.js",
            "jquery-fileupload:jquery-fileupload.min.js"
    })
    public class CubaFileUpload extends CubaAbstractUploadComponent {
        ...
    }

    Указывать версию WebJar не нужно, так как согласно стратегии управления версиями Maven будет автоматически использован WebJar с самым большим номером версии.

    Дополнительно можно указать путь к каталогу внутри VAADIN/webjars/, из которого должны подгружаться статические ресурсы. В такой каталог вы можете сами помещать новые версии ресурсов, и они будут автоматически переопределять используемые WebJar. Для указания каталога используйте свойство overridePath аннотации @WebJarResource, к примеру:

    @WebJarResource(value = "pivottable:plugins/c3/c3.min.css", overridePath = "pivottable")
  • Добавить новый компонент к экрану.