UI-компоненты
Дополнение WebDAV включает UI-компоненты, облегчающие работу с документами WebDAV.
Чтобы добавить эти компоненты на экран, используйте Jmix Studio.
Нажмите Add Component на панели действий, затем введите webdav в поле поиска. В списке результатов выберите нужный компонент и дважды щелкните на нем.
Новый элемент будет добавлен как на панели структуры Jmix UI, так и в XML. Вы можете настраивать атрибуты, такие как id, height, width и т. д., так же, как это делается для других UI-компонентов.
<webdav:webdavDocumentUpload id="webdavDocumentField"
property="webdavDocument"
colspan="2"/>
Если вы не используете дизайнер экранов, объявите пространство имен webdav в XML-дескрипторе вашего экрана вручную:
<view xmlns="http://jmix.io/schema/flowui/view"
xmlns:webdav="http://jmix.io/schema/webdav/ui"
title="msg://webdavDocumentWrapperDetailView.title"
focusComponent="form">
Вы можете инжектировать UI-компонент в контроллер с помощью действия Inject to Controller на панели структуры Jmix UI:
Также вы можете воспользоваться кнопкой Inject на панели действий:
Чтобы компонент можно было инжектировать в контроллер, у него должен быть указан атрибут id.
|
Теперь вы можете программно взаимодействовать с UI-компонентом webDAV, обращаясь напрямую к его методам:
@ViewComponent
private WebdavDocumentUploadField webdavDocumentField;
@Subscribe
public void onInit(final InitEvent event) {
webdavDocumentField.setMaxFileSize(5242880);
}
WebdavDocumentLink
WebdavDocumentLink — UI-компонент, позволяющий пользователям открывать документы в настольных офисных приложениях. Кроме того, если поддерживается версионирование документа, пользователи могут просматривать все его версии.
Компонент предоставляет следующие возможности:
-
Открытие последней версии документа для просмотра и редактирования.
-
Открытие предыдущих версий документа в режиме только для чтения (подробнее см. Версии документов WebDAV).
В примере ниже WebdavDocumentLink будет отрендерен в левой колонке таблицы данных:
<dataGrid id="webdavDocumentWrappersDataGrid"
width="100%"
minHeight="20em"
dataContainer="webdavDocumentWrappersDc"
columnReorderingAllowed="true">
<columns resizable="true">
<column property="webdavDocument"/>
<column property="description"/>
<column key="lastModifiedBy" header="msg://column.lastModifiedBy"/>
<column key="lastModifiedDate" header="msg://column.lastModifiedDate"/>
<column property="department"/>
</columns>
</dataGrid>
Обработчик renderer создает и возвращает компонент WebdavDocumentLink:
@Supply(to = "webdavDocumentWrappersDataGrid.webdavDocument", subject = "renderer")
private Renderer<WebdavDocumentWrapper> webdavDocumentWrappersDataGridWebdavDocumentRenderer() {
return new ComponentRenderer<>( (1)
() -> uiComponents.create(WebdavDocumentLink.class), (2)
(link, wrapper) -> {
WebdavDocument webdavDocument = wrapper.getWebdavDocument();
if (webdavDocument != null) {
link.setWebdavDocument(webdavDocument);
}
});
}
| 1 | Метод возвращает объект Renderer, создающий UI-компонент для отображения в колонке. |
| 2 | Экземпляр компонента WebdavDocumentLink создается с помощью фабрики UiComponents. |
WebdavDocumentVersionLink
WebdavDocumentVersionLink позволяет открывать конкретную версию документа в настольных офисных приложениях в режиме только для чтения. Компонент отображает имя файла конкретной версии документа.
Чтобы создать WebdavDocumentVersionLink, используйте фабрику UiComponents.
WebdavDocumentVersionLink webdavDocumentVersionLink =
uiComponents.create(WebdavDocumentVersionLink.class);
webdavDocumentVersionLink.setWebdavDocumentVersion(documentVersion);
WebdavDocumentUploadField
Компонент WebdavDocumentUploadField специально предназначен для работы с документами.
Имя XML-компонента: webdavDocumentUpload.
Компонент предоставляет следующие возможности:
-
Загрузка файла для создания нового документа или новой версии существующего документа.
-
Открытие документа для просмотра или редактирования.
-
Скачивание последней или предыдущих версий документа.
-
Создание новых версий документа на основе существующих версий.
Режимы работы
Компонент работает в двух режимах:
-
Versioning Enabled: когда версионирование включено, компонент
WebdavDocumentUploadFieldотображается без каких-либо ограничений. -
Versioning Disabled: когда версионирование отключено, компонент
WebdavDocumentUploadFieldне отображает ссылку на последнюю версию документа.