package Ġio . github . mark us mo 3 . bm Ċ Ċ import Ġcom . intellij . openapi . action System .* Ċ import Ġcom . intellij . openapi . project . D umb Aware Ċ import Ġcom . intellij . openapi . ui . popup . JB Popup Ċ import Ġio . github . mark us mo 3 . bm . config . BM Node Ċ import Ġio . github . mark us mo 3 . bm . popup . B MA ction Group Popup Ċ import Ġjava . awt . Component Ċ Ċ class ĠInvoke B MP op up Action ( private Ġval Ġnode : ĠBM Node ) Ġ: ĠAn Action (), ĠD umb Aware Ġ{ ĊĊ ĉ init Ġ{ Ċĉ ĉ template Presentation . description Ġ= Ġ" Shows Ġthe Ġ'" Ġ+ Ġnode . custom Text Ġ+ Ġ"' Ġpopup ." Ċĉ ĉ template Presentation . setText ( node . custom Text , Ġfalse ) Ċ ĉ } ĊĊ ĉ override Ġfun ĠactionPerformed ( e : ĠAn ActionEvent ) Ġ{ Ċĉ ĉ val Ġpopup Ġ= ĠB MA ction Group Popup ( node , Ġe . data Context ) Ċĉ ĉ popup . show ( e . data Context ) Ċ ĉ } ĊĊ ĉ private Ġfun ĠJ B Popup . show ( data Context : ĠData Context ? Ġ= Ġnull ) Ġ{ Ċĉ ĉ val Ġcontext Component Ġ= Ġdata Context ?. getData ( Platform Data Keys . CONTEXT _ COMPONENT . name ) Ġas ? ĠComponent Ċĉ ĉ if Ġ( context Component Ġ!= Ġnull ) Ġ{ Ċĉĉ ĉ show In Center Of ( context Component ) Ċĉ ĉ } Ġelse Ġ{ Ċĉĉ ĉ show In Focus Center () Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ override Ġfun Ġset Shortcut Set ( shortcut Set : ĠShort cut Set ) Ġ{ Ċĉ ĉ super . set Shortcut Set ( shortcut Set ) Ċĉ ĉ if Ġ( set Node KeyStroke ) Ġ{ Ċĉĉ ĉ val Ġkey Stroke To Set Ġ= Ġshortcut Set . shortcuts . filter Ġ{ Ġit . is Keyboard Ġ} Ċĉĉĉĉ ĉ . map Ġ{ Ġit Ġas ĠKeyboard Shortcut Ġ} Ċĉĉĉĉ ĉ . filter Ġ{ Ġit . second KeyStroke Ġ== Ġnull Ġ} Ċĉĉĉĉ ĉ . map Ġ{ Ġit . first KeyStroke Ġ} Ċĉĉĉĉ ĉ . first OrNull () Ċĉĉ ĉ node . key Stroke Ġ= Ġkey Stroke To Set Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ comp anion Ġobject Ġ{ Ċĉ ĉ var Ġset Node KeyStroke Ġ= Ġtrue Ċ ĉ } Ċ Ċ }