package Ġru . coding 4 fun . intellij . database Ċ Ċ import Ġcom . intellij . database . actions . Database View Actions Ċ import Ġcom . intellij . ide . Common Actions Manager Ċ import Ġcom . intellij . ide . project View . Presentation Data Ċ import Ġcom . intellij . ide . util . tree View . Node Renderer Ċ import Ġcom . intellij . navigation . Item Presentation Ċ import Ġcom . intellij . navigation . Navigation Item Ċ import Ġcom . intellij . openapi . Disposable Ċ import Ġcom . intellij . openapi . action System . Default Action Group Ċ import Ġcom . intellij . openapi . application . Read Action Ċ import Ġcom . intellij . openapi . components . Persistent State Component Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . ui . Simple Tool Window Panel Ċ import Ġcom . intellij . openapi . wm . ex . Tool Window Ex Ċ import Ġcom . intellij . ui . Popup Handler Ċ import Ġcom . intellij . ui . ScrollPane Factory Ċ import Ġcom . intellij . ui . Tree Speed Search Ċ import Ġcom . intellij . util . xml b . Xml Serializer Ċ import Ġorg . j dom . Element Ċ import Ġru . coding 4 fun . intellij . database . action . connection . Connection From Db Action Ċ import Ġru . coding 4 fun . intellij . database . model . tree . Tree Label Ċ import Ġru . coding 4 fun . intellij . database . tree . Ms Tree Model Ċ import Ġru . coding 4 fun . intellij . database . ui . Ms Tree Ċ import Ġru . coding 4 fun . intellij . database . view . Ms View Options Ċ import Ġru . coding 4 fun . intellij . database . view . TreeNode Descriptor Ċ import Ġjava . awt . Component Ċ import Ġjavax . swing . J Tree Ċ import Ġjavax . swing . tree . Tree Cell Renderer Ċ Ċ class ĠMs View ( project : ĠProject ) Ġ: ĠSimple Tool Window Panel ( true , Ġtrue ), ĠPersistent State Component < Element >, ĠDis posable Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetState (): ĠElement ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠXml Serializer . serialize ( view Options , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload State ( state : ĠElement ) Ġ{ ĊĠĠĠĠĠĠĠ ĠXml Serializer . deserialize Into ( view Options , Ġstate ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtree : ĠMs Tree ĊĠĠĠ Ġprivate Ġval Ġview Options : ĠMs View Options ĊĊĊĠĠĠ Ġval Ġtree Model : ĠMs Tree Model ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcell Renderer Ġ= ĠMy Renderer () ĊĠĠĠĠĠĠĠ Ġview Options Ġ= ĠMs View Options () ĊĠĠĠĠĠĠĠ Ġtree Model Ġ= ĠMs Tree Model ( view Options ) ĊĊĠĠĠĠĠĠĠ Ġtree Ġ= ĠMs Tree ( project ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . cell Renderer Ġ= Ġcell Renderer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . model Ġ= Ġtree Model ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset Content ( ScrollPane Factory . create ScrollPane ( tree )) ĊĠĠĠĠĠĠĠ ĠTree Speed Search ( tree ) ĊĊĠĠĠĠĠĠĠ ĠPopup Handler . install Popup Handler ( tree , Ġ" M ss ql PopupMenu Group ", Ġ" M ss ql Ġtree ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Visible () Ġ{ ĊĠĠĠĠĠĠĠ Ġtree . isVisible Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar ĠINSTANCE : ĠMs View ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġis Initialized : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( project : ĠProject ): ĠMs View Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Initialized Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ= ĠMs View ( project ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠINSTANCE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsetup Tool Window ( tool Window : ĠTool Window Ex ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgroup Ġ= ĠDefault Action Group () ĊĊĠĠĠĠĠĠĠ Ġgroup . addAction ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase View Actions . toggle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Group Ġby ĠAgent ĠCategory ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġview Options . groupBy Agent Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Options . groupBy Agent Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtree Model . groupBy Agent Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġtree Model . toggle Group For Agent () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġgroup . addAction ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase View Actions . toggle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Group Ġby ĠLogin ĠType ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġview Options . groupBy Login Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Options . groupBy Login Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtree Model . groupBy Login Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġtree Model . toggle Group For Server Principal () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġgroup . addAction ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase View Actions . toggle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Group Ġby ĠDB ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġview Options . groupBy Db Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Options . groupBy Db Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtree Model . groupBy Db Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġtree Model . toggle Group For Db () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġtool Window . set Additional Gear Actions ( group ) ĊĊĠĠĠĠĠĠĠ Ġval Ġactions Manager Ġ= ĠCommon Actions Manager . getInstance () ĊĠĠĠĠĠĠĠ Ġval Ġcollapse All Action Ġ= Ġactions Manager . create Collapse All Header Action ( tree ) ĊĠĠĠĠĠĠĠ Ġtool Window . setTitle Actions ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcollapse All Action , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConnection From Db Action () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠMy Renderer Ġinternal Ġconstructor () Ġ: ĠTree Cell Renderer Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġvar Ġpresentation : ĠPresentation Data Ġ= ĠPresentation Data () ĊĠĠĠĠĠĠĠ Ġinternal Ġvar Ġnode Renderer : ĠNode Renderer ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . node Renderer Ġ= Ġobject Ġ: ĠNode Renderer () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Presentation ( node : ĠAny ?): ĠItem Presentation ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis @ My Renderer . get Presentation ( node ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget Presentation ( node : ĠAny ?): ĠItem Presentation ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRead Action . compute < Item Presentation , ĠRuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( node Ġis ĠTree Label ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTreeNode Descriptor . update Presentation For Label ( this @ My Renderer . presentation , Ġnode , Ġview Options ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ My Renderer . presentation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( node Ġis ĠNavigation Item ) Ġnode . presentation Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tree Cell Renderer Component ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtree : ĠJ Tree , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue : ĠAny ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġleaf : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhas Focus : ĠBoolean ĊĠĠĠĠĠĠĠ Ġ): ĠComponent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnode Renderer . get Tree Cell Renderer Component ( tree , Ġvalue , Ġselected , Ġexpanded , Ġleaf , Ġrow , Ġhas Focus ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{} Ċ }