/* Ċ Ġ* Ġ ĠLicensed Ġto Ġthe ĠApache ĠSoftware ĠFoundation Ġ( ASF ) Ġunder Ġone Ċ Ġ* Ġ Ġor Ġmore Ġcontributor Ġlicense Ġagreements . Ġ ĠSee Ġthe ĠNOTICE Ġfile Ċ Ġ* Ġ Ġdistributed Ġwith Ġthis Ġwork Ġfor Ġadditional Ġinformation Ċ Ġ* Ġ Ġregarding Ġcopyright Ġownership . Ġ ĠThe ĠASF Ġlicenses Ġthis Ġfile Ċ Ġ* Ġ Ġto Ġyou Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ċ Ġ* Ġ Ġ" License "); Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ċ Ġ* Ġ Ġwith Ġthe ĠLicense . Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ċ Ġ* Ġ Ġsoftware Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ċ Ġ* Ġ Ġ" AS ĠIS " ĠBASIS , ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY Ċ Ġ* Ġ ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ċ Ġ* Ġ Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ġlimitations Ċ Ġ* Ġ Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġorg . apache . isis . client . k ro viz . ui . kv Ċ Ċ import Ġorg . apache . isis . client . k ro viz . core . event . Event Store Ċ import Ġorg . apache . isis . client . k ro viz . core . model . Ex poser Ċ import Ġorg . apache . isis . client . k ro viz . core . model . List DM Ċ import Ġpl . tre k soft . k vision . html . Button Ċ import Ġpl . tre k soft . k vision . html . ButtonStyle Ċ import Ġpl . tre k soft . k vision . tab ulator . Align Ċ import Ġpl . tre k soft . k vision . tab ulator . Column Definition Ċ import Ġpl . tre k soft . k vision . tab ulator . Editor Ċ import Ġpl . tre k soft . k vision . tab ulator . Formatter Ċ import Ġpl . tre k soft . k vision . tab ulator . js . Tab ulator Ċ import Ġpl . tre k soft . k vision . utils . obj Ċ Ċ /** Ċ Ġ* ĠCreate ĠColumn Definitions Ġfor ĠTab ulator Ġtables Ċ Ġ*/ Ċ class ĠColumn Factory Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcheck Formatter Params Ġ= Ġobj Ġ{ ĊĠĠĠĠĠĠĠ Ġallow Empty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġallow Truthy Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġtick Element Ġ= Ġ"< i Ġclass =' fa Ġfa - square - o '></ i >" ĊĠĠĠĠĠĠĠ Ġcross Element Ġ= Ġ"< i Ġclass =' fa Ġfa - check - square - o '></ i >" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġmenu Formatter Params Ġ= Ġobj Ġ{ ĊĠĠĠĠĠĠĠ Ġallow Empty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġallow Truthy Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġtick Element Ġ= Ġ"< i Ġclass =' fa Ġfa - ellipsis - v '></ i >" ĊĠĠĠĠĠĠĠ Ġcross Element Ġ= Ġ"< i Ġclass =' fa Ġfa - ellipsis - v '></ i >" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbuild Columns ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay List : ĠList DM , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith CheckBox : ĠBoolean Ġ= Ġfalse ): ĠList < Column Definition < dynamic >> Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġcolumns Ġ= Ġmutable ListOf < Column Definition < dynamic >>() ĊĠĠĠĠĠĠĠ Ġif Ġ( with CheckBox ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcheckBox Ġ= Ġbuild CheckBox () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumns . add ( checkBox ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmenu Ġ= Ġbuild Menu () ĊĠĠĠĠĠĠĠ Ġcolumns . add ( menu ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġdisplay List . data Ġas ĠList < dynamic > ĊĠĠĠĠĠĠĠ Ġif Ġ( model [ 0 ]. hasOwnProperty (" icon Name ") Ġas ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġicon Ġ= Ġbuild Link Icon () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumns . add ( icon ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġproperty Labels Ġ= Ġdisplay List . property Description List ĊĠĠĠĠĠĠĠ Ġfor Ġ( pl Ġin Ġproperty Labels ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġpl . key ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfriendly Name Ġ= Ġpl . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcd Ġ= ĠColumn Definition < Ex poser >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġfriendly Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Filter Ġ= ĠEditor . INPUT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( id Ġ== Ġ" object ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcd Ġ= Ġbuild Link () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumns . add ( cd ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcolumns ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Link Icon (): ĠColumn Definition < Ex poser > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠColumn Definition < dynamic >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġ" icon Name ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġho z Align Ġ= ĠAlign . CENTER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ" 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformatter Component Function Ġ= Ġ{ Ġ_, Ġ_, Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Button ( data , Ġdata [" icon Name "] Ġas ? ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Button ( data : ĠEx poser , Ġicon Name : ĠString ?): ĠButton Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġt Object Ġ= Ġdata . delegate ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= ĠButton ( text Ġ= Ġ"", Ġicon Ġ= Ġicon Name , Ġstyle Ġ= ĠButton Style . LINK ). onClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUi Manager . display Model ( t Object ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlog Entry Ġ= ĠEvent Store . find ( t Object ) !! ĊĠĠĠĠĠĠĠ Ġb . set Drag Drop Data ( Constants . std MimeType , Ġlog Entry . url ) ĊĠĠĠĠĠĠĠ Ġreturn Ġb ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġbuild Link (): ĠColumn Definition < Ex poser > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠColumn Definition < dynamic >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Result ListResult ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġ" result ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Filter Ġ= ĠEditor . INPUT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformatter Component Function Ġ= Ġ{ Ġ_, Ġ_, Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( text Ġ= Ġdata [" object "]. title Ġas ĠString , Ġicon Ġ= Ġ" fas Ġfa - star - o ", Ġstyle Ġ= ĠButton Style . LINK ). onClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconsole . log ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild CheckBox (): ĠColumn Definition < Ex poser > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠColumn Definition < Ex poser >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġ" selected ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformatter Ġ= ĠFormatter . TICK CROSS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformatter Params Ġ= Ġcheck Formatter Params , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformatter Component Function Ġ= Ġ{ Ġcell , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isSelected ( cell )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Ġ{" < i Ġclass =' fa Ġfa - check - square - o '></ i > "} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Ġ{" < i Ġclass =' fa Ġfa - square - o '></ i > "} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġho z Align Ġ= ĠAlign . CENTER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ" 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Sort Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcell Click Ġ= Ġ{ Ġevt , Ġcell Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevt . stopPropagation () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Selection ( cell ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Menu (): ĠColumn Definition < Ex poser > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠColumn Definition ("", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġ" icon Name ", Ġ// Ġany Ġexisting Ġfield Ġcan Ġbe Ġused ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformatter Ġ= ĠFormatter . TICK CROSS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformatter Params Ġ= Ġmenu Formatter Params , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġho z Align Ġ= ĠAlign . CENTER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ" 6 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Sort Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformatter Component Function Ġ= Ġ{ Ġ_, Ġ_, Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt Object Ġ= Ġdata . delegate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMenu Factory . build For Object ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt Object , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetData ( cell : ĠTab ulator . Cell Component ): ĠEx poser Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrow Ġ= Ġcell . getRow () ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġrow . getData (). as Dynamic () ĊĠĠĠĠĠĠĠ Ġreturn Ġdata Ġas ĠEx poser ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtoggle Selection ( cell : ĠTab ulator . Cell Component ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġex poser Ġ= ĠgetData ( cell ) ĊĠĠĠĠĠĠĠ Ġval ĠoldValue Ġ= Ġex poser . selected ĊĠĠĠĠĠĠĠ Ġex poser . selected Ġ= Ġ! oldValue ĊĠĠĠ Ġ} Ċ Ċ } Ċ