UI 组件
WebDAV 扩展组件包括处理 WebDAV 文档的 UI 组件。
要在视图中添加这些组件,请使用 Jmix Studio。
点击操作面板中的 Add Component,然后在搜索栏中输入 webdav
。从结果列表中,选择所需的组件并双击。
<webdav:webdavDocumentUpload id="webdavDocumentField"
property="webdavDocument"
colspan="2"/>
如果你不使用视图设计器,可以在 XML 中手动声明 webdav
命名空间:
<view xmlns="http://jmix.io/schema/flowui/view"
xmlns:webdav="http://jmix.io/schema/webdav/ui"
title="msg://webdavDocumentWrapperDetailView.title"
focusComponent="form">
可以使用 Jmix UI 结构面板中的 Inject to Controller 操作将 UI 组件注入控制器:
或者,可以用操作面板的 Inject 按钮注入:
对于需要注入控制器的组件,必须设置 id 属性。
|
然后可以在控制器中,直接以编程的方式与 WebDAV UI 组件交互:
@ViewComponent
private WebdavDocumentUploadField webdavDocumentField;
@Subscribe
public void onInit(final InitEvent event) {
webdavDocumentField.setMaxFileSize(5242880);
}
WebdavDocumentLink
WebdavDocumentLink
是一个 UI 组件,支持用户在桌面 office 应用程序中打开文档。另外,如果文档具有版本,则用户可以看到文档的所有版本。
组件有下列功能:
-
查看或编辑文档的最新版本。
-
以只读模式打开文档的之前版本(参阅 WebDAV 文档版本)。
下面的示例中,WebdavDocumentLink
将在数据网格的第一列中 渲染:
<dataGrid id="webdavDocumentWrappersDataGrid"
width="100%"
minHeight="20em"
dataContainer="webdavDocumentWrappersDc"
columnReorderingAllowed="true">
<columns resizable="true">
<column property="webdavDocument"/>
<column property="description"/>
<column property="lastModifiedBy"/>
<column property="lastModifiedDate"/>
</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 | 用 UiComponents 工厂创建 WebdavDocumentLink 组件。 |
WebdavDocumentVersionLink
WebdavDocumentVersionLink
支持以只读方式在桌面 Office 软件打开特定的文档版本。组件展示特定文档版本的文件名。
用 UiComponents
工厂创建 WebdavDocumentVersionLink
组件。
WebdavDocumentVersionLink webdavDocumentVersionLink =
uiComponents.create(WebdavDocumentVersionLink.class);
webdavDocumentVersionLink.setWebdavDocumentVersion(documentVersion);
本页是否有帮助?
感谢您的反馈