过滤器双击事件

在系统自带的过滤器组件中,随意双击过滤器中某处,可以获取到这个双击事件吗

你好,请参考下面的代码:

// 注意这里用 FilterImpl 实现类注入。而不是用 Filter 接口注入。
@Autowired
private FilterImpl filter;

@Autowired
private Notifications notifications;

@Subscribe
public void onAfterShow(AfterShowEvent event) {
    var groupBoxLayout = filter.getComposition(); // 获取 filter 的 GroupBox
    var jmixGrpbox = groupBoxLayout.unwrap(JmixGroupBox.class); // unwrap 之后才能添加 ClickListener
    jmixGrpbox.addClickListener((e)->{
        var mouseEventDetails = e.getMouseEventDetails();
        if(mouseEventDetails.isDoubleClick()){ // 检测是双击
            notifications.create(Notifications.NotificationType.TRAY)
                    .withDescription("double clicked")
                    .withHideDelayMs(1000)
                    .show();
            filter.setExpanded(!filter.isExpanded()); // 比如可以双击收起或者展开过滤器。
        }
    });
}
2 个赞

好的,谢谢