/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 0 5 - 2 0 1 9 ĠRad iance ĠK ir ill ĠGro uch nik ov . ĠAll ĠRights ĠReserved . Ċ Ġ* Ċ Ġ* ĠRedistribution Ġand Ġuse Ġin Ġsource Ġand Ġbinary Ġforms , Ġwith Ġor Ġwithout Ċ Ġ* Ġmodification , Ġare Ġpermitted Ġprovided Ġthat Ġthe Ġfollowing Ġconditions Ġare Ġmet : Ċ Ġ* Ċ Ġ* Ġ Ġo ĠRedistributions Ġof Ġsource Ġcode Ġmust Ġretain Ġthe Ġabove Ġcopyright Ġnotice , Ċ Ġ* ĠĠĠ Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer . Ċ Ġ* Ċ Ġ* Ġ Ġo ĠRedistributions Ġin Ġbinary Ġform Ġmust Ġreproduce Ġthe Ġabove Ġcopyright Ġnotice , Ċ Ġ* ĠĠĠ Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer Ġin Ġthe Ġdocumentation Ċ Ġ* ĠĠĠ Ġand / or Ġother Ġmaterials Ġprovided Ġwith Ġthe Ġdistribution . Ċ Ġ* Ċ Ġ* Ġ Ġo ĠNeither Ġthe Ġname Ġof Ġthe Ġcopyright Ġholder Ġnor Ġthe Ġnames Ġof Ċ Ġ* ĠĠĠ Ġits Ġcontributors Ġmay Ġbe Ġused Ġto Ġendorse Ġor Ġpromote Ġproducts Ġderived Ċ Ġ* ĠĠĠ Ġfrom Ġthis Ġsoftware Ġwithout Ġspecific Ġprior Ġwritten Ġpermission . Ċ Ġ* Ċ Ġ* ĠTHIS ĠSOFTWARE ĠIS ĠPROVIDED ĠBY ĠTHE ĠCOPYRIGHT ĠHOLDERS ĠAND ĠCONTRIBUTORS Ġ" AS ĠIS " Ċ Ġ* ĠAND ĠANY ĠEXPRESS ĠOR ĠIMPLIED ĠWARRANTIES , ĠINCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , Ċ Ġ* ĠTHE ĠIMPLIED ĠWARRANTIES ĠOF ĠMERCHANTABILITY ĠAND ĠFITNESS ĠFOR ĠA ĠPARTICULAR Ċ Ġ* ĠPURPOSE ĠARE ĠDISCLAIMED . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠCOPYRIGHT ĠOWNER ĠOR Ċ Ġ* ĠCONTRIBUTORS ĠBE ĠLIABLE ĠFOR ĠANY ĠDIRECT , ĠINDIRECT , ĠINCIDENTAL , ĠSPECIAL , Ċ Ġ* ĠEXEMPLARY , ĠOR ĠCONSEQUENTIAL ĠDAMAGES Ġ( INCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , Ċ Ġ* ĠPROCUREMENT ĠOF ĠSUBSTITUTE ĠGOODS ĠOR ĠSERVICES ; ĠLOSS ĠOF ĠUSE , ĠDATA , ĠOR ĠPROFITS ; Ċ Ġ* ĠOR ĠBUSINESS ĠINTERRUPTION ) ĠHOWEVER ĠCAUSED ĠAND ĠON ĠANY ĠTHEORY ĠOF ĠLIABILITY , Ċ Ġ* ĠWHETHER ĠIN ĠCONTRACT , ĠSTRICT ĠLIABILITY , ĠOR ĠTORT Ġ( INCLUDING ĠNEGLIGENCE Ċ Ġ* ĠOR ĠOTHERWISE ) ĠARISING ĠIN ĠANY ĠWAY ĠOUT ĠOF ĠTHE ĠUSE ĠOF ĠTHIS ĠSOFTWARE , Ċ Ġ* ĠEVEN ĠIF ĠADVISED ĠOF ĠTHE ĠPOSSIBILITY ĠOF ĠSUCH ĠDAMAGE . Ċ Ġ*/ Ċ package Ġorg . push ing pixels . tools . apollo Ċ Ċ import Ġcom . j good ies . forms . builder . Form Builder Ċ import Ġcom . j good ies . forms . factories . P add ings Ċ import Ġorg . push ing pixels . meteor . add Typed Delayed Property ChangeListener Ċ import Ġorg . push ing pixels . meteor . awt . deep ForEach Ċ import Ġorg . push ing pixels . sub stance . api . color scheme . Sub stance Color Scheme Ċ import Ġjava . awt . Border Layout Ċ import Ġjava . awt . Color Ċ import Ġjava . awt . Font Ċ import Ġjavax . swing . Button Group Ċ import Ġjavax . swing . J CheckBox Ċ import Ġjavax . swing . JLabel Ċ import Ġjavax . swing . JPanel Ċ Ċ class ĠJ Color Scheme Component Ġ: ĠJPanel () Ġ{ ĊĠĠĠ Ġenum Ġclass ĠState Change Type Ġ{ ĊĠĠĠĠĠĠĠ ĠINITIAL IZED , ĠMO DI FIED , ĠRESET ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġis Light Checkbox : ĠJ CheckBox ĊĠĠĠ Ġprivate Ġval Ġname : ĠJLabel ĊĠĠĠ Ġprivate Ġval Ġul tra Light : ĠJ Color Component ĊĠĠĠ Ġprivate Ġval Ġextra Light : ĠJ Color Component ĊĠĠĠ Ġprivate Ġval Ġlight : ĠJ Color Component ĊĠĠĠ Ġprivate Ġval Ġmid : ĠJ Color Component ĊĠĠĠ Ġprivate Ġval Ġdark : ĠJ Color Component ĊĠĠĠ Ġprivate Ġval Ġul tra Dark : ĠJ Color Component ĊĠĠĠ Ġprivate Ġval Ġforeground : ĠJ Color Component ĊĠĠĠ Ġprivate Ġval Ġbg : ĠButton Group ĊĊĠĠĠ Ġprivate Ġval Ġstate Change Listeners : ĠMutable List <( StateChange Type ) Ġ-> ĠUnit > Ġ= Ġarray ListOf () ĊĊĠĠĠ Ġval ĠdisplayName : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis . name . text ĊĊĠĠĠ Ġval Ġul tra Light Color : ĠColor ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġul tra Light . color !! ĊĊĠĠĠ Ġval Ġextra Light Color : ĠColor ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġextra Light . color !! ĊĊĠĠĠ Ġval Ġlight Color : ĠColor ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġlight . color !! ĊĊĠĠĠ Ġval Ġmid Color : ĠColor ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġmid . color !! ĊĊĠĠĠ Ġval Ġdark Color : ĠColor ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdark . color !! ĊĊĠĠĠ Ġval Ġul tra Dark Color : ĠColor ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġul tra Dark . color !! ĊĊĠĠĠ Ġval Ġforeground Color : ĠColor ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġforeground . color !! ĊĊĠĠĠ Ġval Ġis Light : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġis Light Checkbox . isSelected ĊĊĠĠĠ Ġval Ġis Defined : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . name . text . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! this . ul tra Light . isDefined ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! this . extra Light . isDefined ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! this . light . isDefined ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! this . mid . isDefined ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! this . dark . isDefined ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! this . ul tra Dark . isDefined ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis . foreground . isDefined ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġselected Color Component : ĠJ Color Component ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . ul tra Light . radio . isSelected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis . ul tra Light ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . extra Light . radio . isSelected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis . extra Light ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . light . radio . isSelected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis . light ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . mid . radio . isSelected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis . mid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . dark . radio . isSelected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis . dark ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . ul tra Dark . radio . isSelected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis . ul tra Dark ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( this . foreground . radio . isSelected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . foreground ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . layout Ġ= ĠBorderLayout () ĊĊĠĠĠĠĠĠĠ Ġval Ġform Builder Ġ= ĠForm Builder . create (). columns (" fill : pref ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. rows (" p , Ġ\$ lg , Ġp , Ġ\$ lg , Ġp , Ġ\$ lg , Ġp , Ġ\$ lg , Ġp , Ġ\$ lg , Ġp , Ġ\$ lg , Ġp , Ġ\$ lg , Ġp "). padding ( P add ings . DIALOG ) ĊĊĠĠĠĠĠĠĠ Ġthis . bg Ġ= ĠButton Group () ĊĊĠĠĠĠĠĠĠ Ġthis . ul tra Light Ġ= Ġcreate Color Component (" ul tra Ġlight ") ĊĠĠĠĠĠĠĠ Ġthis . extra Light Ġ= Ġcreate Color Component (" extra Ġlight ") ĊĠĠĠĠĠĠĠ Ġthis . light Ġ= Ġcreate Color Component (" light ") ĊĠĠĠĠĠĠĠ Ġthis . mid Ġ= Ġcreate Color Component (" mid ") ĊĠĠĠĠĠĠĠ Ġthis . dark Ġ= Ġcreate Color Component (" dark ") ĊĠĠĠĠĠĠĠ Ġthis . ul tra Dark Ġ= Ġcreate Color Component (" ul tra Ġdark ") ĊĠĠĠĠĠĠĠ Ġthis . foreground Ġ= Ġcreate Color Component (" foreground ") ĊĊĠĠĠĠĠĠĠ Ġval Ġheader Builder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠForm Builder . create (). columns (" fill : pref , 2 dl u , fill : min ( 1 5 0 px ; pref ): grow , 4 dl u , right : pref "). rows (" p ") ĊĊĠĠĠĠĠĠĠ Ġname Ġ= ĠJLabel ("") ĊĠĠĠĠĠĠĠ Ġname . font Ġ= Ġname . font . derive Font ( Font . BOLD ) ĊĠĠĠĠĠĠĠ Ġis Light Checkbox Ġ= ĠJ CheckBox (" light ") ĊĠĠĠĠĠĠĠ Ġis Light Checkbox . isSelected Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġis Light Checkbox . is Focus able Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġheader Builder . add ( JLabel (" Display Ġname :" )). xy ( 1 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġheader Builder . add ( name ). xy ( 3 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġheader Builder . add ( is Light Checkbox ). xy ( 5 , Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġis Light Checkbox . addActionListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire StateChanged ( StateChange Type . MODI FIED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġform Builder . add ( header Builder . build ()). xy ( 1 , Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġform Builder . add ( ul tra Light ). xy ( 1 , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġform Builder . add ( extra Light ). xy ( 1 , Ġ 5 ) ĊĠĠĠĠĠĠĠ Ġform Builder . add ( light ). xy ( 1 , Ġ 7 ) ĊĠĠĠĠĠĠĠ Ġform Builder . add ( mid ). xy ( 1 , Ġ 9 ) ĊĠĠĠĠĠĠĠ Ġform Builder . add ( dark ). xy ( 1 , Ġ 1 1 ) ĊĠĠĠĠĠĠĠ Ġform Builder . add ( ul tra Dark ). xy ( 1 , Ġ 1 3 ) ĊĠĠĠĠĠĠĠ Ġform Builder . add ( foreground ). xy ( 1 , Ġ 1 5 ) ĊĊĠĠĠĠĠĠĠ Ġthis . add ( form Builder . panel , ĠBorderLayout . CENTER ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Color Component ( label : ĠString ): ĠJ Color Component Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠJ Color Component ( label , Ġnull ) ĊĠĠĠĠĠĠĠ Ġresult . add Typed Delayed Property ChangeListener < Color >( J Color Component :: selected Color . name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfire StateChanged ( StateChange Type . MODI FIED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . bg . add ( result . radio ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Content ( scheme : ĠSub stance Color Scheme ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . isEnabled Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġul tra Light . setColor ( scheme . ul tra Light Color , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġextra Light . setColor ( scheme . extra Light Color , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġlight . setColor ( scheme . light Color , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġmid . setColor ( scheme . mid Color , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġdark . setColor ( scheme . dark Color , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġul tra Dark . setColor ( scheme . ul tra Dark Color , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġforeground . setColor ( scheme . foreground Color , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġis Light Checkbox . isSelected Ġ= Ġ! scheme . is Dark ĊĠĠĠĠĠĠĠ Ġname . text Ġ= Ġscheme . displayName ĊĊĠĠĠĠĠĠĠ Ġfire StateChanged ( StateChange Type . INITIAL IZED ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Enabled ( enabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setEnabled ( enabled ) ĊĠĠĠĠĠĠĠ Ġthis . deep ForEach Ġ{ Ġit . isEnabled Ġ= Ġenabled Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear Content () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . isEnabled Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġul tra Light . setColor ( null , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġextra Light . setColor ( null , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġlight . setColor ( null , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġmid . setColor ( null , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġdark . setColor ( null , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġul tra Dark . setColor ( null , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġforeground . setColor ( null , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġis Light Checkbox . isSelected Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġname . text Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġfire StateChanged ( StateChange Type . RESET ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġthe Ġspecified Ġchange Ġlistener Ġto Ġtrack Ġchanges Ġto Ġthis Ġcomponent . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġl ĠChange Ġlistener Ġto Ġadd . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd State ChangeListener ( l : Ġ( StateChange Type ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . state Change Listeners . add ( l ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠNot ifies Ġall Ġregistered Ġlisteners Ġthat Ġthe Ġstate Ġof Ġthis Ġcomponent Ġhas Ġchanged . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġfire StateChanged ( state Change Type : ĠState Change Type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( listener Ġin Ġthis . state Change Listeners ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . invoke ( state Change Type ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ