View Full Version : cancel drop event
fother
20 Feb 2009, 11:22 AM
I select one item and drag.. but when I will drop I need validate if can...
If I use e.doit = false, but don't work.. any suggest?
final TreeDragSource source = new TreeDragSource(binder);
source.addDNDListener(new DNDListener() {
@Override
public void dragStart(DNDEvent e) {
TreeItem item = tree.findItem(e.getTarget());
item.setLeaf(true);
if (item != null && item == tree.getRootItem().getItem(0) && tree.getRootItem().getItemCount() == 1) {
e.doit = false;
e.status.setStatus(false);
return;
}
super.dragStart(e);
}
@Override
public void dragDrop(DNDEvent e) {
e.doit = false;
e.status.setStatus(false);
}
});
shermdog01
20 Feb 2009, 11:44 AM
I'm doing something similar to this but am using dragEnter on the target.
Here is an example from my app which prevents a duplicate item from being dropped into my list. (It's been sanitized a bit..)
myTarget.addDNDListener(new DNDListener() {
public void dragEnter(DNDEvent e) {
e.doit = false;
//Prevent duplicate entries
if (myList.getItemCount() > 0){
ModelData smd = view.getSelectionModel().getSelectedItem();
for(int i = 0; i < myList.getItemCount(); i++){
ModelData md = myStore.getAt(i);
if(smd.get("Id").equals(md.get("Id"))){
System.out.println("Match!");
//break;
return;
}
}
} else {
e.doit = true;
}
e.doit = true;
}
});
fother
25 Feb 2009, 3:48 AM
thanks for your reply.. but don't work for me..
final TreeDropTarget target = new TreeDropTarget(binder);
target.setAllowSelfAsSource(true);
target.setFeedback(Feedback.BOTH);
target.setAutoExpand(false);
target.addDNDListener(new DNDListener() {
@Override
public void dragEnter(DNDEvent e) {
e.doit = false;
e.status.setStatus(false);
}
});
fother
25 Feb 2009, 6:46 AM
I need for example that in this example http://www.extjs.com/explorer/#reorderingtree I can't add items in "Misc" item.
fother
25 Feb 2009, 9:47 AM
this method is called when the cursor pass into a node..
final TreeDropTarget target = new TreeDropTarget(binder) {
@Override
protected void handleAppend(DNDEvent event, TreeItem item) {
boolean test = false;
if (test) {
super.handleAppend(event, item);
} else {
event.doit = false;
event.status.setStatus(false);
return;
}
}
};
martyphee
3 Jun 2009, 5:55 AM
I'm looking for a way to do this also. How can I prompt a user for a confirmation and if they select No stop the DND event. Where should this be done. I haven't been able to find the correct location to do this.
Powered by vBulletin® Version 4.1.5 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.