package Ġapplication . controller Ċ Ċ import Ġapplication . model . Coordinate Ċ import Ġjavafx . scene . paint . Color Ċ import Ġjavafx . scene . shape . Rectangle Ċ Ċ /** Ċ Ġ* ĠThe Ġselection Ġrectangle Ġused Ġby ĠCA Viewer Ġto Ġselect Ġmultiple Ġcells Ċ Ġ*/ Ċ class ĠSelection Rectangle ( private Ġval ĠCELL _ SIZE : ĠInt ) Ġ: ĠRectangle () Ġ{ ĊĠĠĠ Ġvar Ġstart : ĠCoordinate ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠCoordinate ( field . x Ġ/ ĠCELL _ SIZE , Ġfield . y Ġ/ ĠCELL _ SIZE ) ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġend : ĠCoordinate ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠCoordinate ( field . x Ġ/ ĠCELL _ SIZE , Ġfield . y Ġ/ ĠCELL _ SIZE ) ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstructs Ġa Ġselection Ġrectangle ĊĠĠĠĠ Ġ* Ġ@ param ĠCELL _ SIZE ĠThe Ġcell Ġsize Ġof Ġthe Ġgrid Ġwhere Ġthe Ġselection Ġrectangle Ġis Ġplaced ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġstart Ġ= ĠCoordinate () ĊĠĠĠĠĠĠĠ Ġend Ġ= ĠCoordinate () ĊĠĠĠĠĠĠĠ Ġsuper . set Opacity ( 0 . 3 ) ĊĠĠĠĠĠĠĠ Ġsuper . setFill ( Color . rgb ( 7 5 , Ġ 1 7 5 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġsuper . to Front () ĊĠĠĠĠĠĠĠ Ġsuper . setVisible ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSelect s Ġthe Ġspecified Ġarea ĊĠĠĠĠ Ġ* Ġ@ param Ġstart ĠThe Ġstart Ġcoordinate Ġof Ġthe Ġselection Ġarea ĊĠĠĠĠ Ġ* Ġ@ param Ġend ĠThe Ġend Ġcoordinate Ġof Ġthe Ġselection Ġarea ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġselect ( start : ĠCoordinate , Ġend : ĠCoordinate ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . start Ġ= Ġstart ĊĠĠĠĠĠĠĠ Ġthis . end Ġ= Ġend ĊĠĠĠĠĠĠĠ Ġsuper . set X ( start . x . toDouble ()) ĊĠĠĠĠĠĠĠ Ġsuper . set Y ( start . y . toDouble ()) ĊĠĠĠĠĠĠĠ Ġsuper . setWidth (( end . x Ġ- Ġstart . x Ġ+ ĠCELL _ SIZE ). toDouble ()) ĊĠĠĠĠĠĠĠ Ġsuper . set Height (( end . y Ġ- Ġstart . y Ġ+ ĠCELL _ SIZE ). toDouble ()) ĊĠĠĠĠĠĠĠ Ġsuper . setVisible ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSelect s Ġthe Ġspecified Ġarea ĊĠĠĠĠ Ġ* Ġ@ param Ġend ĠThe Ġend Ġcoordinate Ġof Ġthe Ġselection Ġarea ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġselect ( end : ĠCoordinate ) Ġ{ ĊĠĠĠĠĠĠĠ Ġselect ( start , Ġend ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUn select s Ġthe Ġspecified Ġarea ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġun select () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setVisible ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIs Ġthe Ġselection Ġrectangle Ġactive ĊĠĠĠĠ Ġ* Ġ@ return ĠReturns Ġwhether Ġthe Ġselection Ġrectangle Ġis Ġactive ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġis Select ing : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġsuper . isVisible () Ċ Ċ }