package Ġio . sn yk . plugin . ui . tool window Ċ Ċ import Ġcom . intellij . openapi . Disposable Ċ import Ġcom . intellij . openapi . application . Application Manager Ċ import Ġcom . intellij . openapi . components . service Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . ui Designer . core . Grid Constraints Ċ import Ġcom . intellij . ui Designer . core . Grid LayoutManager Ċ import Ġicons . S ny k Icons Ċ import Ġio . sn yk . plugin . events . S ny k Cli Download Listener Ċ import Ġio . sn yk . plugin . events . S ny k Settings Listener Ċ import Ġio . sn yk . plugin . getApplication Settings State Service Ċ import Ġio . sn yk . plugin . get Sync Publisher Ċ import Ġio . sn yk . plugin . services . S ny k Analytics Service Ċ import Ġio . sn yk . plugin . services . S ny k Cli Authentication Service Ċ import Ġio . sn yk . plugin . services . S ny k Cli Downloader Service Ċ import Ġio . sn yk . plugin . sn yk code . core . S ny k Code Params Ċ import Ġio . sn yk . plugin . ui . bold Label Ċ import Ġjava . awt . Dimension Ċ import Ġjava . awt . Insets Ċ import Ġjava . awt . event . ActionEvent Ċ import Ġjavax . swing . Abstract Action Ċ import Ġjavax . swing . JButton Ċ import Ġjavax . swing . JLabel Ċ import Ġjavax . swing . JPanel Ċ Ċ class ĠS ny k Auth Panel ( project : ĠProject ) Ġ: ĠJPanel (), ĠDis posable Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġbase Grid Constraints ( ĊĠĠĠĠĠĠĠ Ġrow : ĠInt , ĊĠĠĠĠĠĠĠ Ġcolumn : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġrow Span : ĠInt Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġcol Span : ĠInt Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġanchor : ĠInt Ġ= ĠGrid Constraints . AN CH OR _ CENTER , ĊĠĠĠĠĠĠĠ Ġfill : ĠInt Ġ= ĠGrid Constraints . FILL _ NONE , ĊĠĠĠĠĠĠĠ ĠH Size Policy : ĠInt Ġ= ĠGrid Constraints . SIZE POLICY _ FIXED , ĊĠĠĠĠĠĠĠ ĠV Size Policy : ĠInt Ġ= ĠGrid Constraints . SIZE POLICY _ FIXED , ĊĠĠĠĠĠĠĠ Ġminimum Size : ĠDimension ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġpreferred Size : ĠDimension ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġmaximum Size : ĠDimension ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġindent : ĠInt Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġuse Parent Layout : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġ): ĠGrid Constraints Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGrid Constraints ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow , Ġcolumn , Ġrow Span , Ġcol Span , Ġanchor , Ġfill , ĠH Size Policy , ĠV Size Policy , Ġminimum Size , Ġpreferred Size , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaximum Size , Ġindent , Ġuse Parent Layout ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġauth Button : ĠJButton ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Ġ= ĠGrid LayoutManager ( 4 , Ġ 1 , ĠIn sets ( 0 , Ġ 0 , Ġ 0 , Ġ 0 ), Ġ- 1 , Ġ- 1 ) ĊĊĠĠĠĠĠĠĠ Ġadd ( JLabel ( S ny k Icons . LOG O ), Ġbase Grid Constraints ( 0 )) ĊĊĠĠĠĠĠĠĠ Ġadd ( bold Label (" Welcome Ġto ĠS ny k Ġfor ĠJetBrains "), Ġbase Grid Constraints ( 1 )) ĊĊĠĠĠĠĠĠĠ Ġadd ( JLabel (" Please Ġauthenticate Ġto ĠS ny k Ġand Ġconnect Ġyour ĠIDE "), Ġbase Grid Constraints ( 2 )) ĊĊĠĠĠĠĠĠĠ Ġauth Button Ġ= ĠJButton ( object Ġ: ĠAbstract Action (" Connect Ġyour ĠIDE Ġto ĠS ny k ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠactionPerformed ( e : ĠAction Event ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . service < S ny k Tool Window Panel >(). clean Ui And Caches () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġproject . service < S ny k Cli Authentication Service >(). authenticate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Application Settings State Service (). token Ġ= Ġtoken ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS ny k Code Params . instance . session Token Ġ= Ġtoken ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanalytics Ġ= Ġservice < S ny k Analytics Service >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠuserId Ġ= Ġanalytics . obtain UserId ( token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanalytics . alias ( userId ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Sync Publisher ( project , ĠS ny k Settings Listener . SN YK _ SETTINGS _ TOPIC )?. settings Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġ! service < S ny k Cli Downloader Service >(). is Cli Downloading () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠApplication Manager . getApplication (). message Bus . connect ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( S ny k Cli Download Listener . CLI _ DOWNLOAD _ TOPIC , Ġobject Ġ: ĠS ny k Cli Download Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcli Download Started () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauth Button . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcli Download Finished ( suc ceed : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauth Button . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġadd ( auth Button , Ġbase Grid Constraints ( 3 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{} Ċ } Ċ