【问题标题】:Best way to implement a Drag and Drop List in GWT在 GWT 中实现拖放列表的最佳方法
【发布时间】:2012-12-03 10:41:44
【问题描述】:

我希望通过拖放来实现一个简单的列表以重新排序列表。不过,将来我可能还想在我的 CMS 中添加更多 DnD 功能。

我在搜索中遇到了 3 个选项

由于 GWT 多年来一直在发展,并且我发现了很多关于实现 DnD 主题的旧文章,我想知道在 GWT (2.5 )

【问题讨论】:

标签: java gwt


【解决方案1】:

如果您可以使用 GWT 中实现的“本机”支持,我建议坚持使用此功能。

优点:

  • 速度快,不需要额外的库

问题

我将gwt-dnd 用于具有大量浮动窗口/面板的复杂 UI(类似于桌面环境)。 如果您受到 HTML5 功能或浏览器支持的限制,我推荐它。

【讨论】:

  • 因为它是一个内部 CMS - 我们基本上可以决定浏览器。您还会提到哪些限制?
  • 我需要在目标区域添加/拖动新元素时调整一些 DOM 元素的大小/重新定位。这是不可能的,因为 HTML5 的工作方式是通过传递数据 (event.dataTransfer)。 DnD 的 js 库帮助了我,因为这些直接与 DOM 节点的交互(实际上是在拖动事件期间移动元素。 - 这就是为什么这比 HTML5 慢)。想象一个由嵌套的 SplitLayoutPanels 构建的复杂仪表板,它会根据拖动悬停位置自动计算元素的位置。就像现代 IDE 用于控制台/搜索/概览等的位置面板一样
【解决方案2】:

如果 GWT 2.4 功能支持暂时清除了您的清单,您可以保持简单。

1) 它肯定比任何其他第三方的东西都快。

2) 如果遇到错误,您可以随时轻松更新到最新的 GWT,而不必等待第三方更新。

3) 如果您确实需要一些附加功能,那么您可以尝试其他两个选项。它们维护得很好,并随着 GWT 一起发展。您只需确保完成性能分析以涵盖您的用例。

【讨论】:

  • JavaDocs 中让我担心的一件事是:) *

    * 实验性 API:此 API 仍在开发中 * 并受制于改变。 *

  • 同意。它有点风险。您可以通过在代码中编写一层薄薄的包装器来减轻它的影响,以将您正在使用的拖放支持隐藏在其余代码和使用您的 api 的任何其他主体中。密切关注 gwt 贡献者小组的讨论和 gwt 源代码,以查看是否有任何进展。
【解决方案3】:

我推荐drag and drop plugin of Gwtquery。它支持许多开箱即用的 dnd 功能,还支持带有单元格小部件的 dnd。

查看示例:http://gwtquery-plugins.googlecode.com/svn/branches/droppable_1_0/demo/GwtSimpleSample/GwtSimpleSample.html

【讨论】:

    猜你喜欢
    • 2014-09-24
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多