package Ġio . nac ular . do od le . datat r ansport . drag drop Ċ Ċ import Ġio . nac ular . do od le . core . View Ċ import Ġio . nac ular . do od le . datat r ansport . Data Bundle Ċ import Ġio . nac ular . do od le . datat r ansport . drag drop . Drag Operation . Action . Copy Ċ import Ġio . nac ular . do od le . datat r ansport . drag drop . Drag Operation . Action . Link Ċ import Ġio . nac ular . do od le . datat r ansport . drag drop . Drag Operation . Action . Move Ċ import Ġio . nac ular . do od le . drawing . Render able Ċ import Ġio . nac ular . do od le . event . Pointer Event Ċ import Ġio . nac ular . do od le . geometry . Point ĊĊ Ċ /** Ċ Ġ* ĠRepresents Ġthe Ġcharacteristics Ġof Ġdata Ġthat Ġis Ġtransferred Ġfrom Ġa Ġsource Ġto Ġa Ġtarget Ġduring Ġa Ġdrag - drop Ċ Ġ* Ġsequence . Ċ Ġ*/ Ċ public Ġinterface ĠDrag Operation Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġset Ġof Ġpossible Ġdrop Ġmodes Ġfor Ġthe Ġdata Ġin Ġ[ bundle ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ property ĠCopy ĠAn Ġindependent Ġcopy Ġis Ġgiven Ġto Ġthe Ġtarget ĊĠĠĠĠ Ġ* Ġ@ property ĠMove ĠThe Ġdata Ġis Ġmoved Ġfrom Ġsource Ġto Ġtarget ĊĠĠĠĠ Ġ* Ġ@ property ĠLink ĠThe Ġdata Ġis Ġlinked Ġso Ġthe Ġsource Ġand Ġtarget Ġshare Ġit ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġenum Ġclass ĠAction Ġ{ ĠCopy , ĠMove , ĠLink Ġ} ĊĊĠĠĠ Ġ/** ĠThe Ġdata Ġto Ġbe Ġdropped Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġbundle : ĠData Bundle ĊĊĠĠĠ Ġ/** ĠThe Ġbundle 's Ġvisual Ġrepresentation Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġvisual : ĠRender able ? Ġget () Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĠThe Ġoffset Ġ( relative Ġto Ġthe Ġpointer ) Ġwhere Ġthe Ġ[ visual ] Ġshould Ġbe Ġrendered Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġvisual Offset : ĠPoint Ġget () Ġ= ĠPoint . Origin ĊĊĠĠĠ Ġ/** ĠThe Ġset Ġof Ġallowed Ġdrop Ġactions Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġallowed Actions : ĠSet < Action > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIndicates Ġthat Ġthe Ġoperation Ġis Ġstarted . Ġ ĠThis Ġwill Ġbe Ġcalled Ġonce Ġthe Ġuser Ġbegins ĊĠĠĠĠ Ġ* Ġdragging Ġthe Ġpointer . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġstarted () Ġ{} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġthe Ġdrag Ġoperation Ġwas Ġsuccessfully Ġcompleted . Ġ ĠImplement ations Ġmust ĊĠĠĠĠ Ġ* Ġproperly Ġhandle Ġthe Ġ[ Action ] Ġto Ġensure Ġthat Ġdata Ġdropped Ġon Ġthe Ġtarget Ġis Ġcorrectly ĊĠĠĠĠ Ġ* Ġcopied , Ġmoved , Ġor Ġlinked . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġaction ĠThe Ġ[ Action ] Ġthat Ġwas Ġused Ġin Ġdropping Ġthe Ġbundle Ġonto Ġa Ġtarget ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġcompleted ( action : ĠAction ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġthe Ġdrag Ġoperation Ġwas Ġnot Ġcompleted Ġfor Ġsome Ġreason Ġ( i . e . Ġthe Ġuser Ġcanceled , ĊĠĠĠĠ Ġ* Ġor Ġthe Ġ[ Action ] Ġrequested Ġwas Ġnot Ġsupported Ġby Ġthis Ġoperation Ġor Ġthe Ġtarget Ġwhere Ġthe Ġdrop ĊĠĠĠĠ Ġ* Ġwas Ġattempted . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġcanceled () Ġ{} Ċ } Ċ Ċ /** Ċ Ġ* ĠDefines Ġhow Ġdrag Ġrecognition Ġworks Ġfor Ġ[ View ] s . Ġ ĠAdding Ġdrag Ġsupport Ġto Ġa Ġ[ View ] Ġrequires Ġregistering Ċ Ġ* Ġa ĠDrag Handler Ġthat Ġwill Ġdetermine Ġwhen Ġto Ġinitiate Ġa Ġ[ Drag Operation ] Ġin Ġresponse Ġto Ġa Ġ[ Pointer Event ]. Ċ Ġ*/ Ċ public Ġinterface ĠDrag Recognizer Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIn forms Ġthe Ġre cognizer Ġthat Ġa Ġdrag Ġgesture Ġhas Ġben Ġrecognized Ġand Ġgives Ġit Ġthe Ġopportunity ĊĠĠĠĠ Ġ* Ġto Ġinitiate Ġa Ġ[ Drag Operation ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġevent Ġthe Ġ[ Pointer Event ] Ġthat Ġinitiated Ġthe Ġdrag ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġ[ Drag Operation ] Ġto Ġbegin Ġdrag - drop , Ġor Ġ``` null ``` Ġto Ġignore ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġdrag Re cognized ( event : ĠPointer Event ): ĠDrag Operation ? Ċ } Ċ Ċ /** Ċ Ġ* ĠHelper Ġto Ġcreate Ġa Ġsimple Ġ[ Drag Recognizer ] Ġthat Ġdeleg ates Ġto Ġthe Ġgiven Ġ[ handler ]. Ċ Ġ* Ċ Ġ* Ġ@ param Ġhandler Ġthat Ġis Ġdeleg ated Ġto Ċ Ġ*/ Ċ public Ġinline Ġfun Ġdrag Re cognized ( cross inline Ġhandler : Ġ( event : ĠPointer Event ) Ġ-> ĠDrag Operation ?): ĠDrag Recognizer Ġ= Ġobject : ĠDrag Recognizer Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġdrag Re cognized ( event : ĠPointer Event ) Ġ= Ġhandler ( event ) Ċ }