package Ġkr . ac . sn u . hc il . om n itr ack . core . fields . helpers Ċ Ċ import Ġandroid . content . Context Ċ import Ġio . realm . Realm Ċ import Ġkr . ac . sn u . hc il . android . common . containers . Unique String Entry List Ċ import Ġkr . ac . sn u . hc il . om n itr ack . R Ċ import Ġkr . ac . sn u . hc il . om n itr ack . core . fields . Numeric Character istics Ċ import Ġkr . ac . sn u . hc il . om n itr ack . core . fields . log ics . A FieldValue Sorter Ċ import Ġkr . ac . sn u . hc il . om n itr ack . core . fields . log ics . Choice Sorter Ċ import Ġkr . ac . sn u . hc il . om n itr ack . core . fields . properties . OT Choice Entry List Property Helper Ċ import Ġkr . ac . sn u . hc il . om n itr ack . core . fields . properties . OT Property Helper Ċ import Ġkr . ac . sn u . hc il . om n itr ack . core . fields . properties . OT Property Manager Ċ import Ġkr . ac . sn u . hc il . om n itr ack . core . database . models . OT Field DAO Ċ import Ġkr . ac . sn u . hc il . om n itr ack . core . serialization . TypeString Serialization Helper Ċ import Ġkr . ac . sn u . hc il . om n itr ack . core . visualization . Chart Model Ċ import Ġkr . ac . sn u . hc il . om n itr ack . core . visualization . models . Choice Categor ical Bar Chart Model Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠYo ung - Ho Ġon Ġ 1 0 / 7 / 2 0 1 7 . Ċ Ġ*/ Ċ class ĠO T Choice Field Helper ( context : ĠContext ) Ġ: ĠO T Field Helper ( context ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPROPERTY _ MULTI SELECTION Ġ= Ġ" multi Selection " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPROPERTY _ ENTR IES Ġ= Ġ" entries " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPROPERTY _ ALLOW _ APPEND ING _ FROM _ VIEW Ġ= Ġ" allow App ending From View " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetValue Numeric Character istics ( field : ĠO T Field DAO ): ĠNumeric Character istics Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( getIs Multi Selection Allowed ( field ) Ġ== Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNumeric Character istics ( false , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġelse ĠNumeric Character istics ( true , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget TypeName ResourceId ( field : ĠO T Field DAO ): ĠInt Ġ= ĠR . string . type _ choice _ name ĊĊĠĠĠ Ġoverride Ġfun ĠgetType Small Icon ResourceId ( field : ĠO T Field DAO ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( getIs Multi Selection Allowed ( field ) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . icon _ small _ multiple _ choice ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĠR . drawable . icon _ small _ single _ choice ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval ĠtypeName For Serialization : ĠString Ġ= ĠType String Serialization Helper . TYP ENAME _ INT _ ARRAY ĊĊĠĠĠ Ġoverride Ġfun Ġget Supported Sort ers ( field : ĠO T Field DAO ): ĠArray < A FieldValue Sorter > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠChoice Sorter ( field . name , Ġget Choice Entries ( field ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠUnique String Entry List (), Ġfield . local Id ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġproperty Keys : ĠArray < String > Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPROPERTY _ MULTI SELECTION , ĠPROPERTY _ ALLOW _ APPEND ING _ FROM _ VIEW , ĠPROPERTY _ ENTR IES ) ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > ĠgetProperty Helper ( property Key : ĠString ): ĠO T Property Helper < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( property Key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPROPERTY _ MULTI SELECTION Ġ-> Ġproperty Manager . get Helper ( OT Property Manager . E PropertyType . Boolean ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPROPERTY _ ALLOW _ APPEND ING _ FROM _ VIEW Ġ-> Ġproperty Manager . get Helper ( OT Property Manager . E PropertyType . Boolean ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPROPERTY _ ENTR IES Ġ-> Ġproperty Manager . get Helper ( OT Property Manager . E PropertyType . Choice Entry List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Unsupported Ġproperty Ġkey Ġ$ property Key ") ĊĠĠĠĠĠĠĠ Ġ} Ġas ĠO T Property Helper < T > ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetProperty Initial Value ( property Key : ĠString ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( property Key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPROPERTY _ MULTI SELECTION Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPROPERTY _ ALLOW _ APPEND ING _ FROM _ VIEW Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPROPERTY _ ENTR IES Ġ-> ĠUnique String Entry List (( property Manager . get Helper ( OT Property Manager . E PropertyType . Choice Entry List ) Ġas ĠO T Choice Entry List Property Helper ). preview Choice Entries ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠgetProperty Title ( property Key : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( property Key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPROPERTY _ MULTI SELECTION Ġ-> Ġcontext . application Context . getString ( R . string . property _ choice _ allow _ multiple _ selections ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPROPERTY _ ALLOW _ APPEND ING _ FROM _ VIEW Ġ-> Ġcontext . application Context . getString ( R . string . msg _ allow _ append ing _ from _ view ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPROPERTY _ ENTR IES Ġ-> Ġcontext . application Context . getString ( R . string . property _ choice _ entries ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Is Multi Selection Allowed ( field : ĠO T Field DAO ): ĠBoolean ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Deserial ized PropertyValue < Boolean >( PROPERTY _ MULTI SELECTION , Ġfield ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Is App ending From View Allowed ( field : ĠO T Field DAO ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Deserial ized PropertyValue < Boolean >( PROPERTY _ ALLOW _ APPEND ING _ FROM _ VIEW , Ġfield ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Choice Entries ( field : ĠO T Field DAO ): ĠUnique String Entry List ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Deserial ized PropertyValue ( PROPERTY _ ENTR IES , Ġfield ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmake Recommended Chart Models ( field : ĠO T Field DAO , Ġrealm : ĠRealm ): ĠArray < Chart Model <* >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf ( Choice Categor ical Bar Chart Model ( field , Ġrealm , Ġcontext )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Choice Texts ( field : ĠO T Field DAO , Ġvalue : ĠInt Array ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentries Ġ= Ġget Choice Entries ( field ) ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠ Ġif Ġ( entries Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( id Entry Ġin Ġvalue . with Index ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex In Entries Ġ= Ġentries . indexOf ( id Entry . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index In Entries Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( entries [ index In Entries ]. text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġformat AttributeValue ( field : ĠO T Field DAO , Ġvalue : ĠAny ): ĠCharSequence Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġis ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Choice Texts ( field , Ġvalue ). join ToString (",") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġreturn Ġsuper . format AttributeValue ( field , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Add Value ToTable ( field : ĠO T Field DAO , Ġvalue : ĠAny ?, Ġout : ĠMutable List < String ? >, Ġuniq Key : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġis ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . add ( get Choice Texts ( field , Ġvalue ). join ToString ("," )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġout . add ( null ) ĊĠĠĠ Ġ} Ċ }