ScreenSettingsFacet
ScreenSettingsFacet
facet,保存用户对 可视化组件 的配置。
组件的 XML 名称:screenSettings
。
基本用法
ScreenSettingsFacet
在界面 XML 描述的 facets
元素中定义。
如需为界面的所有组件启用配置保存功能,可以设置 auto
为 true
:
<facets>
<screenSettings auto="true"/>
</facets>
可以只为特定组件启用配置保存功能,只需显式声明这些组件:
<facets>
<screenSettings id="settingsFacet">
<components>
<component id="carsTable"/>
</components>
</screenSettings>
</facets>
<layout expand="carsTable" spacing="true">
<groupTable id="carsTable"
width="100%"
dataContainer="carsDc">
<!-- ... -->
</groupTable>
</layout>
如果需要的话,也可以为特定组件禁用配置保存功能,只需设置其 enable
属性为 false
:
<facets>
<screenSettings id="settingsFacet" auto="true">
<components>
<component id="carsTable" enable="false"/>
</components>
</screenSettings>
</facets>
<layout expand="carsTable" spacing="true">
<groupTable id="carsTable"
width="100%"
dataContainer="carsDc">
<!-- ... -->
</groupTable>
</layout>
事件和处理器
如需使用 Jmix Studio 生成处理器的桩代码,需要在界面 XML 描述或者 Jmix UI 层级结构面板选中 facet 元素,然后用 Jmix UI 组件面板的 Handlers 标签页生成。 或者可以使用界面控制器顶部面板的 Generate Handler 按钮。 |
可以使用 ScreenSettingsFacet
代理对界面配置的生命周期做拦截处理。
ApplySettingsDelegate
该处理器支持在 AfterShowEvent 事件保存组件的状态。
@Autowired
private ScreenSettingsFacet settingsFacet;
@Autowired
private GroupTable<Car> carsTable;
@Install(to = "settingsFacet", subject = "applySettingsDelegate")
private void settingsFacetApplySettingsDelegate(ScreenSettingsFacet.SettingsContext settingsContext) {
settingsContext.getScreenSettings()
.getBoolean("carsTable", "visibility")
.ifPresent(visibility -> carsTable.setVisible(visibility));
settingsFacet.applySettings();
}
编程式用法,调用组件的 setApplySettingsDelegate()
方法。
ApplyDataLoadingSettingsDelegate
该处理器支持在 BeforeShowEvent 事件保存组件的状态。
编程式用法,调用组件的 setApplyDataLoadingSettingsDelegate()
方法。
本页是否有帮助?
感谢您的反馈