/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠMar cin ĠBu k ow ie ck i . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġcom . bu k ow ie ck i . reg debug . ui Ċ Ċ import Ġcom . bu k ow ie ck i . reg debug . actions . Register Copy Provider Ċ import Ġcom . bu k ow ie ck i . reg debug . parsers . Registers Holder Ċ import Ġcom . bu k ow ie ck i . reg debug . utils . Data Keys Ċ import Ġcom . intellij . ide . DataManager Ċ import Ġcom . intellij . openapi . action System . Action Group Ċ import Ġcom . intellij . openapi . action System . Action Manager Ċ import Ġcom . intellij . openapi . action System . Platform Data Keys Ċ import Ġcom . intellij . openapi . util . Ref Ċ import Ġcom . intellij . ui . table . JB Table Ċ import Ġjava . awt . Component Ċ import Ġjava . awt . event . Mouse Adapter Ċ import Ġjava . awt . event . MouseEvent Ċ import Ġjavax . swing . J Table Ċ import Ġjavax . swing . Swing Utilities Ċ import Ġjavax . swing . table . TableCell Renderer Ċ Ċ /** Ċ Ġ* Ġ@ author ĠMar cin ĠBu k ow ie ck i Ċ Ġ*/ Ċ class ĠReg Debug Register Table < T Ġ: ĠRegisters Holder < *> >( ĊĠ Ġprivate Ġval Ġview : ĠReg Debug View < T >, ĊĠ Ġmodel : ĠReg Debug Register TableModel Ċ ) Ġ: ĠJ B Table ( model ) Ġ{ ĊĊĠ Ġprivate Ġval Ġmy Lock Ġ= ĠObject () ĊĠ Ġprivate Ġval Ġcurrent Cell Ref : ĠRef < Register Cell Container > Ġ= ĠRef () ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġsetup Sizes () ĊĊĠĠĠ Ġadd Mouse Listener ( object Ġ: ĠMouse Adapter () Ġ{ ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmouse Clicked ( e : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Swing Utilities . is Right MouseButton ( e )) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġe . source Ġas ? ĠJ Table Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠ Ġval Ġrow Ġ= Ġsource . row At Point ( e . point ) ĊĠĠĠĠĠĠĠĠĠ Ġval Ġcolumn Ġ= Ġsource . column At Point ( e . point ) ĊĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġsource . model . getValue At ( row , Ġcolumn ) ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġis ĠRegister Cell Container ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( my Lock ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Reg Debug Register Table . current Cell Ref . set ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Manager Ġ= ĠAction Manager . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgroup Ġ= Ġaction Manager . getAction ( view . getAction GroupId ()) Ġas ? ĠAction Group Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Manager . create Action PopupMenu ( view . get Popup Place (), Ġgroup ). component . show ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . x , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĊĠĠĠ ĠData Manager . register DataProvider ( this ) Ġ{ Ġdata Id Ġ-> ĊĠĠĠĠĠ Ġval Ġc Ġ= Ġcurrent Cell Ref . get () Ġ?: Ġreturn @ register DataProvider Ġnull ĊĠĠĠĠĠ Ġval Ġmy Cell Ġ= Ġc . my Cell ĊĊĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ ĠPlatform Data Keys . COPY _ PROVIDER . name Ġ== Ġdata Id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠRegister Copy Provider ( my Cell ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠData Keys . register Cell Container . name Ġ== Ġdata Id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġc ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġsetup Sizes () Ġ{ ĊĠĠĠ Ġset Row Margin ( 5 ) ĊĠĠĠ Ġset Row Height ( 4 0 ) ĊĊĠĠĠ Ġval Ġcolumn Model Ġ= Ġget Column Model () ĊĠĠĠ Ġval Ġcolumn Count Ġ= Ġcolumn Model . column Count ĊĊĠĠĠ Ġif Ġ( column Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠ Ġval Ġcolumn Ġ= Ġget Column Model (). getColumn ( 0 ) ĊĠĠĠĠĠ Ġcolumn . cell Renderer Ġ= Ġobject Ġ: ĠTable Cell Renderer Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget TableCell Renderer Component ( ĊĠĠĠĠĠĠĠĠĠ Ġtable : ĠJ Table ?, ĊĠĠĠĠĠĠĠĠĠ Ġvalue : ĠAny ?, ĊĠĠĠĠĠĠĠĠĠ Ġis Selected : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠ Ġhas Focus : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠ Ġrow : ĠInt , ĊĠĠĠĠĠĠĠĠĠ Ġcolumn : ĠInt ĊĠĠĠĠĠĠĠ Ġ): ĠComponent Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( value Ġas ĠRegister Cell Container ). my Cell . register Label ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( column Count Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠ Ġval Ġcolumn Ġ= Ġget Column Model (). getColumn ( 1 ) ĊĠĠĠĠĠ Ġcolumn . min Width Ġ= Ġ 3 0 0 ĊĠĠĠĠĠ Ġcolumn . cell Renderer Ġ= Ġobject Ġ: ĠTable Cell Renderer Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget TableCell Renderer Component ( ĊĠĠĠĠĠĠĠĠĠ Ġtable : ĠJ Table ?, ĊĠĠĠĠĠĠĠĠĠ Ġvalue : ĠAny ?, ĊĠĠĠĠĠĠĠĠĠ Ġis Selected : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠ Ġhas Focus : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠ Ġrow : ĠInt , ĊĠĠĠĠĠĠĠĠĠ Ġcolumn : ĠInt ĊĠĠĠĠĠĠĠ Ġ): ĠComponent Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( value Ġas ĠRegister Cell Container ). get Hex TextField () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ