package Ġcom . prog de elite . dca . custom _ components Ċ Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . text . Decimal Format Ċ import Ġjava . text . Decimal Format Symbols Ċ import Ġjava . util .* Ċ Ċ class ĠSlider Util Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġsearches Ġthe Ġlist Ġor Ġthe Ġfirst Ġvalue Ġequal Ġor Ġhigher Ġthe Ġgiven Ġvalue Ġ( bottom Ġto Ġtop ) ĊĠĠĠĠĠĠĠĠ Ġ* Ġif Ġno Ġvalue Ġcan Ġbe Ġfound Ġthe Ġhighest Ġvalue Ġin Ġthe Ġlist Ġis Ġreturned ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġthe Ġvalue Ġto Ġsearch Ġfor ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġfirst Ġvalue Ġequal Ġor Ġhigher Ġthe Ġgiven Ġvalue . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun ĠList < BigDecimal >. first Value Equal Or Above ( value : ĠBigDecimal ): ĠBigDecimal Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtarget Value Ġ= ĠBigDecimal ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġindices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Value Ġ= Ġget ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( target Value Ġ>= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtarget Value ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġsearches Ġthe Ġlist Ġfor Ġthe Ġfirst Ġvalue Ġequal Ġor Ġlower Ġthe Ġgiven Ġvalue Ġ( top Ġto Ġbottom ) ĊĠĠĠĠĠĠĠĠ Ġ* Ġif Ġno Ġvalue Ġcan Ġbe Ġfound Ġthe Ġlowest Ġvalue Ġin Ġthe Ġlist Ġis Ġreturned ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġthe Ġvalue Ġto Ġsearch Ġfor ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġfirst Ġvalue Ġequal Ġor Ġlower Ġthe Ġgiven Ġvalue . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun ĠList < BigDecimal >. first Value Equal Or Below ( value : ĠBigDecimal ): ĠBigDecimal Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtarget Value Ġ= ĠBigDecimal ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġsize Ġ- Ġ 1 Ġdown To Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Value Ġ= Ġget ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( get ( i ) Ġ<= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtarget Value ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġformats Ġa Ġvalue Ġto Ġlocale Ġde - CH ĊĠĠĠĠĠĠĠĠ Ġ* ĠExample : Ġ 1 6 4 1 . 4 5 Ġto Ġ 1 ' 6 4 1 . 4 5 ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġformat Value ( value : ĠBigDecimal ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsymbols Ġ= ĠDecimal Format Symbols ( Locale ( Locale . GER MAN . language , Ġ" CH ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// we Ġneed Ġto Ġdefine Ġa Ġspecific Ġgrouping Separator Ġbecause Ġit 's Ġdepend ant Ġon Ġthe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// users Ġsettings Ġwhich Ġa post rop he Ġis Ġused Ġ( [' ] Ġor Ġ[ âĢĻ ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsymbols . grouping Separator Ġ= Ġ'\'' ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠDecimal Format ("# , ### , ## 0 . 0 0 ", Ġsymbols ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġformatter . format ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġgets Ġmax Ġamount Ġof Ġsl iders Ġscale ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun ĠgetMax Amount ( scale : ĠList < BigDecimal >): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformatted Ġ= Ġformat Value ( scale . last ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" max . Ġ$ formatted " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }