package Ġcom . p ank aj . downloader . plugin . tracker Ċ Ċ open Ġclass ĠProgress Bar Presenter ( val Ġrender : Ġ( String ) Ġ-> ĠUnit , Ġval Ġscaling Factor : ĠInt Ġ= Ġ 1 0 ) Ġ: ĊĠĠĠ ĠProgress Presenter Ġ{ ĊĠĠĠ Ġprivate Ġval Ġupper Bound Ġ= Ġ 1 0 0 ĊĠĠĠ Ġprivate Ġval Ġscaled Upper Bound Ġ= Ġupper Bound Ġ/ Ġscaling Factor ĊĊĠĠĠ Ġoverride Ġfun Ġpresent ( total : ĠDouble , Ġcompleted : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpercentage Ġ= Ġcompleted Ġ/ Ġtotal Ġ* Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġscaled Percentage Ġ= Ġ( percentage Ġ/ Ġscaling Factor ). toInt () ĊĠĠĠĠĠĠĠ Ġval Ġfilled Ġ= Ġrepeat (" =", Ġscaled Percentage ) ĊĠĠĠĠĠĠĠ Ġval Ġempty Ġ= Ġrepeat (" Ġ", Ġscaled Upper Bound Ġ- Ġscaled Percentage ) ĊĠĠĠĠĠĠĠ Ġrender (""" [$ filled $ empty ] """) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrepeat ( char : ĠString , Ġcount : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ<= Ġ 0 ) Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġreturn Ġchar Ġ+ Ġrepeat ( char , Ġcount Ġ- Ġ 1 ) ĊĠĠĠ Ġ} Ċ } Ċ