// ĠCopyright Ġ 2 0 0 0 - 2 0 1 7 Ġ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 . debugger . streams . ui . impl Ċ Ċ import Ġcom . intellij . debugger . streams . ui . Linked Values Mapping Ċ import Ġcom . intellij . debugger . streams . ui . Trace Controller Ċ import Ġcom . intellij . debugger . streams . ui . Value With Position Ċ import Ġcom . intellij . ui . JB Color Ċ import Ġcom . intellij . ui . components . JB Label Ċ import Ġcom . intellij . util . ui . Graphics Util Ċ import Ġcom . intellij . util . ui . J BU I Ċ import Ġcom . intellij . util . ui . UI Util Ċ import Ġjava . awt .* Ċ import Ġjavax . swing . JPanel Ċ import Ġjavax . swing . Swing Constants ĊĊ Ċ /** Ċ Ġ* Ġ@ author ĠV ital iy . Bib ae v Ċ Ġ*/ Ċ class ĠMapping Pane ( name : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfull Call Expression : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġbefore Values : ĠList < Value With Position >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġmapping : ĠLinked Values Mapping , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġcontroller : ĠTrace Controller ) Ġ: ĠJPanel ( Border Layout ()) Ġ{ ĊĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġval ĠD ARC ULA _ LINE _ COLOR Ġ= ĠLine Color ( regular Ġ= ĠJ B Color . GRAY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Ġ= ĠJ B Color . BLUE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinactive Ġ= ĠJ B Color ({ ĠColor ( 9 2 , Ġ 9 2 , Ġ 9 2 ) Ġ})) ĊĠĠĠ Ġval ĠIN TEL LI J _ LINE _ COLOR Ġ= ĠLine Color ( regular Ġ= ĠJ B Color ({ ĠColor ( 1 6 8 , Ġ 1 6 8 , Ġ 1 6 8 ) Ġ}), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Ġ= ĠJ B Color ({ ĠColor ( 0 , Ġ 9 6 , Ġ 2 2 9 ) Ġ}), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinactive Ġ= ĠJ B Color ({ ĠColor ( 2 0 4 , Ġ 2 0 4 , Ġ 2 0 4 ) Ġ})) ĊĊĠĠĠ Ġval ĠST RO KE Ġ= ĠBasic Stroke ( J BU I . scale ( 1 . toFloat ())) ĊĠ Ġ} ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġval Ġlabel Ġ= ĠJ B Label ( name , ĠSw ing Constants . CENTER ) ĊĠĠĠ Ġlabel . tool Tip Text Ġ= Ġfull Call Expression ĊĠĠĠ Ġlabel . border Ġ= ĠJ BU I . B orders . empty ( 2 , Ġ 0 , Ġ 3 , Ġ 0 ) ĊĠĠĠ Ġadd ( label , ĠBorderLayout . NORTH ) ĊĠĠĠ Ġadd ( My Draw Pane (), ĠBorderLayout . CENTER ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġinner Ġclass ĠMy Draw Pane Ġ: ĠJPanel () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġpaint Component ( g : ĠGraphics ?) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( g Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġif Ġ( g Ġis ĠGraphics 2 D ) Ġ{ ĊĠĠĠĠĠĠĠ Ġg . stroke Ġ= ĠST RO KE ĊĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= ĠGraphics Util . setup A AP aint ing ( g ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcolors Ġ= Ġif Ġ( UI Util . is Under Dar cul a ()) ĠD ARC ULA _ LINE _ COLOR Ġelse ĠIN TEL LI J _ LINE _ COLOR ĊĠĠĠĠĠĠĠ Ġif Ġ( isSelected Exist ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġdraw Lines ( g , Ġcolors . inactive , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠ Ġdraw Lines ( g , Ġcolors . selected , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġdraw Lines ( g , Ġcolors . regular , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconfig . restore () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Selected Exist (): ĠBoolean Ġ= Ġcontroller . is Selection Exists ĊĊĊĠĠĠ Ġprivate Ġfun Ġdraw Lines ( g : ĠGraphics 2 D , Ġcolor : ĠColor , Ġhighlighted : ĠBoolean ) Ġ{ ĊĠĠĠĠĠ Ġval Ġx 1 Ġ= Ġx ĊĠĠĠĠĠ Ġval Ġx 2 Ġ= Ġx Ġ+ Ġwidth ĊĠĠĠĠĠ Ġg . color Ġ= Ġcolor ĊĠĠĠĠĠ Ġfor Ġ( value Ġin Ġbefore Values ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlinked Values Ġ= Ġmapping . get Linked Values ( value ) Ġ?: Ġcontinue ĊĠĠĠĠĠĠĠ Ġfor Ġ( next Value Ġin Ġlinked Values ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( need To Draw ( value , Ġnext Value ) Ġ&& Ġhighlighted Ġ== Ġneed To Highlight ( value , Ġnext Value )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy 1 Ġ= Ġvalue . position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy 2 Ġ= Ġnext Value . position ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġg . draw Line ( x 1 , Ġy 1 , Ġx 2 , Ġy 2 ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġneed To Draw ( left : ĠValue With Position , Ġright : ĠValue With Position ): ĠBoolean Ġ= Ġleft . isVisible Ġ|| Ġright . isVisible ĊĊĠĠĠ Ġprivate Ġfun Ġneed To Highlight ( left : ĠValue With Position , Ġright : ĠValue With Position ): ĠBoolean Ġ= Ġleft . is Highlight ed Ġ&& Ġright . is Highlight ed ĊĠ Ġ} ĊĊĠ Ġprivate Ġdata Ġclass ĠLine Color ( val Ġregular : ĠJ B Color , Ġval Ġselected : ĠJ B Color , Ġval Ġinactive : ĠJ B Color ) Ċ } Ċ