0

我想在 FramedPanel 中包含 Grid 并使用 gxt dnd。
但是如果我在 DragSource 中添加 FramedPanel:

DragSource source = new DragSource(framedPanel) {
              @Override
              protected void onDragStart(DndDragStartEvent event) {
                super.onDragStart(event);
                event.setData(framedPanel);


              }
            };


当我单击并按住 Grid 时,DnD 起作用。我对 DnD 的处理方式仅适用于 FramedPanel 的标题。

4

1 回答 1

1

考虑使用Draggable而不是DragSource,然后使用带有两个参数的构造函数。这样,您可以将标头指定为“句柄”参数。

Draggable draggable = new Draggable(framedPanel, framedPanel.getHeader());
//assuming GXT 3, just guessing from your post
draggable.addDragStartHandler(new DragStartHandler() {
  public void onDragStart(DragStartEvent event) {
    //...
  }
});

如果您必须使用 DragSource,请将其子类化以替换 Draggable 实例,并按照上面指定的方式创建一个新实例,并在现有 DragSource 构造函数中进行更改。

于 2013-07-31T03:58:39.877 回答