ScreenSettingsFacet
ScreenSettingsFacet
facet,保存用户对 可视化组件 的设置。
组件的 XML 名称:screenSettings
。
基本用法
ScreenSettingsFacet
在界面 XML 描述的 facets
元素中定义。
如需为界面的所有组件启用设置保存功能,可以设置 auto
为 true
:
<facets>
<screenSettings auto="true"/>
</facets>
如需只需为特定组件启用启用设置保存功能,可以按下面示例配置 facet:
<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>
事件和处理器
如需使用 Jmix Studio 生成处理器的桩代码,需要在界面 XML 描述或者 Component Hierarchy 面板选中 facet 元素,然后用 Component Inspector 面板的 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()
方法。