import Ġcom . art emis . Base System Ċ import Ġcom . art emis . annotations . Wire Ċ import Ġjava . awt . event . MouseEvent Ċ import Ġjava . awt . event . Mouse Listener Ċ import Ġjava . awt . event . Mouse Motion Adapter Ċ import Ġjavax . swing . event . Mouse Input Adapter Ċ Ċ class ĠMouse Input System : ĠBase System () Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġsk iko Rendering System : ĠSk iko Rendering System ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdrag Component : ĠDrag Component ĊĊĠĠĠ Ġoverride Ġfun Ġinitialize () Ġ{ ĊĠĠĠĠĠĠĠ Ġsk iko Rendering System . sk ia Layer . add Mouse Listener ( object Ġ: ĠMouse Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmouse Clicked ( p 0 : ĠMouseEvent ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmouse Pressed ( p 0 : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag Component . mouse Pressed X Ġ= Ġp 0 . x ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag Component . mouse Pressed Y Ġ= Ġp 0 . y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag Component . button Ġ= Ġp 0 . button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmouse Released ( p 0 : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag Component . mouse Pressed X Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag Component . mouse Pressed Y Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag Component . button Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmouse Entered ( p 0 : ĠMouseEvent ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmouse Exit ed ( p 0 : ĠMouseEvent ) Ġ{} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġsk iko Rendering System . sk ia Layer . add Mouse Motion Listener ( object Ġ: ĠMouse Input Adapter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmouse Drag ged ( e : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag Component . mouse Pressed X Ġ= Ġe . x ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag Component . mouse Pressed Y Ġ= Ġe . y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag Component . button Ġ= Ġe . button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmouse Released ( e : ĠMouseEvent ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag Component . mouse Pressed X Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag Component . mouse Pressed Y Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag Component . button Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġprocess System () Ġ{ Ġ} Ċ }