0

我将 gwt 与gwt-dnd一起使用 ,我想做以下事情:

1. Select rectangle area by dragging the mouse
2. Select all the elements that are in this area
3. drag all selected elements.

有什么想法吗?

4

3 回答 3

1

在 MouseDownEvent 上记录指针的坐标(event.getClientX() 和 eventGetClientY())。

在 MouseUpEvent 上做同样的事情。如果坐标不同,则您选择了一个矩形。

获取包含所有可选择的小部件或元素的小部件。循环遍历它的孩子。

将每个小部件的坐标与您的矩形进行比较(使用 getAbsoluteTop()、getAbdoluteLeft()、getOffsetHeight() 和 getOffsetWidth())。选择完全或部分位于所选区域内的小部件。

于 2012-09-27T00:21:44.243 回答
0

我想在 Andrei 的回答中补充一点,如果您通过在选择期间显示矩形来提供反馈,我们所做的就是将矩形显示为 com.google.gwt.user.client.ui.HTML 的实例,其样式显示边框. 这是使用 onMouseMove 和 setPixelSize 和 setWidgetPosition 更新的。

于 2012-09-27T07:27:24.783 回答
0

库 gwtquery-plugins 提供了 MultiSelect 功能,所以我会尝试一下。

gwtquery-插件

于 2012-10-02T14:15:51.813 回答