// ĠCopyright Ġ 2 0 1 9 ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . Ċ // ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ċ package Ġsoftware . aws . tool k its . jetbrains . ui . wizard Ċ Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . ui . Validation Info Ċ import Ġcom . intellij . ui . Combo box Speed Search Ċ import Ġsoftware . aws . tool k its . jetbrains . core . credentials . Aws ConnectionManager Ċ import Ġsoftware . aws . tool k its . jetbrains . services . schemas . resources . Schemas Resources Ċ import Ġsoftware . aws . tool k its . jetbrains . ui . Aws Connection Ċ import Ġsoftware . aws . tool k its . jetbrains . ui . Resource Selector Ċ import Ġsoftware . aws . tool k its . resources . message Ċ import Ġjava . awt . Border Layout Ċ import Ġjavax . swing . J Component Ċ import Ġjavax . swing . JLabel Ċ import Ġjavax . swing . JPanel Ċ Ċ class ĠSchema Resource Selector Selection Panel ( ĊĠĠĠ Ġval Ġbuilder : ĠSam Project Builder , ĊĠĠĠ Ġval Ġproject : ĠProject , ĊĠĠĠ Ġ// ĠSub sequent Ġparameters Ġinject able Ġfor Ġunit Ġtests Ġto Ġenable Ġmock ing Ġbecause ĠResource Selector Ġhas Ġinconsistent Ġunit Ġtest Ġbehaviour ĊĠĠĠ Ġval Ġresource Selector Builder : ĠResource Selector . Resource Builder Ġ= ĠResource Selector . builder ( project ), ĊĠĠĠ Ġuse Speed Search : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġroot Panel Builder : Ġ() Ġ-> ĠJPanel Ġ= Ġ{ ĠJPanel ( Border Layout ()) Ġ} Ċ ) Ġ: ĠSchema Selection Panel Base ( project ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġschema Selection Label : ĠJLabel ? Ġ= ĠJLabel ( message (" sam . init . schema . label ")) ĊĊĠĠĠ Ġprivate Ġval Ġschema Panel : ĠJPanel ĊĊĠĠĠ Ġprivate Ġvar Ġcurrent Aws Connection : ĠAws Connection ? ĊĊĠĠĠ Ġprivate Ġval Ġschemas Selector : ĠResource Selector < Schema Selection Item > ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent Aws Connection Ġ= Ġinitialize Aws Connection () ĊĊĠĠĠĠĠĠĠ Ġschemas Selector Ġ= Ġinitialize Schemas Selector () ĊĊĠĠĠĠĠĠĠ Ġ// ĠConfigur able Ġfor Ġunit Ġtests Ġbecause ĠCombo box Speed Search Ġmakes Ġthings Ġd ang Ġnear Ġimpossible Ġto Ġmock ĊĠĠĠĠĠĠĠ Ġif Ġ( use Speed Search ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCombo box Speed Search ( schemas Selector ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġschema Panel Ġ= Ġroot Panel Builder . invoke () ĊĠĠĠĠĠĠĠ Ġschema Panel . add ( schemas Selector , ĠBorderLayout . CENTER ) ĊĠĠĠĠĠĠĠ Ġschema Panel . validate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġschema Selection Panel : ĠJ Component Ġ= Ġschema Panel ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize Aws Connection (): ĠAws Connection ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= ĠAws ConnectionManager . getInstance ( project ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( settings . isValid Connection Settings ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . active Region Ġto Ġsettings . active Credential Provider ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize Schemas Selector (): ĠResource Selector < Schema Selection Item > Ġ= Ġresource Selector Builder ĊĠĠĠĠĠĠĠ Ġ. resource ( Schemas Resources . LIST _ REGISTR IES _ AND _ SCH EM AS ) ĊĠĠĠĠĠĠĠ Ġ. comboBox Model ( Schema Selection ComboBox Model ()) ĊĠĠĠĠĠĠĠ Ġ. custom Renderer ( Schema Selection List Cell Renderer ()) ĊĠĠĠĠĠĠĠ Ġ. disable Automatic Loading () ĊĠĠĠĠĠĠĠ Ġ. disable Automatic Sorting () ĊĠĠĠĠĠĠĠ Ġ. aws Connection Ġ{ Ġcurrent Aws Connection Ġ?: Ġthrow ĠIllegalStateException ( message (" credentials . profile . not _ configured ")) Ġ} Ġ// ĠMust Ġbe Ġinline Ġfunction Ġas Ġit Ġgets Ġupdated Ġand Ġre - evalu ated ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġoverride Ġfun Ġreload Schemas ( aws Connection : ĠAws Connection ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( aws Connection Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Aws Connection Ġ= Ġaws Connection ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġschemas Selector . reload () ĊĊĠĠĠĠĠĠĠ Ġschemas Selector . validate () ĊĠĠĠĠĠĠĠ Ġschema Panel . validate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvalidate All (): ĠList < Validation Info >? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( schemas Selector . selected () Ġ== Ġnull Ġ|| Ġschemas Selector . selected () Ġ! is ĠSchema Selection Item . Schema Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Validation Info ( message (" sam . init . schema . please Select "), Ġschemas Selector )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġregistry Name (): ĠString ? Ġ= Ġwhen Ġ( val Ġselected Ġ= Ġschemas Selector . selected ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠSchema Selection Item . Schema Item Ġ-> Ġselected . registry Name ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġschema Name (): ĠString ? Ġ= Ġwhen Ġ( val Ġselected Ġ= Ġschemas Selector . selected ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠSchema Selection Item . Schema Item Ġ-> Ġselected . item Text ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠ Ġ} Ċ } Ċ