// ĠCopyright Ġ 2 0 0 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ package Ġcom . intellij . gr az ie . ide . ui . grammar . tabs . rules . component Ċ Ċ import Ġcom . intellij . gr az ie . ide . ui . components . dsl . msg Ċ import Ġcom . intellij . gr az ie . ide . ui . components . dsl . padding Ċ import Ġcom . intellij . gr az ie . ide . ui . components . dsl . panel Ċ import Ġcom . intellij . gr az ie . ide . ui . components . utils . Gr az ie Link Label Ċ import Ġcom . intellij . gr az ie . j language . Lang Ċ import Ġcom . intellij . gr az ie . text . Rule Ċ import Ġcom . intellij . gr az ie . utils . html Ċ import Ġcom . intellij . ide . Browser Util Ċ import Ġcom . intellij . openapi . util . N ls Safe Ċ import Ġcom . intellij . ui . ScrollPane Factory Ċ import Ġcom . intellij . ui . Side Border Ċ import Ġcom . intellij . ui . components . JB Panel With Empty Text Ċ import Ġcom . intellij . ui . components . labels . Link Label Ċ import Ġcom . intellij . ui . components . labels . Link Listener Ċ import Ġcom . intellij . ui . layout . mig Layout .* Ċ import Ġcom . intellij . util . ui . J BU I Ċ import Ġcom . intellij . util . ui . UI Util Ċ import Ġkotlinx . html . unsafe Ċ import Ġnet . mig info com . layout . CC Ċ import Ġnet . mig info com . swing . M ig Layout Ċ import Ġorg . jetbrains . annotations . NotNull Ċ import Ġjava . awt . Border Layout Ċ import Ġjavax . swing . J Editor Pane Ċ import Ġjavax . swing . ScrollPane Constants Ċ Ċ class ĠGr az ie Description Component Ġ{ ĊĠ Ġprivate Ġval Ġdescription Ġ= ĠJ Editor Pane (). apply Ġ{ ĊĠĠĠ Ġeditor Kit Ġ= ĠUI Util . get HT MLE d itor Kit () ĊĠĠĠ Ġis Editable Ġ= Ġfalse ĊĠĠĠ Ġis Opaque Ġ= Ġtrue ĊĠĠĠ Ġborder Ġ= Ġnull ĊĠĠĠ Ġbackground Ġ= Ġnull ĊĠ Ġ} ĊĠ Ġprivate Ġval Ġlink Ġ= ĠGr az ie Link Label ( msg (" gr az ie . settings . grammar . rule . description ")). apply Ġ{ ĊĠĠĠ Ġcomponent . isVisible Ġ= Ġfalse ĊĠ Ġ} ĊĊĠ Ġval Ġlistener : Ġ( Any ) Ġ-> ĠUnit ĊĠĠĠ Ġget () Ġ= Ġ{ Ġselection Ġ-> ĊĠĠĠĠĠ Ġval Ġurl Ġ= Ġif Ġ( selection Ġis ĠRule ) Ġselection . url Ġelse Ġnull ĊĠĠĠĠĠ Ġif Ġ( url Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlink . listener Ġ= ĠLink Listener Ġ{ Ġ_: Ġ@ NotNull ĠLink Label < Any ? >, Ġ_: ĠAny ? Ġ-> ĠBrowser Util . browse ( url ) Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġlink . component . isVisible Ġ= Ġurl Ġ!= Ġnull ĊĊĠĠĠĠĠ Ġval Ġcontent Ġ= ĠgetDescription Pane Content ( selection ) ĊĠĠĠĠĠ Ġdescription . text Ġ= Ġcontent ĊĠĠĠĠĠ Ġdescription . isVisible Ġ= Ġcontent . isNotBlank () ĊĠĠĠ Ġ} ĊĊĠ Ġval Ġcomponent Ġ= Ġpanel ( M ig Layout ( create Layout Constraints (). flow Y (). fill X (). grid Gap Y (" 7 "))) Ġ{ ĊĠĠĠ Ġborder Ġ= Ġpadding ( J BU I . in sets ( 3 0 , Ġ 2 0 , Ġ 0 , Ġ 0 )) ĊĠĠĠ Ġadd ( link . component , ĠCC (). grow (). hide Mode ( 3 )) ĊĊĠĠĠ Ġval Ġdescription Panel Ġ= ĠJ B Panel With Empty Text ( Border Layout ( 0 , Ġ 0 )). with Empty Text ( msg (" gr az ie . settings . grammar . rule . no - description ")) ĊĠĠĠ Ġdescription Panel . add ( description ) ĊĠĠĠ Ġadd ( ScrollPane Factory . create ScrollPane ( description Panel , ĠSide Border . NONE ). also Ġ{ ĊĠĠĠĠĠ Ġit . horizontal ScrollBar Policy Ġ= ĠScroll Pane Constants . HORIZONTAL _ SCROLL BAR _ NE VER ĊĠĠĠ Ġ}, ĠCC (). grow (). push ()) ĊĠ Ġ} ĊĊĠ Ġ@ N ls Safe ĊĠ Ġprivate Ġfun ĠgetDescription Pane Content ( meta : ĠAny ): ĠString Ġ= Ġwhen Ġ( meta ) Ġ{ ĊĠĠĠ Ġis ĠLang Ġ-> Ġhtml Ġ{ Ġunsafe Ġ{ Ġ+ msg (" gr az ie . settings . grammar . rule . language . template ", Ġmeta . native Name ) Ġ} Ġ} ĊĠĠĠ Ġis ĠString Ġ-> Ġhtml Ġ{ Ġunsafe Ġ{ Ġ+ msg (" gr az ie . settings . grammar . rule . category . template ", Ġmeta ) Ġ} Ġ} ĊĠĠĠ Ġis ĠRule Ġ-> Ġmeta . description ĊĠĠĠ Ġelse Ġ-> Ġ"" ĊĠ Ġ} Ċ } Ċ