Hi,
I have a problem with draggable elements :
I have a panel draggable which contains a Html element draggable too.
This 2 elements can be drag into a second panel with a drop target.
When I drag the panel 1 into the panel 2 : OK
But When I drag the html element into the panel 2, The dragSource of the panel 1 is executed (dragsource of html too) and The drop target received the panel 1, never the html element.
I create a little example :
Code:
Window w = new Window();
w.setSize(600,400);
w.setResizable(false);
w.setBodyBorder(false);
w.setLayout(new FitLayout());
LayoutContainer globalPanel = new LayoutContainer();
globalPanel.setLayout(new ColumnLayout());
final ContentPanel panel1 = new ContentPanel();
panel1.setSize(290, 400);
panel1.setBodyBorder(true);
panel1.setHeaderVisible(true);
panel1.setHeading("Panel1 draggable");
DragSource source = new DragSource(panel1) {
@Override
protected void onDragStart(DNDEvent event) {
event.setData(panel1);
event.getStatus().update(El.fly(panel1.getElement()).cloneNode(true));
}
};
final Html html = new Html("Html draggable");
DragSource dragSource = new DragSource(html){
@Override
protected void onDragStart(DNDEvent event) {
event.setData(html);
event.getStatus().update(El.fly(html.getElement()).cloneNode(true));
}
};
panel1.add(html);
ContentPanel panel2 = new ContentPanel();
panel2.setBodyBorder(true);
panel2.setSize(290, 400);
panel2.setHeading("Panel2 Drop Zone");
DropTarget target = new DropTarget(panel2) {
@Override
protected void onDragDrop(DNDEvent event) {
super.onDragDrop(event);
if(event.getData() instanceof Html)
{
Info.display("Drop!", "Html dropped");
}
else if(event.getData() instanceof ContentPanel)
{
Info.display("Drop!", "ContentPanel dropped");
}
}
};
globalPanel.add(panel1);
globalPanel.add(panel2);
w.add(globalPanel);
w.show();
Anybody can help me please?
Thank you for advance