// Ġ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 . openapi . editor . toolbar . floating Ċ Ċ import Ġcom . intellij . ide . DataManager Ċ import Ġcom . intellij . openapi . Disposable Ċ import Ġcom . intellij . openapi . action System . Action Group Ċ import Ġcom . intellij . openapi . action System . Action Places Ċ import Ġcom . intellij . openapi . action System . Action Toolbar Ċ import Ġcom . intellij . openapi . action System . DataProvider Ċ import Ġcom . intellij . openapi . action System . impl . Action Toolbar Impl Ċ import Ġcom . intellij . openapi . util . Dis poser Ċ import Ġcom . intellij . ui . JB Color Ċ import Ġjava . awt .* Ċ import Ġjavax . swing . Border Factory Ċ import Ġjavax . swing . J Component Ċ import Ġjavax . swing . JPanel Ċ Ċ class ĠFloating Toolbar Component Impl ( ĊĠ Ġparent Component : ĠJ Component , ĊĠ Ġprivate Ġval Ġcontext Component : ĠJ Component , ĊĠ Ġaction Group : ĠAction Group , ĊĠ Ġauto Hide able : ĠBoolean , ĊĠ Ġparent Disposable : ĠDis posable Ċ ) Ġ: ĠJPanel (), ĠFloating Toolbar Component , ĠData Provider Ġ{ ĊĊĠ Ġprivate Ġval Ġaction Toolbar : ĠAction Toolbar ĊĠ Ġprivate Ġval Ġvisibility Controller : ĠVisibility Controller ĊĊĠ Ġoverride Ġfun Ġupdate () Ġ= Ġaction Toolbar . update Actions Immediate ly () ĊĠ Ġoverride Ġfun Ġschedule Show () Ġ= Ġvisibility Controller . schedule Show () ĊĠ Ġoverride Ġfun Ġschedule Hide () Ġ= Ġvisibility Controller . schedule Hide () ĊĊĠ Ġoverride Ġfun ĠgetData ( data Id : ĠString ): ĠAny ? Ġ{ ĊĠĠĠ Ġif Ġ( Floating Toolbar Component . KEY .` is `( data Id )) Ġreturn Ġthis ĊĠĠĠ Ġval Ġdata Manager Ġ= ĠData Manager . getInstance () ĊĠĠĠ Ġval Ġdata Context Ġ= Ġdata Manager . getData Context ( context Component ) ĊĠĠĠ Ġreturn Ġdata Context . getData ( data Id ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġpaint Children ( g : ĠGraphics ) Ġ{ ĊĠĠĠ Ġval Ġgraphics Ġ= Ġg . create () Ġas ĠGraphics 2 D ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġval Ġalpha Ġ= Ġvisibility Controller . opacity Ġ* ĠFO REG ROUND _ ALPHA ĊĠĠĠĠĠ Ġgraphics . composite Ġ= ĠAlpha Composite . getInstance ( Alpha Composite . SRC _ AT OP , Ġalpha ) ĊĠĠĠĠĠ Ġsuper . paint Children ( graphics ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfinally Ġ{ ĊĠĠĠĠĠ Ġgraphics . dispose () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġpaint ( g : ĠGraphics ) Ġ{ ĊĠĠĠ Ġpaint Component ( g ) ĊĠĠĠ Ġsuper . paint ( g ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġpaint Component ( g : ĠGraphics ) Ġ{ ĊĠĠĠ Ġval Ġr Ġ= Ġbounds ĊĠĠĠ Ġval Ġgraphics Ġ= Ġg . create () Ġas ĠGraphics 2 D ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġval Ġalpha Ġ= Ġvisibility Controller . opacity Ġ* ĠBACK GROUND _ ALPHA ĊĠĠĠĠĠ Ġgraphics . composite Ġ= ĠAlpha Composite . getInstance ( Alpha Composite . SRC _ OVER , Ġalpha ) ĊĠĠĠĠĠ Ġgraphics . set Rendering Hint ( Rendering Hints . KEY _ ANTI ALIAS ING , ĠRendering Hints . VALUE _ ANTI ALIAS _ ON ) ĊĠĠĠĠĠ Ġgraphics . color Ġ= ĠBACK GROUND ĊĠĠĠĠĠ Ġgraphics . fill Round Rect ( 0 , Ġ 0 , Ġr . width , Ġr . height , Ġ 6 , Ġ 6 ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfinally Ġ{ ĊĠĠĠĠĠ Ġgraphics . dispose () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġlayout Ġ= ĠBorderLayout ( 0 , Ġ 0 ) ĊĠĠĠ Ġborder Ġ= ĠBorder Factory . create Empty Border () ĊĠĠĠ Ġis Opaque Ġ= Ġfalse ĊĠĠĠ Ġis Visible Ġ= Ġfalse ĊĊĠĠĠ Ġaction Toolbar Ġ= ĠAction Toolbar Impl ( Action Places . CONTEXT _ TOOL BAR , Ġaction Group , Ġtrue ) ĊĠĠĠ Ġaction Toolbar . setTarget Component ( this ) ĊĠĠĠ Ġaction Toolbar . setMinimum Button Size ( Dimension ( 2 2 , Ġ 2 2 )) ĊĠĠĠ Ġaction Toolbar . set Reserve Place Auto Popup Icon ( false ) ĊĠĠĠ Ġaction Toolbar . is Opaque Ġ= Ġfalse ĊĠĠĠ Ġadd ( action Toolbar , ĠBorderLayout . CENTER ) ĊĊĠĠĠ Ġvisibility Controller Ġ= ĠToolbar Visibility Controller ( auto Hide able , Ġparent Component , Ġaction Toolbar , Ġthis ) ĊĠĠĠ Ġvisibility Controller . schedule Hide () ĊĊĠĠĠ ĠDis poser . register ( parent Disposable , Ġvisibility Controller ) ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġval ĠBACK GROUND Ġ= ĠJ B Color . named Color (" Toolbar . Floating . background ", ĠJ B Color ( 0 xE DE DED , Ġ 0 x 4 5 4 A 4 D )) ĊĠĠĠ Ġprivate Ġconst Ġval ĠBACK GROUND _ ALPHA Ġ= Ġ 0 . 9 f ĊĠĠĠ Ġprivate Ġconst Ġval ĠFO REG ROUND _ ALPHA Ġ= Ġ 1 . 0 f ĊĠ Ġ} Ċ }