我想在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的标头。
最佳答案
考虑使用Draggable
代替DragSource
,然后使用带有两个参数的构造函数。这样,您可以将标头指定为“ handle”参数。
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构造函数中进行更改。