我想创建以下工作流程:
有两种类型的盒子(A和B)和两种类型的篮子(C和D)。
两种类型的框都可以拖放到基于C的框中。
但是只能将类型A的框拖放到D中。
我想在DropTargetListener中的dragEnter事件期间检测框的类型(A或B),以便可以将光标更改为DROP_NONE。
但是现在我所能做的就是在实际的掉落事件中检测到它,然后在与篮筐不兼容时将其丢弃。
请指导我如何解决此问题。
注意:我正在使用SWT org.eclipse.swt.dnd框架。
片段:
我想做这样的事情:
public void dragEnter (DropTargetEvent e)
{
Box b = e.getSource // this is the part I need help with
if(b.type == 'B')
e.detail = DROP_NONE;
}
最佳答案
您可以创建一个静态变量来保留当前拖动源。
您在dragStart
中设置它,并在dragFinished
中将其为空。
然后在dragEnter
和其他事件中使用它进行评估。