在Gwt中,有2个不同的包(或2个选项)用于执行drag n Drop?哪一个更好?

时间:2013-04-27 08:54:53

标签: gwt drag-and-drop

我对Gwt中的Drag n Drop知之甚少。我在互联网上搜索了似乎有2个不同的包(或2个选项)用于执行drag n Drop https://code.google.com/p/gwtquery-plugins/wiki/DragAndDropPluginForGWTDeveloppers

&安培;

https://code.google.com/p/gwt-dnd/source/browse/DragDrop/

为什么Google针对DnD开发了两种不同的策略?哪一个更好?

1 个答案:

答案 0 :(得分:3)

GWT拖放实施基于HTML5 D&D API。此类API基本上允许您使用本机拖放功能传输数据。这意味着您可以从浏览器外部拖动内容。简化,您需要设置一个拖动元素,一个放置目标和DataTransfer对象,它将保存要传输的实际数据。我想它也可以用来通过创建和销毁(在DOMdragstart上)来模拟应用中dragend元素(例如小部件)的拖放,但其目的是不同的。

由于这个API相当新,不是每个浏览器本身都支持它。见http://caniuse.com/dragndrop。另请参阅此video及其presentation以帮助您入门。

另一方面gwt-dnd意味着在应用程序中拖放小部件。因此,您可以开箱即用。此外,此库不是由Google直接开发的(尽管其作者为该公司工作/编辑)。请参阅其wikishowcase

另一个相对较新的库,是plugin的拖放GwtQuery。 GwtQuery是一个类似jQuery的GWT库,它的d& d支持是通过以前的插件。它还支持单元小部件之间的d& d。见其showcase。同样在这种情况下,这样的库旨在为本机GWT小部件提供d& d功能。