在我的DragSourceListener中,我接收DragSourceEvent類型的事件,它具有源小部件,但不包含目標小部件。如何使用Eclipse拖放獲取源部件和目標部件
在我的ViewerDropAdapter中,我收到DropTargetEvent類型的事件,它具有目標小部件,但不包含源小部件。
確認是否支持拖放功能的一部分取決於源小部件和目標小部件。
我該怎麼做驗證,涉及源和目標部件?
在我的DragSourceListener中,我接收DragSourceEvent類型的事件,它具有源小部件,但不包含目標小部件。如何使用Eclipse拖放獲取源部件和目標部件
在我的ViewerDropAdapter中,我收到DropTargetEvent類型的事件,它具有目標小部件,但不包含源小部件。
確認是否支持拖放功能的一部分取決於源小部件和目標小部件。
我該怎麼做驗證,涉及源和目標部件?
如果您只想在您自己的控件之間拖動,您可以使用自己的org.eclipse.swt.dnd.Transfer
類型,其中包含您需要的任何額外信息(可能基於ByteArrayTransfer
)。
Eclipse LocalSelectionTransfer
做了一些這樣的事情,讓選擇可以在控件之間拖動。
在你試圖拖動和相同的瀏覽器中刪除一個小部件(如試圖重新排序通過拖放等元素),你可以使用getSelectedObject()和getCurrentTarget情況下() ViewerDropAdapter中的方法。
getSelectedObject() - 在查看器中返回選定的對象,這是被拖動的源元素。
getCurrentTarget() - 將鼠標懸停在查看器上方時返回目標對象,這將成爲放置後的目標。
您也可以重寫這些方法以滿足您的需求。
您可以驗證validateDrop()中的源對象和目標對象,以檢查是否允許拖放。請注意,目標對象在validateDrop()中默認可用。
validateDrop(Object target, int operation, TransferData transferType)