/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠV ital iy ĠZ ar ub in Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . key gen qt . scre ener . components . drawing Ċ Ċ import Ġcom . key gen qt . scre ener . utils . COLOR _ BORDER Ċ import Ġjava . awt . Basic Stroke Ċ import Ġjava . awt . Graphics 2 D Ċ import Ġjava . awt . Point Ċ import Ġjava . awt . Rectangle Ċ import Ġjava . awt . event . MouseEvent Ċ import Ġjava . awt . event . Mouse Listener Ċ import Ġjava . awt . event . Mouse Motion Listener Ċ import Ġjavax . swing . Swing Utilities Ċ Ċ class ĠDraw ing Rectangle ( ĊĠĠĠ Ġprivate Ġval Ġmove : Ġ( Drawing Rectangle ) Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġprivate Ġval Ġsave : Ġ( Drawing Rectangle ) Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġvar Ġrectangle : ĠRectangle ? Ġ= Ġnull Ċ ) Ġ: ĠMouse Motion Listener , ĠDraw ing Selector , ĠMouse Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpoint Start : ĠPoint ĊĠĠĠ Ġprivate Ġvar Ġenable : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Moved ( e : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpoint Start Ġ= Ġe . point ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Drag ged ( e : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( enable Ġ&& ĠSw ing Utilities . is Left MouseButton ( e )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrectangle Ġ= Ġmouse Drag ged ( point Start , Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmove . invoke ( Drawing Rectangle ({}, Ġ{}, Ġrectangle )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdisable () Ġ{ ĊĠĠĠĠĠĠĠ Ġenable Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġenable () Ġ{ ĊĠĠĠĠĠĠĠ Ġenable Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Released ( p 0 : ĠMouseEvent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( enable Ġ&& Ġp 0 Ġ!= Ġnull Ġ&& ĠSw ing Utilities . is Left MouseButton ( p 0 ) Ġ&& Ġrectangle Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave . invoke ( Drawing Rectangle ({}, Ġ{}, Ġrectangle )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Entered ( p 0 : ĠMouseEvent ?) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Clicked ( p 0 : ĠMouseEvent ?) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Exit ed ( p 0 : ĠMouseEvent ?) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Pressed ( p 0 : ĠMouseEvent ?) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrep aint ( ĊĠĠĠĠĠĠĠ Ġg : ĠGraphics 2 D , ĊĠĠĠĠĠĠĠ Ġrectangle : ĠRectangle ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrectangle ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg . color Ġ= ĠCOLOR _ BORDER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg . stroke Ġ= ĠBasic Stroke ( 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg . draw Rect ( it . x , Ġit . y , Ġit . width , Ġit . height ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }