我正在尝试实施一个拖拉机放下我的项目。 我已经管理过,但现在我想区分拖动源。
我将有两个小部件,我可以拖动,可以拨打widget1
和widget2
:
widget1.getElement().setDraggable(Element.DRAGGABLE_TRUE);
widget2.getElement().setDraggable(Element.DRAGGABLE_TRUE);
我为每个人做了处理程序
widget1.addDragStartHandler(new DragStartHandler() {
@Override
public void onDragStart(DragStartEvent event) {
// TODO Auto-generated method stub
event.setData("text", "i am widget1");
});
widget2.addDragStartHandler(new DragStartHandler() {
@Override
public void onDragStart(DragStartEvent event) {
// TODO Auto-generated method stub
event.setData("text", "the text is different i am widget2");
现在我有两个绝对面板,一个只能从小部件1接收,另一个小部件2从小部件2
接收pNorth.addDomHandler(new DropHandler() {
@Override
public void onDrop(DropEvent event) {
if(widget1){
// Prevent the native text drop.
event.preventDefault();
// Get the data out of the event.
String text= event.getData("text");
pNorth.getElement().getStyle().setBackgroundImage("url("+text+")");
}}
}, DropEvent.getType());
我怎么能设法做到这一点?
感谢您的帮助。
答案 0 :(得分:1)
drop事件似乎不包含有关源元素的信息。
因此,您必须使用event.setData("source", "some info about current widget");
来区分已拖动的元素。信息可以是任意的,可以是widget1.getClass().getName()
或其他任何允许区分拖动哪种窗口小部件的信息。
注意:"source"
标记是任意的,当然,您可以使用任何适合您的标记。
答案 1 :(得分:0)
我最近参与了一项名为GWT DND(Drag& Drop)的工作。它在这些情况下非常有用。这是链接
http://code.google.com/p/gwt-dnd/
<强>演示强>
http://allen-sauer.com/com.allen_sauer.gwt.dnd.demo.DragDropDemo/DragDropDemo.html