package Ġio . github . will 7 2 0 0 . plugins . cas bin . view . ui Ċ Ċ import Ġcom . intellij . ide . util . Properties Component Ċ import Ġcom . intellij . openapi . diagnostic . Logger Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . ui . TextField With Browse Button Ċ import Ġjavax . swing . event . Document Event Ċ Ċ class ĠPers isted TextField With Browse Button Ġ: ĠTextField With Browse Button () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlog : ĠLogger Ġ= ĠLogger . getInstance ( this :: class . java ) ĊĠĠĠ Ġvar Ġproject : ĠProject ? Ġ= Ġnull ; ĊĠĠĠ Ġvar Ġkey : ĠString ? Ġ= Ġnull ; ĊĠĠĠ Ġprivate Ġval Ġpc : ĠProperties Component Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġproject ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ lazy ĠProperties Component . getInstance ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn @ lazy ĠProperties Component . getInstance () ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġprefix Key Ġ= Ġ" io . github . will 7 2 0 0 . plugins . cas bin " ĊĠĠĠ Ġprivate Ġval Ġinternal Key : ĠString Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġ"${ prefix Key }.${ key !! }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . textField . document . add Document Listener ( object Ġ: ĠSimple Document Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġupdate ( e : ĠDocument Event ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpc . setValue ( internal Key , Ġtext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload ( p Key : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġload ( null , Ġp Key ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload ( p Project : ĠProject ?, Ġp Key : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġp Project ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . project Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . key Ġ= Ġp Key ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġpc . getValue ( internal Key ) ĊĠĠĠĠĠĠĠ Ġsuper . setText ( text ) ĊĠĠĠ Ġ} Ċ Ċ }