package Ġcom . github . xe on k rypt os . integration . gitlab . ui . project Link er Ċ Ċ import Ġcom . github . xe on k rypt os . integration . gitlab . api . Pager Proxy Ċ import Ġcom . github . xe on k rypt os . integration . gitlab . api . gitlab . Git lab Groups Api Ċ import Ġcom . github . xe on k rypt os . integration . gitlab . api . gitlab . model . Git lab Group Ċ import Ġcom . github . xe on k rypt os . integration . gitlab . service . data . Git lab Account Ċ import Ġcom . github . xe on k rypt os . integration . gitlab . ui . general . Collection ListModel Ext Ċ import Ġcom . github . xe on k rypt os . integration . gitlab . ui . general . Custom List Toolbar Decorator Ċ import Ġcom . github . xe on k rypt os . integration . gitlab . ui . general . Next ActionButton Ċ import Ġcom . github . xe on k rypt os . integration . gitlab . ui . general . Previous ActionButton Ċ import Ġcom . github . xe on k rypt os . integration . gitlab . util . Git lab Bundle Ċ import Ġcom . github . xe on k rypt os . integration . gitlab . util . Git lab Util Ċ import Ġcom . intellij . collabor ation . ui . Collabor ation Tools UI Util Ċ import Ġcom . intellij . openapi . application . Modal ity State Ċ import Ġcom . intellij . openapi . components . service Ċ import Ġcom . intellij . openapi . progress . Perform In Background Option Ċ import Ġcom . intellij . openapi . progress . Progress Indicator Ċ import Ġcom . intellij . openapi . progress . Task Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . ui . Dialog Wrapper Ċ import Ġcom . intellij . ui . Collection ListModel Ċ import Ġcom . intellij . ui . Document Adapter Ċ import Ġcom . intellij . ui . KeyStroke Adapter Ċ import Ġcom . intellij . ui . Search TextField Ċ import Ġcom . intellij . ui . Simple List Cell Renderer Ċ import Ġcom . intellij . ui . components . JB List Ċ import Ġcom . intellij . util . progress . Progress Visibility Manager Ċ import Ġjava . awt . event . ActionEvent Ċ import Ġjava . awt . event . KeyEvent Ċ import Ġjavax . swing . Action Ċ import Ġjavax . swing . J Component Ċ import Ġjavax . swing . J List Ċ import Ġjavax . swing . List Selection Model Ċ import Ġjavax . swing . Swing Utilities Ċ import Ġjavax . swing . event . Document Event Ċ Ċ class ĠGroup Chooser Dialog ( private Ġval Ġproject : ĠProject , Ġprivate Ġval Ġgit lab Account : ĠGit lab Account ) Ġ: ĠDialog Wrapper ( project , Ġtrue , ĠIde Modal ity Type . IDE ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLOG Ġ= ĠGit lab Util . LOG ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġgroups Model : ĠCollection ListModel < Git lab Group > Ġ= ĠCollection ListModel Ext () ĊĠĠĠ Ġprivate Ġval Ġsearch Field : ĠSearch TextField Ġ= ĠSearch TextField ( false ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Keyboard Listener ( object Ġ: ĠKey Stroke Adapter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġkey Typed ( event : ĠKeyEvent ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( event ?. is Control Down Ġ== Ġtrue Ġ&& Ġevent . key Char Ġ== ĠKeyEvent . VK _ ENTER . to Char ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreload ( text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġgit lab Groups List Ġ= ĠJ B List ( groups Model ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġcell Renderer Ġ= Ġobject Ġ: ĠSimple List Cell Renderer < Git lab Group >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcustomize ( list : ĠJ List < out ĠGit lab Group >, Ġvalue : ĠGit lab Group ?, Ġindex : ĠInt , Ġselected : ĠBoolean , Ġhas Focus : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġvalue ?. fullName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsearch Field . add Document Listener ( object Ġ: ĠDocument Adapter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtext Changed ( e : ĠDocument Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( search Field . text Ġ== Ġnull Ġ|| Ġsearch Field . text . isBlank ()) Ġreload ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġselection Mode Ġ= ĠList Selection Model . SINGLE _ SELECTION ĊĠĠĠĠĠĠĠ Ġselection Model . add List Selection Listener Ġ{ Ġthis @ Group Chooser Dialog . is OK Action Enabled Ġ= Ġselected Value Ġ!= Ġnull Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġprogress Indicator Ġ= Ġobject Ġ: ĠProgress Visibility Manager () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Modal ity State (): ĠMod ality State Ġ= ĠMod ality State . any () ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Progress Visible ( visible : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgit lab Groups List . set Paint Busy ( visible ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġgit lab Groups Api Ġ= Ġservice < Git lab Groups Api >() ĊĠĠĠ Ġprivate Ġval Ġreset Action : ĠAction Ġ= ĠReset Action () ĊĊĠĠĠ Ġ@ Volatile ĊĠĠĠ Ġprivate Ġvar Ġgroups Pager Proxy : ĠP ager Proxy < List < Git lab Group >> ? Ġ= Ġnull ĊĊĠĠĠ Ġval Ġselected Group : ĠGit lab Group ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġgit lab Groups List . selected Value ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle Ġ= ĠGit lab Bundle . message (" share . group . cho oser . dialog . title ") ĊĠĠĠĠĠĠĠ Ġis Auto Adjust able Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġis OK Action Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ ĠCol labor ation Tools UI Util . attach Search ( gitlab Groups List , Ġsearch Field ) Ġ{ Ġit . fullName Ġ} ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠĠĠĠĠ Ġcenter Relative To Parent () ĊĠĠĠĠĠĠĠ Ġset OK ButtonText ( Git lab Bundle . message (" share . group . cho oser . button ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Actions (): ĠArray < Action > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf ( ok Action , Ġreset Action , Ġcancel Action ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Center Panel (): ĠJ Component Ġ= ĠCustom List Toolbar Decorator ( gitlab Groups List ). init Position () ĊĠĠĠĠĠĠĠ Ġ. disable Up Action () ĊĠĠĠĠĠĠĠ Ġ. disable Down Action () ĊĠĠĠĠĠĠĠ Ġ. disable Add Action () ĊĠĠĠĠĠĠĠ Ġ. disable Remove Action () ĊĠĠĠĠĠĠĠ Ġ. add Extra Action ( Previous ActionButton ( Git lab Bundle . message (" share . group . cho oser . dialog . previous . action "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġgroups Pager Proxy ?. has Previous Page () Ġ?: Ġfalse Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġload Another Page Ġ{ Ġgroups Pager Proxy ?. load Previous Page () Ġ} Ġ})) ĊĠĠĠĠĠĠĠ Ġ. add Extra Action ( Next ActionButton ( Git lab Bundle . message (" share . group . cho oser . dialog . next . action "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġgroups Pager Proxy ?. hasNext Page () Ġ?: Ġfalse Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġload Another Page Ġ{ Ġgroups Pager Proxy ?. load Next Page () Ġ} Ġ})) ĊĠĠĠĠĠĠĠ Ġ. create Panel () ĊĊĠĠĠ Ġoverride Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġreload () ĊĠĠĠĠĠĠĠ Ġsuper . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreload ( search Text : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbackground Task Ġ= Ġobject Ġ: ĠTask . Background able ( project , ĠGit lab Bundle . message (" share . group . cho oser . dialog . load "), Ġtrue , ĠPerform In Background Option . ALWAYS _ BACKGROUND ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun ( indicator : ĠProgress Indicator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroups Pager Proxy Ġ= Ġgit lab Groups Api . load Available Groups For ( gitlab Account , Ġsearch Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloaded Groups Ġ= Ġgroups Pager Proxy ?. current Data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSw ing Utilities . invoke Later Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroups Model . removeAll () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( loaded Groups Ġ!= Ġnull ) Ġgroups Model . add ( loaded Groups ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . warn ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetError Text ( Git lab Bundle . message (" share . group . cho oser . dialog . loading . failed ", Ġe . toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprogress Indicator . run ( background Task ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Another Page ( loader Function : Ġ() Ġ-> ĠList < Git lab Group > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbackground Task Ġ= Ġobject Ġ: ĠTask . Background able ( project , ĠGit lab Bundle . message (" share . group . cho oser . dialog . load "), Ġtrue , ĠPerform In Background Option . ALWAYS _ BACKGROUND ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun ( indicator : ĠProgress Indicator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloaded Groups Ġ= Ġloader Function () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSw ing Utilities . invoke Later Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroups Model . removeAll () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( loaded Groups Ġ!= Ġnull ) Ġgroups Model . add ( loaded Groups ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . warn ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetError Text ( Git lab Bundle . message (" share . group . cho oser . dialog . loading . failed ", Ġe . toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprogress Indicator . run ( background Task ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠReset Action Ġ: ĠDialog Wrapper Action ( Git lab Bundle . message (" share . group . cho oser . reset . button ")) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdo Action ( e : ĠAction Event ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgit lab Groups List . selection Model . clear Selection () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclose ( OK _ EXIT _ CODE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }