微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Vaadin14 自定义网格拖放

如何解决Vaadin14 自定义网格拖放

我有一个带有层次结构的 TreeGrid,我想为其添加拖放功能

我的问题是,我只想要两种类型的元素是可拖动的,并且只能将它们放入这两种类型和根元素中。

到目前为止,我只能通过在元素是不同类型的元素时返回 dragStartEvent 来设法只允许拖动这些元素。

但是当它是一个网格时,我如何自定义允许的 dropTargets?

现在用户可以将元素放在任何其他网格元素上,如果 dropTarget 不是所需的类型,我唯一能做的就是显示错误消息,但这不是一个好的解决方案,他们应该在拖动时看到不能在那里放置的物品。

解决方法

网格有一个拖放过滤器,您可以使用它来决定是拖放还是拖放。

void    setDragFilter(SerializablePredicate<T> dragFilter)
Sets the drag filter for this drag source.

void    setDropFilter(SerializablePredicate<T> dropFilter)
Sets the drop filter for this drag target.

请查看文档 https://vaadin.com/components/vaadin-grid/java-examples/drag-and-drop

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。