package Ġio . github . ek iry ush in . scroll table view čĊč Ċ import Ġandroid . app . Activity č Ċ import Ġandroid . app . AlertDialog č Ċ import Ġandroid . app . DatePicker Dialog č Ċ import Ġandroid . content . Context č Ċ import Ġandroid . content . DialogInterface č Ċ import Ġandroid . util . Attribute Set č Ċ import Ġandroid . view . LayoutInflater č Ċ import Ġandroid . view . View č Ċ import Ġandroid . widget .* č Ċ import Ġio . github . ek iry ush in . scroll table view . cell . Row Cell č Ċ import Ġio . github . ek iry ush in . scroll table view . sc rolled . Horizontal Scroll TableView č Ċ import Ġio . github . ek iry ush in . scroll table view . sc rolled . On Scroll Listener č Ċ import Ġio . github . ek iry ush in . scroll table view . sc rolled . Scroll Table Params č Ċ import Ġio . github . ek iry ush in . scroll table view . sc rolled . Vertical Scroll TableView č Ċ import Ġjava . util .* čĊč Ċ /** ĠÐŀ Ñģ Ð½Ð¾Ð² Ð½Ð¾Ð¹ ĠÐºÐ»Ð°ÑģÑģ ĠÐ¿Ð¾ ĠÐ¾ÑĤ Ð¾Ð±ÑĢÐ°Ð¶ ÐµÐ½Ð¸Ñı ĠÑĤ Ð°Ð±Ð»Ð¸ÑĨ Ñĭ . Ġ*/ č Ċ class ĠScroll TableView : ĠRelative Layout , ĠView Listener Ġ{ čĊĠĠĠ Ġconstructor ( context : ĠContext ): Ġsuper ( context ) čĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ): Ġsuper ( context , Ġattrs ) Ġ{ čĊĠĠĠĠĠĠĠ Ġinflater Ġ= Ġ( context Ġas ĠActivity ). layout Inflater čĊĠĠĠĠĠĠĠ Ġinflater ?. inflate ( R . layout . stv _ scroll _ table _ view , Ġthis , Ġtrue ) čĊčĊĠĠĠĠĠĠĠ Ġ// Ñģ Ñĩ Ð¸ÑĤ ÑĭÐ² Ð°ÐµÐ¼ ĠÐ¿Ð°ÑĢÐ°Ð¼ÐµÑĤ ÑĢÑĭ čĊĠĠĠĠĠĠĠ Ġinit () čĊčĊĠĠĠĠĠĠĠ Ġ// Ð½ Ð°Ð² ÐµÑĪ Ð¸Ð² Ð°ÐµÐ¼ ĠÐ¾Ð± ÑĢÐ°Ð±Ð¾ÑĤ Ñĩ Ð¸ ÐºÐ¸ ĠÐ¿ÑĢ Ð¾Ðº ÑĢÑĥ ÑĤ ÐºÐ¸ čĊĠĠĠĠĠĠĠ Ġset Listener () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġvar Ġinflater : ĠLayoutInflater ? Ġ= Ġnull čĊčĊĠĠĠ Ġ/** ĠÐĹ Ð°Ðº ÑĢ ÐµÐ¿ Ð»ÐµÐ½ Ð½Ð°Ñı ĠÑģÑĤÑĢÐ¾Ðº Ð° ĠÐ· Ð°Ð³ Ð¾Ð» Ð¾Ð² ÐºÐ° . Ġ*/ čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtr Header Fix : ĠTable Row čĊčĊĠĠĠ Ġ/** ĠÐ¡ ÑĤÑĢ Ð¾Ðº Ð° ĠÐ· Ð°Ð³ Ð¾Ð» Ð¾Ð² ÐºÐ° . Ġ*/ čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtr Header : ĠTable Row čĊčĊĠĠĠ Ġ/** ĠÐĹ Ð°Ðº ÑĢ ÐµÐ¿ Ð»ÐµÐ½ ÑĭÐµ ĠÑģÑĤ Ð¾Ð» Ð± ÑĨ Ñĭ . Ġ*/ čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtable Fix : ĠTable Layout čĊčĊĠĠĠ Ġ/** ĠÐŀ Ñģ Ð½Ð¾Ð² Ð½Ð°Ñı ĠÑĤ Ð°Ð±Ð»Ð¸ÑĨ Ð° . Ġ*/ čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtable Data : ĠTable Layout čĊčĊĠĠĠ Ġ/** ĠÐŁ ÑĢ ÐµÐ· ÐµÐ½ÑĤ ÐµÑĢ ĠÐ¾ÑĤ Ð¾Ð±ÑĢÐ°Ð¶ ÐµÐ½Ð¸Ñı ĠÑĤ Ð°Ð±Ð»Ð¸ÑĨ . Ġ*/ čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpresenter : ĠScroll TableView Presenter čĊčĊĠĠĠ Ġ/** ĠÐŁ Ð°ÑĢÐ°Ð¼ÐµÑĤ ÑĢÑĭ ĠÐ¾ÑĤ Ð¾Ð±ÑĢÐ°Ð¶ ÐµÐ½Ð¸Ñı ĠÑĤ Ð°Ð±Ð»Ð¸ÑĨ Ñĭ . Ġ*/ čĊĠĠĠ Ġprivate Ġvar Ġparams : ĠScroll Table Params Ġ= ĠScroll Table Params () čĊčĊĠĠĠ Ġ/** ĠÐŀ ÑĤÑĢ Ð¸Ñģ Ð¾Ð² Ð°ÑĤÑĮ ĠÑĤ Ð°Ð±Ð»Ð¸ÑĨ Ñĥ . Ġ*/ čĊĠĠĠ Ġoverride Ġfun Ġon Layout ( changed : ĠBoolean , Ġl : ĠInt , Ġt : ĠInt , Ġr : ĠInt , Ġb : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . on Layout ( changed , Ġl , Ġt , Ġr , Ġb ) čĊčĊĠĠĠĠĠĠĠ Ġ// Ð¾Ð± Ð½Ð¾Ð² Ð»Ñı ÐµÐ¼ ĠÑĢÐ°Ð· Ð¼ ÐµÑĢ ĠÑĤ Ð°Ð±Ð»Ð¸ÑĨ Ñĭ ĠÑģ ĠÐ´Ð°Ð½ Ð½Ñĭ Ð¼Ð¸ čĊĠĠĠĠĠĠĠ Ġval Ġtr First Row Fix : ĠTable Row ? Ġ= Ġtable Fix . getChild At ( 0 ) Ġas ? ĠTable Row čĊĠĠĠĠĠĠĠ Ġval Ġtr First Row Data : ĠTable Row ? Ġ= Ġtable Data . getChild At ( 0 ) Ġas ? ĠTable Row čĊčĊĠĠĠĠĠĠĠ Ġ// Ð¾Ð± Ð½Ð¾Ð² Ð»Ñı ÐµÐ¼ ĠÑĢÐ°Ð· Ð¼ ÐµÑĢ Ñĭ ĠÐ·Ð°Ðº ÑĢ ÐµÐ¿ Ð»ÐµÐ½ ÑĭÑħ ĠÑģÑĤ Ð¾Ð» Ð± ÑĨ Ð¾Ð² čĊĠĠĠĠĠĠĠ Ġupdate Column Width ( tr Header Fix , Ġtr First Row Fix ) čĊčĊĠĠĠĠĠĠĠ Ġ// Ð¾Ð± Ð½Ð¾Ð² Ð»Ñı ÐµÐ¼ ĠÑĢÐ°Ð· Ð¼ ÐµÑĢ Ñĭ ĠÐ¿ÑĢ Ð¾Ðº ÑĢÑĥ Ñĩ Ð¸Ð² Ð°ÐµÐ¼ ÑĭÑħ ĠÑģÑĤ Ð¾Ð» Ð± ÑĨ Ð¾Ð² čĊĠĠĠĠĠĠĠ Ġupdate Column Width ( tr Header , Ġtr First Row Data ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐĹ Ð°Ð´ Ð°ÑĤÑĮ ĠÐ¾Ð± ÑĢÐ°Ð±Ð¾ÑĤ Ñĩ Ð¸Ðº ĠÐº Ð»Ð¸ ÐºÐ° ĠÐ¿Ð¾ ĠÑģÑĤÑĢÐ¾Ðº Ðµ . čĊĠĠĠĠ Ġ* Ġ@ param Ġrow Id ĠÐ¸Ð½ Ð´ ÐµÐº Ñģ ĠÑģÑĤÑĢÐ¾Ðº Ð¸ ĠÐ² ĠÐ´Ð°Ð½Ð½ÑĭÑħ , ĠÐ³ Ð´Ðµ ĠÑĢÐ°Ñģ Ð¿ Ð¾Ð» Ð¾Ð¶ ÐµÐ½Ð° ĠÑı Ñĩ ÐµÐ¹ ÐºÐ° . čĊĠĠĠĠ Ġ* Ġ@ param Ġcolumn Id ĠÐ¸Ð½ Ð´ ÐµÐº Ñģ ĠÑģÑĤ Ð¾Ð» Ð± ÑĨ Ð° ĠÐ² ĠÐ´Ð°Ð½Ð½ÑĭÑħ , ĠÐ³ Ð´Ðµ ĠÑĢÐ°Ñģ Ð¿ Ð¾Ð» Ð¾Ð¶ ÐµÐ½Ð° ĠÑı Ñĩ ÐµÐ¹ ÐºÐ° . čĊĠĠĠĠ Ġ* Ġ@ param Ġrow ĠÑģÑĤÑĢÐ¾Ðº Ð° ĠÑģÐ¾ ĠÐ·Ð½Ð°Ñĩ ÐµÐ½Ð¸Ñı Ð¼Ð¸ ĠÐ´Ð»Ñı ĠÑĢ ÐµÐ´ Ð°Ðº ÑĤÐ¸ ÑĢÐ¾Ð² Ð°Ð½Ð¸Ñı . čĊĠĠĠĠ Ġ* Ġ@ param Ġview ĠÐ½ ÐµÐ¿ Ð¾Ñģ ÑĢÐµÐ´ ÑģÑĤÐ² ÐµÐ½ Ð½Ð¾ ĠÑı Ñĩ ÐµÐ¹ ÐºÐ° , ĠÐ¿Ð¾ ĠÐºÐ¾ÑĤÐ¾ÑĢ Ð¾Ð¹ ĠÐ½ Ð°Ð¶ Ð°Ð»Ð¸ . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġoverride Ġfun Ġset Row ClickListener ( row Id : ĠInt , Ġcolumn Id : ĠInt , Ġrow : ĠRow Cell ?, Ġview : ĠView ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġrow ?. let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcur View Ġ= Ġview Ġ?: Ġget Cell View ( row Id , Ġcolumn Id ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur View ?. setOnClickListener ( cell ClickListener ( row Id )) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐ£ ÑģÑĤÐ°Ð½Ð¾Ð² Ð¸ÑĤÑĮ ĠÑĦ Ð¾Ð½ ĠÑģÑĤÑĢÐ¾Ðº Ð¸ ĠÐ² ĠÐ· Ð°Ð² Ð¸Ñģ Ð¸Ð¼Ð¾ÑģÑĤ Ð¸ ĠÐ¾ÑĤ ĠÑĤ Ð¾Ð³Ð¾ ĠÑĥ Ð´Ð°Ð» ÐµÐ½Ð° ĠÐ¾ Ð½Ð° ĠÐ¸Ð»Ð¸ ĠÐ½ ÐµÑĤ . čĊĠĠĠĠ Ġ* Ġ@ param Ġchange Row Id ĠÐ¸Ð½ Ð´ ÐµÐº Ñģ ĠÐ¸Ð· Ð¼ÐµÐ½ ÐµÐ½ Ð½Ð¾Ð¹ ĠÑģÑĤÑĢÐ¾Ðº Ð¸ . čĊĠĠĠĠ Ġ* Ġ@ param Ġis Deleted Ġtrue ĠÑģÑĤÑĢÐ¾Ðº Ð° ĠÑĥ Ð´Ð°Ð» ÐµÐ½ Ð½Ð°Ñı , Ġfalse Ġ- ĠÑģÑĤÑĢÐ¾Ðº Ð° ĠÐ² Ð¾Ñģ ÑģÑĤÐ°Ð½Ð¾Ð² Ð»ÐµÐ½ Ð½Ð°Ñı . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġoverride Ġfun Ġset Row Background ( change Row Id : ĠInt , Ġis Deleted : ĠBoolean ) Ġ{ čĊĠĠĠĠĠĠĠ Ġ// Ð¿ Ð¾Ð» ÑĥÑĩ Ð°ÐµÐ¼ ĠÑģÑĤÑĢÐ¾Ðº Ñĥ ĠÐ·Ð°Ðº ÑĢ ÐµÐ¿ Ð»ÐµÐ½ Ð½ÑĭÑħ ĠÐºÐ¾Ð» Ð¾Ð½ Ð¾Ðº čĊĠĠĠĠĠĠĠ Ġval Ġtable Row Fix Ġ= Ġif Ġ( change Row Id Ġ< Ġtable Fix . child Count ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtable Fix . getChild At ( change Row Id ) Ġas ĠTable Row čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ// Ð¿ Ð¾Ð» ÑĥÑĩ Ð°ÐµÐ¼ ĠÑģÑĤÑĢÐ¾Ðº Ñĥ ĠÐ¾ ÑģÑĤ Ð°Ð»ÑĮ Ð½ÑĭÑħ ĠÐºÐ¾Ð» Ð¾Ð½ Ð¾Ðº čĊĠĠĠĠĠĠĠ Ġval Ġtable Row Ġ= Ġif Ġ( change Row Id Ġ< Ġtable Data . child Count ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtable Data . getChild At ( change Row Id ) Ġas ĠTable Row čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ// Ð¼ÐµÐ½ Ñı Ð¼ ĠÑĨ Ð²ÐµÑĤ ĠÑĦ Ð¾Ð½ Ð° ĠÑģÑĤÑĢÐ¾Ðº Ð¸ čĊĠĠĠĠĠĠĠ Ġtable Row Fix ?. let Ġ{ Ġset Row Enabled ( it , Ġis Deleted ) Ġ} čĊĠĠĠĠĠĠĠ Ġtable Row ?. let Ġ{ Ġset Row Enabled ( it , Ġis Deleted ) Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐ£ ÑģÑĤÐ°Ð½Ð¾Ð² Ð¸ÑĤÑĮ ĠÑĦ Ð¾Ð½ ĠÑı Ñĩ ÐµÐ¹ ÐºÐ¸ , ĠÐµÑģÐ»Ð¸ ĠÐ·Ð½Ð°ÑĩÐµÐ½Ð¸Ðµ ĠÐ² ĠÐ½ ÐµÐ¹ ĠÐ¸Ð· Ð¼ÐµÐ½ ÐµÐ½ Ð½Ð¾Ðµ čĊĠĠĠĠ Ġ* Ġ@ param Ġchange Row Id ĠÐ¸Ð½ Ð´ ÐµÐº Ñģ ĠÑģÑĤÑĢÐ¾Ðº Ð¸ , ĠÐ² ĠÐºÐ¾ÑĤÐ¾ÑĢ Ð¾Ð¹ ĠÐ¸Ð· Ð¼ ÐµÐ½Ð¸ Ð» Ð¾Ñģ ÑĮ ĠÐ·Ð½Ð°ÑĩÐµÐ½Ð¸Ðµ . čĊĠĠĠĠ Ġ* Ġ@ param Ġchange Column Id ĠÐ¸Ð½ Ð´ ÐµÐº ÑģÑĤ ĠÐºÐ¾Ð» Ð¾Ð½ ÐºÐ¸ , ĠÐ² ĠÐºÐ¾ÑĤÐ¾ÑĢ Ð¾Ð¹ ĠÐ¸Ð· Ð¼ ÐµÐ½Ð¸ Ð» Ð¾Ñģ ÑĮ ĠÐ·Ð½Ð°ÑĩÐµÐ½Ð¸Ðµ . čĊĠĠĠĠ Ġ* Ġ@ param Ġis Edited Ġtrue Ġ- ĠÐ·Ð½Ð°ÑĩÐµÐ½Ð¸Ðµ ĠÐ¸Ð· Ð¼ ÐµÐ½Ð¸ Ð» Ð¾Ñģ ÑĮ ĠÐ½Ð° ĠÐ½Ð¾Ð² Ð¾Ðµ , Ġfalse Ġ- ĠÐ·Ð½Ð°ÑĩÐµÐ½Ð¸Ðµ ĠÐ¸Ð· Ð¼ ÐµÐ½Ð¸ Ð» Ð¾Ñģ ÑĮ ĠÐ² ĠÐ¸ Ñģ ÑħÐ¾Ð´ Ð½Ð¾Ðµ . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġoverride Ġfun Ġset Cell Background ( change Row Id : ĠInt , Ġchange Column Id : ĠInt , Ġis Edited : ĠBoolean ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġcolumn View Ġ= Ġget Cell View ( change Row Id , Ġchange Column Id ) čĊĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġcolumn View ?. findViewById < TextView >( R . id . table _ data _ item ) čĊĠĠĠĠĠĠĠ ĠtextView ?. let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Edited ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setBackground Resource ( params . cell Edited Color Res Id ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . background Ġ= Ġnull čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐŁ ÑĢ Ð¾Ðº ÑĢÑĥ ÑĤ Ð¸ÑĤÑĮ ĠÑģÐ¿Ð¸Ñģ Ð¾Ðº ĠÐ² Ð½Ð¸ Ð· . Ġ*/ čĊĠĠĠ Ġoverride Ġfun Ġscroll ToEnd () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġscroll Row Data : ĠVertical Scroll TableView Ġ= Ġthis . findViewById ( R . id . table _ data _ scroll _ row _ data ) čĊĠĠĠĠĠĠĠ Ġscroll Row Data . post Ġ{ Ġscroll Row Data . full Scroll ( ScrollView . FOCUS _ DOWN ) Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** čĊĠĠĠĠ Ġ* ĠÐŁ Ð¾Ðº Ð°Ð· Ð°ÑĤÑĮ ĠÐ¾ Ðº Ð½Ð¾ ĠÐ´Ð»Ñı ĠÐ¸Ð· Ð¼ÐµÐ½ ÐµÐ½Ð¸Ñı ĠÐ·Ð½Ð°Ñĩ ÐµÐ½Ð¸Ñı . čĊĠĠĠĠ Ġ* Ġ@ param Ġbuilder ĠÐ¿Ð¾Ð´ Ð³ Ð¾ÑĤ Ð¾Ð² Ð»ÐµÐ½ Ð½Ð¾Ðµ ĠÐ´ Ð¸ Ð°Ð» Ð¾Ð³ Ð¾Ð² Ð¾Ðµ ĠÐ¾ Ðº Ð½Ð¾ . čĊĠĠĠĠ Ġ* Ġ@ param Ġview ĠÑĢÐ°Ð· Ð¼ ÐµÑĤ ÐºÐ° , ĠÑģ Ð¾Ð´ÐµÑĢÐ¶ Ð° Ñī Ð°Ñı ĠÐ²ÑģÐµ ĠÐ¿Ð¾Ð» Ñı ĠÐ² Ð² Ð¾Ð´Ð° . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġoverride Ġfun Ġshow Dialog ( builder : ĠAlertDialog . Builder , Ġview : ĠLinearLayout ) Ġ{ čĊĠĠĠĠĠĠĠ Ġbuilder čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cancel able ( false ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . stv _ edit _ title ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( context . getString ( R . string . stv _ button _ success )) Ġ{ Ġ_, Ġ_ Ġ-> Ġapply Dialog ( view ) Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( context . getString ( R . string . stv _ button _ cancel )) Ġ{ Ġdialog , Ġ_ Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel Dialog ( dialog , Ġview ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** čĊĠĠĠĠ Ġ* ĠÐŁ Ð¾Ðº Ð°Ð· Ð°ÑĤÑĮ ĠÐ¾ Ðº Ð½Ð¾ ĠÐ²ÑĭÐ± Ð¾ÑĢ Ð° ĠÐ´ Ð°ÑĤ Ñĭ . čĊĠĠĠĠ Ġ* Ġ@ param Ġedit Text ĠÐ¿Ð¾Ð» Ðµ ĠÐ² Ð² Ð¾Ð´Ð° , ĠÐ´Ð»Ñı ĠÐºÐ¾ÑĤÐ¾ÑĢ Ð¾Ð³Ð¾ ĠÐ½ ÑĥÐ¶ Ð½Ð¾ ĠÐ¿Ð¾Ðº Ð°Ð· Ð°ÑĤÑĮ ĠÐ¾ Ðº Ð½Ð¾ . čĊĠĠĠĠ Ġ* Ġ@ param Ġg regorian Calendar ĠÐ´ Ð°ÑĤÐ° , ĠÐºÐ¾ÑĤÐ¾ÑĢ ÑĥÑİ ĠÐ½ ÑĥÐ¶ Ð½Ð¾ ĠÐ²Ñĭ Ð´ÐµÐ» Ð¸ÑĤÑĮ ĠÐ² ĠÐº Ð°Ð» ÐµÐ½ Ð´ Ð°ÑĢ Ðµ . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġoverride Ġfun Ġshow Dialog Select Date ( edit Text : ĠEditText , Ġg regorian Calendar : ĠG regorian Calendar ) Ġ{ čĊĠĠĠĠĠĠĠ ĠDate Picker Dialog ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . dialog Style Id , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġ_, Ġyear , Ġmonth OfYear , Ġday OfMonth Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Date Ġ= ĠString . format ("% 0 2 d .% 0 2 d .% 0 4 d ", Ġday OfMonth , Ġmonth OfYear + 1 , Ġyear ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . setText ( selected Date ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, čĊĠĠĠĠĠĠĠĠĠĠĠ Ġg regorian Calendar . get ( Calendar . YEAR ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġg regorian Calendar . get ( Calendar . MONTH ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġg regorian Calendar . get ( Calendar . DAY _ OF _ MONTH )) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** čĊĠĠĠĠ Ġ* ĠÐ£ Ð´Ð°Ð» Ð¸ÑĤÑĮ ĠÐºÐ¾Ð½ Ðº ÑĢ ÐµÑĤ Ð½ÑĥÑİ ĠÑģÑĤÑĢÐ¾Ðº Ñĥ . čĊĠĠĠĠ Ġ* Ġ@ param Ġrow Id ĠÐ¸ Ð´ ÐµÐ½ÑĤ Ð¸ÑĦ Ð¸Ðº Ð°ÑĤÐ¾ÑĢ ĠÑģÑĤÑĢÐ¾Ðº Ð¸ ĠÐ´Ð»Ñı ĠÑĥ Ð´Ð°Ð» ÐµÐ½Ð¸Ñı . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġoverride Ġfun Ġremove Row ( row Id : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġif Ġ( row Id Ġ< Ġtable Fix . child Count ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtable Fix . remove View ( table Fix . getChild At ( row Id )) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġif Ġ( row Id Ġ< Ġtable Data . child Count ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtable Data . remove View ( table Data . getChild At ( row Id )) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐĹ Ð°Ð´ Ð°ÑĤÑĮ ĠÑģÐ¿Ð¸Ñģ Ð¾Ðº ĠÐ· Ð°Ð³ Ð¾Ð» Ð¾Ð² ÐºÐ¾Ð² . čĊĠĠĠĠ Ġ* Ġ@ param Ġheader ĠÑģÑĤÑĢÐ¾Ðº Ð° , ĠÑģ Ð¾Ð´ÐµÑĢÐ¶ Ð° Ñī Ð°Ñı ĠÑı Ñĩ ÐµÐ¹ ÐºÐ¸ ĠÐ´Ð»Ñı ĠÐº Ð°Ð¶Ð´ Ð¾Ð³Ð¾ ĠÑģÑĤ Ð¾Ð» Ð± ÑĨ Ð° ĠÐ· Ð°Ð³ Ð¾Ð» Ð¾Ð² ÐºÐ° . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġfun Ġset Header ( header : ĠRow Cell ) Ġ{ čĊĠĠĠĠĠĠĠ Ġpresenter . setHeader ( header ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐĹ Ð°Ð´ Ð°ÑĤÑĮ ĠÑĤ Ð°Ð±Ð»Ð¸ÑĨ Ñĥ ĠÑģ ĠÐ´Ð°Ð½ Ð½Ñĭ Ð¼Ð¸ ĠÐ±ÐµÐ· ĠÐ· Ð°Ð³ Ð¾Ð» Ð¾Ð² ÐºÐ° . čĊĠĠĠĠ Ġ* Ġ@ param Ġdata ĠÑģÐ¿Ð¸Ñģ Ð¾Ðº ĠÐ¸Ð· ĠÑģÑĤÑĢÐ¾Ðº , ĠÑģ Ð¾Ð´ÐµÑĢÐ¶ Ð° ÑīÐ¸ Ñħ ĠÑı Ñĩ ÐµÐ¹ ÐºÐ¸ ĠÐ´Ð»Ñı ĠÐº Ð°Ð¶Ð´ Ð¾Ð³Ð¾ ĠÑģÑĤ Ð¾Ð» Ð± ÑĨ Ð° . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġfun ĠsetData ( data : ĠMutable List < Row Cell >) Ġ{ čĊĠĠĠĠĠĠĠ Ġpresenter . setData ( data ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐĹ Ð°Ð´ Ð°ÑĤÑĮ ĠÐºÐ¾Ð» Ð¸Ñĩ ÐµÑģÑĤÐ²Ð¾ ĠÐ·Ð°Ðº ÑĢ ÐµÐ¿ Ð»ÐµÐ½ Ð½ÑĭÑħ ĠÑģÑĤ Ð¾Ð» Ð± ÑĨ Ð¾Ð² . čĊĠĠĠĠ Ġ* Ġ@ param Ġcount Fix Column ĠÐºÐ¾Ð» Ð¸Ñĩ ÐµÑģÑĤÐ²Ð¾ ĠÑģÑĤ Ð¾Ð» Ð± ÑĨ Ð¾Ð² ĠÑģÐ» ÐµÐ² Ð° , ĠÐºÐ¾ÑĤÐ¾ÑĢÑĭÐµ ĠÐ½Ðµ ĠÐ±ÑĥÐ´ ÑĥÑĤ ĠÐ¿ÑĢ Ð¾Ðº ÑĢÑĥ Ñĩ Ð¸Ð² Ð°ÑĤÑĮÑģÑı . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġfun Ġset Count Fix Column ( count Fix Column : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġparams . count Fix Column Ġ= Ġcount Fix Column čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐĴ ÐºÐ»ÑİÑĩ Ð¸ÑĤÑĮ ĠÐ¸Ð»Ð¸ ĠÐ²Ñĭ ÐºÐ»ÑİÑĩ Ð¸ÑĤÑĮ ĠÐ¾ÑĤ Ð¾Ð±ÑĢÐ°Ð¶ ÐµÐ½Ð¸Ðµ ĠÐ¸ Ðº Ð¾Ð½ Ð¾Ðº ĠÑĥ Ð´Ð°Ð» ÐµÐ½Ð¸Ñı ĠÐ¸ ĠÐ² Ð¾Ñģ ÑģÑĤÐ°Ð½Ð¾Ð² Ð»ÐµÐ½Ð¸Ñı . čĊĠĠĠĠ Ġ* Ġ@ param Ġenabled Icon Delete Ġtrue Ġ- ĠÐ² ÐºÐ»ÑİÑĩ Ð¸ÑĤÑĮ ĠÐ¾ÑĤ Ð¾Ð±ÑĢÐ°Ð¶ ÐµÐ½Ð¸Ðµ ĠÐ¸ Ðº Ð¾Ð½ Ð¾Ðº , Ġfalse Ġ- ĠÐ²Ñĭ ÐºÐ»ÑİÑĩ Ð¸ÑĤÑĮ . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġfun Ġset Enabled Icon Delete ( enabled Icon Delete : ĠBoolean ) Ġ{ čĊĠĠĠĠĠĠĠ Ġparams . enabled Icon Delete Ġ= Ġenabled Icon Delete čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐĹ Ð°Ð´ Ð°ÑĤÑĮ ĠÑĨ Ð²ÐµÑĤ ĠÐ¸Ð· Ð¼ÐµÐ½ ÐµÐ½ Ð½Ð¾Ð¹ ĠÑı Ñĩ ÐµÐ¹ ÐºÐ¸ . čĊĠĠĠĠ Ġ* Ġresource Id Ġ- ĠÑģ ÑģÑĭ Ð» ÐºÐ° ĠÐ½Ð° ĠÑĨ Ð²ÐµÑĤ Ð¾Ð² Ð¾Ð¹ ĠÑĢ ÐµÑģ ÑĥÑĢ Ñģ . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġfun Ġset Edited Cell Color ResourceId ( resourceId : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġparams . cell Edited Color Res Id Ġ= Ġresource Id čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐĹ Ð°Ð´ Ð°ÑĤÑĮ ĠÑģÑĤ Ð¸Ð»ÑĮ ĠÐ¾ ÑĦÐ¾ÑĢÐ¼ Ð»ÐµÐ½Ð¸Ñı ĠÐ´ Ð¸ Ð°Ð» Ð¾Ð³ Ð¾Ð² Ð¾Ð³Ð¾ ĠÐ¾ Ðº Ð½Ð° ĠÐ²ÑĭÐ± Ð¾ÑĢ Ð° ĠÐ´ Ð°ÑĤ Ñĭ . čĊĠĠĠĠ Ġ* Ġstyle Id Ġ- ĠÑģ ÑģÑĭ Ð» ÐºÐ° ĠÐ½Ð° ĠÑģÑĤ Ð¸Ð»ÑĮ . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġfun Ġset Dialog Select Date Style Id ( style Id : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġparams . dialog Style Id Ġ= Ġstyle Id čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐĶ Ð¾Ð±Ð°Ð² Ð¸ÑĤÑĮ ĠÑģÑĤÑĢÐ¾Ðº Ñĥ ĠÑģ ĠÐ´Ð°Ð½ Ð½Ñĭ Ð¼Ð¸ . čĊĠĠĠĠ Ġ* Ġ@ param Ġrow ĠÐ½Ð¾Ð² Ð°Ñı ĠÑģÑĤÑĢÐ¾Ðº Ð° , ĠÑģ Ð¾Ð´ÐµÑĢÐ¶ Ð° Ñī Ð°Ñı ĠÑı Ñĩ ÐµÐ¹ ÐºÐ¸ ĠÐ´Ð»Ñı ĠÐº Ð°Ð¶Ð´ Ð¾Ð³Ð¾ ĠÑģÑĤ Ð¾Ð» Ð± ÑĨ Ð° . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġfun Ġadd Row Data ( row : ĠRow Cell ) Ġ{ čĊĠĠĠĠĠĠĠ Ġinflater ?. let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . add Row Data ( it , Ġtable Fix , Ġtable Data , Ġrow ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐŁ Ð¾ÑģÑĤ ÑĢÐ¾ Ð¸ÑĤÑĮ ĠÑĤ Ð°Ð±Ð»Ð¸ÑĨ Ñĥ ĠÑģ ĠÐ´Ð°Ð½ Ð½Ñĭ Ð¼Ð¸ . Ġ*/ čĊĠĠĠ Ġfun Ġshow Table () Ġ{ čĊĠĠĠĠĠĠĠ Ġ// Ð· Ð°Ðº ÑĢ ÐµÐ¿ Ð»ÐµÐ½ Ð½Ð°Ñı ĠÑģÑĤÑĢÐ¾Ðº Ð° ĠÐ· Ð°Ð³ Ð¾Ð» Ð¾Ð² ÐºÐ° čĊĠĠĠĠĠĠĠ Ġtr Header Fix . removeAll Views () čĊčĊĠĠĠĠĠĠĠ Ġ// ÑģÑĤÑĢ Ð¾Ðº Ð° ĠÐ· Ð°Ð³ Ð¾Ð» Ð¾Ð² ÐºÐ° ĠÐ¸ ÑĤ Ð¾Ð³ Ð¾Ð² čĊĠĠĠĠĠĠĠ Ġtr Header . removeAll Views () čĊčĊĠĠĠĠĠĠĠ Ġ// Ð· Ð°Ðº ÑĢ ÐµÐ¿ Ð»ÐµÐ½ ÑĭÐµ ĠÑģÑĤ Ð¾Ð» Ð± ÑĨ Ñĭ čĊĠĠĠĠĠĠĠ Ġtable Fix . removeAll Views () čĊčĊĠĠĠĠĠĠĠ Ġ// Ð¾Ñģ Ð½Ð¾Ð² Ð½Ð°Ñı ĠÑĤ Ð°Ð±Ð»Ð¸ÑĨ Ð° čĊĠĠĠĠĠĠĠ Ġtable Data . removeAll Views () čĊčĊĠĠĠĠĠĠĠ Ġinflater ?. let Ġ{ Ġpresenter . show Table ( it , Ġtr Header Fix , Ġtr Header , Ġtable Fix , Ġtable Data ) Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐŁ Ð¾Ð» ÑĥÑĩ Ð¸ÑĤÑĮ ĠÐ· Ð°Ð³ Ð¾Ð» Ð¾Ð² Ð¾Ðº ĠÑĤ Ð°Ð±Ð»Ð¸ÑĨ Ñĭ . čĊĠĠĠĠ Ġ* Ġ@ return ĠÑģÑĤÑĢÐ¾Ðº Ð° , ĠÑģ Ð¾Ð´ÐµÑĢÐ¶ Ð° Ñī Ð°Ñı ĠÐ·Ð½Ð°Ñĩ ÐµÐ½Ð¸Ñı ĠÐ¿Ð¾ ĠÐº Ð°Ð¶Ð´ Ð¾Ð¼Ñĥ ĠÐ· Ð°Ð³ Ð¾Ð» Ð¾Ð² ÐºÑĥ ĠÑĤ Ð°Ð±Ð»Ð¸ÑĨ Ñĭ . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġfun Ġget Header () Ġ= Ġpresenter . getHeader () čĊčĊĠĠĠ Ġ/** ĠÐŁ Ð¾Ð» ÑĥÑĩ Ð¸ÑĤÑĮ ĠÐ²ÑģÐµ ĠÐ´Ð°Ð½ Ð½ÑĭÐµ . čĊĠĠĠĠ Ġ* Ġ@ return ĠÑģÐ¿Ð¸Ñģ Ð¾Ðº ĠÑģÑĤÑĢÐ¾Ðº , ĠÑģ Ð¾Ð´ÐµÑĢÐ¶ Ð° ÑīÐ¸ Ñħ ĠÐ·Ð½Ð°Ñĩ ÐµÐ½Ð¸Ñı ĠÐ¿Ð¾ ĠÐº Ð°Ð¶Ð´ Ð¾Ð¼Ñĥ ĠÑģÑĤ Ð¾Ð» Ð± ÑĨ Ñĥ . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġfun ĠgetData () Ġ= Ġpresenter . getData () čĊčĊĠĠĠ Ġ/** ĠÐĺ Ð½Ð¸ ÑĨÐ¸ Ð°Ð»Ð¸Ð· Ð°ÑĨÐ¸Ñı ĠÐ¿ÐµÑĢ ÐµÐ¼ ÐµÐ½ Ð½ÑĭÑħ . Ġ*/ čĊĠĠĠ Ġprivate Ġfun Ġinit () Ġ{ čĊĠĠĠĠĠĠĠ Ġtr Header Fix Ġ= Ġthis . findViewById ( R . id . table _ data _ tr _ fix _ header ) čĊĠĠĠĠĠĠĠ Ġtr Header Ġ= Ġthis . findViewById ( R . id . table _ data _ tr _ header ) čĊĠĠĠĠĠĠĠ Ġtable Fix Ġ= Ġthis . findViewById ( R . id . table _ data _ table _ fix ) čĊĠĠĠĠĠĠĠ Ġtable Data Ġ= Ġthis . findViewById ( R . id . table _ data _ table _ value ) čĊčĊĠĠĠĠĠĠĠ Ġpresenter Ġ= ĠScroll TableView Presenter ( params , Ġthis ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐŁ Ð¾Ð´ ÐºÐ»ÑİÑĩ Ð¸ÑĤÑĮ ĠÑģÐ» Ñĥ ÑĪ Ð°ÑĤ ÐµÐ»Ð¸ ĠÐ¸Ð· Ð¼ÐµÐ½ ÐµÐ½Ð¸Ñı ĠÑģÐº ÑĢ Ð¾Ð» Ð»Ð° . Ġ*/ čĊĠĠĠ Ġprivate Ġfun Ġset Listener () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġscroll Header : ĠHorizontal Scroll TableView Ġ= Ġthis . findViewById ( R . id . table _ data _ scroll _ header ) čĊĠĠĠĠĠĠĠ Ġval Ġscroll Column Data : ĠHorizontal Scroll TableView Ġ= Ġthis . findViewById ( R . id . table _ data _ scroll _ column _ data ) čĊĠĠĠĠĠĠĠ Ġval Ġscroll Fix : ĠVertical Scroll TableView Ġ= Ġthis . findViewById ( R . id . table _ data _ scroll _ fix ) čĊĠĠĠĠĠĠĠ Ġval Ġscroll Row Data : ĠVertical Scroll TableView Ġ= Ġthis . findViewById ( R . id . table _ data _ scroll _ row _ data ) čĊčĊĠĠĠĠĠĠĠ Ġscroll Header . listener Ġ= Ġobject : ĠOn Scroll Listener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Scroll Changed ( view : ĠView , Ġx : ĠInt , Ġy : ĠInt , Ġold X : ĠInt , Ġold Y : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll Column Data . scrollTo ( x , Ġy ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġscroll Column Data . listener Ġ= Ġobject : ĠOn Scroll Listener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Scroll Changed ( view : ĠView , Ġx : ĠInt , Ġy : ĠInt , Ġold X : ĠInt , Ġold Y : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll Header . scrollTo ( x , Ġy ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġscroll Fix . listener Ġ= Ġobject : ĠOn Scroll Listener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Scroll Changed ( view : ĠView , Ġx : ĠInt , Ġy : ĠInt , Ġold X : ĠInt , Ġold Y : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll Row Data . scrollTo ( x , Ġy ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġscroll Row Data . listener Ġ= Ġobject : ĠOn Scroll Listener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Scroll Changed ( view : ĠView , Ġx : ĠInt , Ġy : ĠInt , Ġold X : ĠInt , Ġold Y : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll Fix . scrollTo ( x , Ġy ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐ¡ Ð¾ Ñħ ÑĢÐ°Ð½ ÐµÐ½Ð¸Ðµ ĠÐ·Ð½Ð°Ñĩ ÐµÐ½Ð¸Ñı . Ġ*/ čĊĠĠĠ Ġprivate Ġfun Ġapply Dialog ( view : ĠLinearLayout ) Ġ{ čĊĠĠĠĠĠĠĠ Ġ// Ð¿ Ð¾Ð» ÑĥÑĩ Ð°ÐµÐ¼ ĠÐº Ð¾ Ð¾ÑĢ Ð´ Ð¸Ð½ Ð°ÑĤ Ñĭ ĠÑģÑĤÑĢÐ¾Ðº Ð¸ ĠÐ² ĠÑĤ Ð°Ð±Ð»Ð¸ÑĨ Ðµ čĊĠĠĠĠĠĠĠ Ġval Ġrow Id : ĠInt ? Ġ= Ġview . getTag ( R . id . stv _ tag _ row _ id )?. toString ()?. toInt () čĊčĊĠĠĠĠĠĠĠ Ġ// Ð¾Ð±ÑħÐ¾Ð´ Ð¸Ð¼ ĠÐ²ÑģÐµ ĠÐ¿Ð¾Ð» Ñı ĠÐ² Ð² Ð¾Ð´Ð° čĊĠĠĠĠĠĠĠ Ġrow Id ?. let Ġ{ Ġrow Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( ind Ġin Ġ 0 Ġuntil Ġview . child Count ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġview . getChild At ( ind ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedit Text Ġ= Ġitem . findViewById < EditText >( R . id . edit _ value ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolumn Id : ĠInt ? Ġ= Ġedit Text . getTag ( R . id . stv _ tag _ column _ id )?. toString ()?. toInt () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġedit Text . text . toString () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn Id ?. let Ġ{ Ġcolumn Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ð¾Ð± Ð½Ð¾Ð² Ð»Ñı ÐµÐ¼ ĠÐ·Ð½Ð°ÑĩÐµÐ½Ð¸Ðµ ĠÐ² ĠÐ½ ÑĥÐ¶ Ð½Ð¾Ð¹ ĠÑı Ñĩ ÐµÐ¹ ÐºÐµ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolumn View Ġ= Ġget Cell View ( row , Ġcolumn ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn View ?. findViewById < TextView >( R . id . table _ data _ item )?. text Ġ= Ġvalue čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . update Value ( row , Ġcolumn , Ġvalue ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐŀ ÑĤ Ð¼ÐµÐ½ Ð° ĠÐ·Ð½Ð°Ñĩ ÐµÐ½Ð¸Ð¹ . Ġ*/ čĊĠĠĠ Ġprivate Ġfun Ġcancel Dialog ( dialog : ĠDialog Interface , Ġview : ĠLinearLayout ) Ġ{ čĊĠĠĠĠĠĠĠ Ġ// Ð¿ Ð¾Ð» ÑĥÑĩ Ð°ÐµÐ¼ ĠÐº Ð¾ Ð¾ÑĢ Ð´ Ð¸Ð½ Ð°ÑĤ Ñĭ ĠÑģÑĤÑĢÐ¾Ðº Ð¸ ĠÐ² ĠÑĤ Ð°Ð±Ð»Ð¸ÑĨ Ðµ čĊĠĠĠĠĠĠĠ Ġval Ġrow Id : ĠInt ? Ġ= Ġview . getTag ( R . id . stv _ tag _ row _ id )?. toString ()?. toInt () čĊĠĠĠĠĠĠĠ Ġrow Id ?. let Ġ{ Ġpresenter . c anceled Change Values ( it ) Ġ} čĊĠĠĠĠĠĠĠ Ġdialog . cancel () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐĿ Ð°Ð¹ ÑĤÐ¸ ĠÐ½ ÑĥÐ¶ Ð½ÑĥÑİ ĠÑı Ñĩ ÐµÐ¹ ÐºÑĥ . Ġ*/ čĊĠĠĠ Ġprivate Ġfun Ġget Cell View ( row Id : ĠInt , Ġcolumn Id : ĠInt ): ĠView ? Ġ{ čĊĠĠĠĠĠĠĠ Ġvar Ġid Ġ= Ġcolumn Id čĊĠĠĠĠĠĠĠ Ġvar Ġtable : ĠTable Layout Ġ= Ġtable Fix čĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ>= Ġparams . count Fix Column ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtable Ġ= Ġtable Data čĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġcolumn Id Ġ- Ġparams . count Fix Column čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( params . enabled Icon Delete ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ+= Ġ 1 Ġ// Ð½Ðµ ĠÑĥ Ñĩ Ð¸ÑĤ ÑĭÐ² Ð°ÐµÐ¼ ĠÑģÑĤ Ð¾Ð» Ð± Ðµ ÑĨ ĠÑģ ĠÐ¸ Ðº Ð¾Ð½ Ðº Ð°Ð¼Ð¸ ĠÑĥ Ð´Ð°Ð» ÐµÐ½Ð¸Ñı , ĠÐ¸Ð· Ð¼ÐµÐ½ ÐµÐ½Ð¸Ñı čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ// Ð½Ð° ÑħÐ¾Ð´ Ð¸Ð¼ ĠÐ½ ÑĥÐ¶ Ð½ÑĥÑİ ĠÑı Ñĩ ÐµÐ¹ ÐºÑĥ čĊĠĠĠĠĠĠĠ Ġif Ġ( row Id Ġ< Ġtable . child Count ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrow View Ġ= Ġtable . getChild At ( row Id ) Ġas ? ĠTable Row čĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow View ?. let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( id Ġ< Ġit . child Count ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġit . getChild At ( id ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġ Ġnull čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐ¡ Ð¸Ð½ Ñħ ÑĢ Ð¾Ð½ Ð¸Ð· Ð¸ÑĢÐ¾Ð² Ð°ÑĤÑĮ ĠÑĢÐ°Ð· Ð¼ ÐµÑĢ Ñĭ ĠÑģÑĤ Ð¾Ð» Ð± ÑĨ Ð¾Ð² ĠÐ· Ð°Ð³ Ð¾Ð» Ð¾Ð² ÐºÐ° Ġc Ð¾ ĠÑģÑĤ Ð¾Ð» Ð± ÑĨ Ð°Ð¼Ð¸ ĠÑĤ Ð°Ð±Ð»Ð¸ÑĨ Ñĭ . Ġ*/ čĊĠĠĠ Ġprivate Ġfun Ġupdate Column Width ( tr Header : ĠTable Row , Ġtr First : ĠTable Row ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġtr First ?. let Ġ{ Ġfirst Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( column Id Ġin Ġ 0 Ġuntil Ġtr Header . child Count ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( first . getChild At ( column Id ) Ġ== Ġnull Ġ|| Ġtr Header . getChild At ( column Id ) Ġ== Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ð² Ñĭ Ñĩ Ð¸Ñģ Ð»Ñı ÐµÐ¼ ĠÑĪ Ð¸ÑĢ Ð¸Ð½ Ñĥ ĠÐ¸ ĠÐ·Ð°Ð´ Ð°ÐµÐ¼ ĠÐµ Ðµ ĠÐ½Ð° ĠÐ· Ð°Ð³ Ð¾Ð» Ð¾Ð² Ð¾Ðº ĠÐ¸ ĠÐ²Ñģ Ñİ ĠÑĤ Ð°Ð±Ð»Ð¸ÑĨ Ñĥ ĠÑģ ĠÐ´Ð°Ð½ Ð½Ñĭ Ð¼Ð¸ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= ĠMath . max ( first . getChild At ( column Id ). width , Ġtr Header . getChild At ( column Id ). width ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst . getChild At ( column Id ). minimum Width Ġ= Ġwidth čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtr Header . getChild At ( column Id ). minimum Width Ġ= Ġwidth čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐŁ Ð¾Ð¼ ÐµÑĤ Ð¸ÑĤÑĮ ĠÑģÑĤÑĢÐ¾Ðº Ñĥ ĠÑĥ Ð´Ð°Ð» ÐµÐ½ Ð½Ð¾Ð¹ ĠÐ¸Ð»Ð¸ ĠÐ² Ð¾Ñģ ÑģÑĤÐ°Ð½Ð¾Ð² Ð»ÐµÐ½ Ð½Ð¾Ð¹ . Ġ*/ čĊĠĠĠ Ġprivate Ġfun Ġset Row Enabled ( table Row : ĠTable Row , Ġis Deleted : ĠBoolean ) Ġ{ čĊĠĠĠĠĠĠĠ Ġif Ġ( is Deleted ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtable Row . setBackground Resource ( R . color . stv _ row _ delete _ color ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtable Row . background Ġ= Ġnull čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ// Ð´ÐµÐ» Ð°ÐµÐ¼ ĠÐ° Ðº ÑĤ Ð¸Ð² Ð½Ñĭ Ð¼Ð¸ ĠÐ¸Ð»Ð¸ ĠÐ½Ðµ ĠÐ° Ðº ÑĤ Ð¸Ð² Ð½Ñĭ Ð¼Ð¸ ĠÐ²ÑģÐµ ĠÐºÐ¾Ð» Ð¾Ð½ ÐºÐ¸ čĊĠĠĠĠĠĠĠ Ġfor Ġ( column Id Ġin Ġ 0 Ġuntil Ġtable Row . child Count ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġtable Row . getChild At ( column Id ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < TextView >( R . id . table _ data _ item )?. isEnabled Ġ= Ġ! is Deleted čĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . is Clickable Ġ= Ġ! is Deleted čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/** ĠÐŀ Ð± ÑĢÐ°Ð±Ð¾ÑĤ ÐºÐ° ĠÐº Ð»Ð¸ ÐºÐ° ĠÐ¿Ð¾ ĠÐ·Ð½Ð°Ñĩ ÐµÐ½Ð¸ Ñİ ĠÑģÑĤÑĢÐ¾Ðº Ð¸ . Ġ*/ čĊĠĠĠ Ġprivate Ġfun Ġcell ClickListener ( row Id : ĠInt ) Ġ= čĊĠĠĠĠĠĠĠ ĠOn ClickListener Ġ{ Ġ_ Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater ?. let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . builder Edit Dialog ( context , Ġit , Ġrow Id ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ }