UI Components

WebdavDocumentLink is a UI component that allows users to open documents in desktop office applications. Also, if versioning is supported for a document, a user can see all versions of a document.

ui webdav document link

The component has the following functionality:

  • Opening the latest version of a document for viewing and editing.

  • Opening previous document versions in read-only mode (for more details, see WebDAV Document Versions).

In the example below, WebdavDocumentLink is created for the docLink generated column of the table component:

<groupTable id="contractsTable"
        <column id="number"/>
        <column id="docLink"

The columnGenerator handler creates and returns the WebdavDocumentLink component:

protected UiComponents uiComponents;

@Install(to = "contractsTable.docLink", subject = "columnGenerator")
protected Component contractsTableDocLinkColumnGenerator(Contract contract) {
    WebdavDocumentLink link = uiComponents.create(WebdavDocumentLink.class)
            .withWebdavDocument(contract.getDocument()); (1)
    link.setIsShowVersion(false); (2)
    return link;
1 The withWebdavDocument() method accepts the document instance for which to generate the link.
2 Using the setIsShowVersion() method, you can manage the version link visibility. By default, the vesrion link is shown if versioning is enabled for the document.

WebdavDocumentVersionLink enables opening a particular document version in desktop office applications in the read-only mode. The component displays a file name of a certain document version.

ui webdav document version link

To create WebdavDocumentVersionLink, use the UiComponents factory.

WebdavDocumentVersionLink webdavDocumentVersionLink =


WebdavDocumentUploadField is designed to work with documents.

Component XML name: webdavDocumentUpload.

The component has the following functionality:

  • Uploading a file to create a new document or a document version.

  • Opening a document for viewing or editing.

  • Downloading the latest or preceding document versions.

  • Creating new document versions based on previous ones.

Work Modes

The component works in the following two modes:

  • If versioning is enabled, WebdavDocumentUploadField is displayed without any restrictions.

  • If versioning is disabled, WebdavDocumentUploadField does not show a link to the latest document version.

Declarative Creation

To declare the WebdavDocumentUploadField component in a screen XML descriptor, first add a namespace with the http://jmix.io/schema/webdav/ui URI to it. Then use this namespace with the component element, for example:

<window xmlns="http://jmix.io/schema/ui/window"
    <layout spacing="true" expand="editActions">
        <form id="form" dataContainer="contractDc">
            <column width="350px">
                <webdav:webdavDocumentUpload id="documentField"

WebdavDocumentUploadField extends SingleFileUploadField and inherits all its properties:

Programmatic Usage

WebdavDocumentUploadField has the API similar to FileStorageUploadField.

Using FileMultiUploadField

The below example shows how to create WebDAV documents from files uploaded using FileMultiUploadField:

protected FileMultiUploadField fileMultiUploadFieldVersioned;
protected TemporaryStorage temporaryStorage;
protected WebdavDocumentsManagementService webdavDocumentsManagementService;
protected Notifications notifications;

protected void onInit(InitEvent event) {
    fileMultiUploadFieldVersioned.addQueueUploadCompleteListener(e -> {
        for (Map.Entry<UUID, String> entry :
                fileMultiUploadFieldVersioned.getUploadsMap().entrySet()) {
            UUID fileId = entry.getKey();
            String fileName = entry.getValue();

            FileRef fileRef = temporaryStorage.putFileIntoStorage(fileId, fileName); (1)

            webdavDocumentsManagementService.createVersioningDocumentByFileRef(fileRef); (2)
                .withCaption("Uploaded files: " +

    fileMultiUploadFieldVersioned.addFileUploadErrorListener(e ->
                    .withCaption("File upload error")
1 Save file to the file storage.
2 Create and save WebdavDocument.