package Ġcom . cent ury link . md w . studio . ui . widgets Ċ Ċ import Ġcom . cent ury link . md w . draw . edit .* Ċ import Ġcom . cent ury link . md w . model . asset . Page let Ċ import Ġcom . cent ury link . md w . studio . proj . Project Setup Ċ import Ġcom . intellij . ide . Browser Util Ċ import Ġcom . intellij . ui . Document Adapter Ċ import Ġjava . awt . Component Ċ import Ġjava . awt . Dimension Ċ import Ġjavax . swing . Border Factory Ċ import Ġjavax . swing . JTextField Ċ import Ġjavax . swing . UI Manager Ċ import Ġjavax . swing . event . Document Event Ċ Ċ /** Ċ Ġ* ĠEdit able Ġlinks Ġare Ġdisplayed Ġas Ġtext Ġwidgets . Ċ Ġ*/ Ċ @ Suppress (" unused ") Ċ class ĠLink ( widget : ĠPage let . Widget ) Ġ: ĠSw ing Widget ( widget ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġbackground Ġ= ĠUI Manager . getColor (" Editor Pane . background ") ĊĠĠĠĠĠĠĠ Ġborder Ġ= ĠBorder Factory . create Empty Border () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( widget . is Readonly ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlink Label Ġ= ĠLink Label ( widget . url Ġ?: Ġwidget . label Ġ?: Ġwidget . value String Ġ?: Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlink Label . alignment X Ġ= ĠComponent . LEFT _ ALIGNMENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlink Label . click Listener Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidget . value String ?. let Ġ{ ĠBrowser Util . browse ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( link Label ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Field Ġ= ĠJTextField () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field . preferred Size Ġ= ĠDimension ( widget . width , Ġtext Field . preferred Size . height Ġ- Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( textField ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Project Setup . is Windows ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field . is Editable Ġ= Ġ! widget . is Readonly ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field . isEnabled Ġ= Ġ! widget . is Readonly ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field . text Ġ= Ġwidget . value String ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field . document . add Document Listener ( object Ġ: ĠDocument Adapter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtext Changed ( e : ĠDocument Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidget . value Ġ= Ġe . document . getText ( 0 , Ġe . document . length ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapply Update () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }