tokenlist的ValueChangeListener用法求助

cuba-platform

#1

社区的各位好,我有一个问题想请教一下。
我新建了三个实体类分别是A,AB,B,我创建了一个主从表的界面,想来维护它们之间的关系。

其中打上红框的《添加》按钮是tokenList的simple模式下的add按钮,点下它,我打开的是B的screen,选中一组B后,我希望在AB表中添加对应的记录。
所以我希望了解如何使用tokenlist的ValueChangeListener监听,来达到这样的效果。


#2

TIM%E5%9B%BE%E7%89%8720190421155132


#3

不是很明白你的意思,不过看起来不是复杂的功能,你有看过官方示例吗?建议先从基础的示例学习起。


#4

或者你可以提供一个简单的测试项目到GitHub,我们可以看看


#5

官方例子地址:https://demo.cuba-platform.com/sampler/#main/0/sample?id=simple-mode-tokenlist

官方的例子我看过,他也是有A,AB,B三种类型,它的界面也是显示的A和AB,但是它的tokenlist(对象选择器)打开的是AB类型的选择器界面,这样他选出来的AB对象可以不做任何转换直接放到界面的AB对象显示区域去。


我的需求是tokenlist(对象选择器)打开的是B类型的选择器界面,选择了B之后,产生相关的AB对象,然后放到界面的AB对象显示区域去,就是我主贴里的AB区域。
所以我尝试在tokenlist的ValueChange里去根据所选的B,用代码产生对应的AB,然后赋值到界面上去,但是我发现官方推荐的两种监听事件的方式都没起到效果。
(ps:后面还有补图,我的账号一次只能发一张图)


#6

这是tokenlist的ValueChange事件


#7

这是官方推荐的两种监听事件的方式


#8

你好,
参考一下这个:


#9
    @Subscribe("tokenList")
    private void onTokenListValueChange(HasValue.ValueChangeEvent<Collection<String>> event) {
        log.info(event.toString());
    }

注意范型参数是 Collect<String>,建议用 Studio 的 Subscribe to event 功能: