1. 用 WebDAV 文档创建知识库
现在我们实现 Onboarding 应用程序的一个核心功能:创建一个知识库管理系统。
文件和文档由系统中的 WebdavDocumentWrapper
实体表示。实体中包含 WebdavDocument
的引用,这是文档的描述(由扩展组件提供),以及文档归属部门实体的引用。具有管理员权限的用户可以通过专门的视图管理文档列表,包括创建、修改或删除。主要的功能点有:
-
WebdavDocumentWrapper
实体,与WebdavDocument
和Department
实体关联。 -
实体对应的数据库表。
-
实体的 CRUD 视图。
创建 WebdavDocumentWrapper 实体
首先我们创建 WebdavDocumentWrapper
实体。
入门教程的 2. 简单的增删改查 部分有创建实体的详细介绍。 |
在 Jmix 工具窗口中,点击 New()→ JPA Entity。在 Class 字段输入 WebdavDocumentWrapper
。
WebdavDocumentWrapper
实体有以下属性:
-
description
-String
类型。 -
department
-Department
类型。 -
webdavDocument
-WebdavDocument
类型:
切换到底部的 Text tab 可以看到由设计器生成的实体类源码:
创建 CRUD 视图
现在为 WebdavDocumentWrapper
实体创建 CRUD 视图。
点击实体设计器的顶部操作面板的 Views → Create view。
向导的第一步中,选择 Entity list and detail views
模板。点击 Next。
后续两步中,使用推荐的设置即可。
在 Entity list view fetch plan 步骤中,添加 webdavDocument
和 department
属性:
这样可以确保 WebdavDocument
和 Department
的实体引用能与根实体 WebdavDocumentWrapper
一同加载并显示在列表视图中。
如果一个属性不在 fetch plan 中,Studio 不会在生成的视图中为该属性创建可视化组件。 |
点击 Next。
在 Entity detail view fetch plan 步骤中,这些属性会自动添加。点击 Next。
Localizable messages 步骤中,修改列表视图的本地化消息值为 Knowledge base
,并点击 Create。
Studio 会自动生成两个视图:WebdavDocumentWrapper.list
和 WebdavDocumentWrapper.detail
,并且打开其对应的源码。
运行应用程序
创建实体和 CRUD 视图后,我们可以运行应用程序并查看新添加的功能。 点击主工具栏的 Debug()按钮
在启动应用程序之前,Studio 会将项目数据模型与数据库结构进行比较。在创建新实体后,Studio 会自动生成 Liquibase changelog,以反映相关的数据库修改情况(例如创建 WEBDAV_DOCUMENT_WRAPPER
表):
点击 Save and run。
Studio 会在数据库上执行 changelog,然后构建和运行应用程序。
应用程序启动并运行后,使用浏览器打开 http://localhost:8080
,然后用 admin/admin
登录。
从主菜单中选择 Knowledge base
。打开 Webdav document wrapper.list
视图。点击 Create 打开 Webdav document wrappers.detail
视图。除了文件描述的文本控件外,还可以看到有 Department
和 Webdav document
实体选择器。
可以点击选择器控件中的省略号按钮来选择 WebDAV 文档。此时会打开由扩展组件提供的 WebDAV 文档 视图窗口。从 WebDAV 文档的表格中选择一行,或上传新的文档,然后向下滚动可以看到 Select 按钮:
选择了文档后,点击 Select。选择器控件会显示 WebDAV 文档的 id:
点击 OK。WebDAV 文档的 id 也会显示在表格中:
可以看到,在这个阶段处理 WebDAV 文档并不是很方便。将文档上传到应用程序需要很多步骤,上传后,我们只能看到文档标识符,而看不到任何有关文档的其他信息。在下一节中,我们将利用扩展组件提供的 UI 组件,并改善 Knowledge Base 视图的 UI。
总结
在本节中,我们创建了应用程序的基本功能:知识库管理系统。
我们了解到:
-
WebDAV 扩展组件提供
WebdavDocument
实体,用以表示 WebDAV 文档。通过该实体可以使用 Microsoft Word 和 Excel 等外部应用程序编辑和查看文档、管理文档版本,以及控制特定文档的访问权限。 -
默认情况下,在详情视图中使用 entityPicker 组件选择实体的引用。单击 WebDAV document 控件的省略号按钮将打开扩展组件提供的标准 WebDAV 文档视图。