package Ġcom . ch imer apps . n idd ler . ui . component . view Ċ Ċ import Ġcom . ch imer apps . n idd ler . ui . util . ui . Included Icons Ċ import Ġcom . ch imer apps . n idd ler . ui . util . ui . ensure Main Ċ import Ġcom . ic apps . n idd ler . lib . connection . model . N idd ler Server Info Ċ import Ġcom . ic apps . n idd ler . lib . connection . protocol . N idd ler Message Listener Ċ import Ġcom . intellij . ui . components . JB Label Ċ import Ġjava . awt . Border Layout Ċ import Ġjavax . swing . Border Factory Ċ import Ġjavax . swing . JPanel Ċ import Ġjavax . swing . border . Empty Border Ċ Ċ class ĠN idd ler StatusBar Ġ: ĠJPanel ( Border Layout ()), ĠN idd ler Message Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġstatus Text Ġ= ĠJ B Label (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġis Focus able Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġverify Input When Focus Target Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġstatus : ĠStatus Ġ= ĠStatus . DIS CONNECTED ĊĠĠĠ Ġprivate Ġvar Ġserver Info : ĠN idd ler Server Info ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġadd ( status Text , ĠBorderLayout . CENTER ) ĊĠĠĠĠĠĠĠ Ġborder Ġ= ĠBorder Factory . create Compound Border ( Border Factory . create Title d Border ( Border Factory . create Lower ed Be vel Border (), Ġnull ), ĠEmpty Border ( 1 , Ġ 6 , Ġ 1 , Ġ 6 )) ĊĠĠĠĠĠĠĠ Ġupdate Status Text () ĊĠĠĠĠĠĠĠ Ġupdate Status Icon () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Server Info ( server Info : ĠN idd ler Server Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . server Info Ġ= Ġserver Info ĊĠĠĠĠĠĠĠ Ġupdate Status Text () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Ready () Ġ{ ĊĠĠĠĠĠĠĠ Ġstatus Ġ= ĠStatus . CONNECTED ĊĠĠĠĠĠĠĠ Ġupdate Status Icon () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Closed () Ġ{ ĊĠĠĠĠĠĠĠ Ġstatus Ġ= ĠStatus . DIS CONNECTED ĊĠĠĠĠĠĠĠ Ġserver Info Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġupdate Status Icon () ĊĠĠĠĠĠĠĠ Ġupdate Status Text () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Status Text () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġwhen Ġ( status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . CONNECTED Ġ-> Ġbuild Text (" Connected ", Ġ" to ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . DIS CONNECTED Ġ-> Ġ" Disconnected " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġensure Main Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Text . text Ġ= Ġtext ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Status Icon () Ġ{ ĊĠĠĠĠĠĠĠ Ġensure Main Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Text . icon Ġ= Ġwhen Ġ( status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . CONNECTED Ġ-> ĠInclude d Icons . Status . connected ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . DIS CONNECTED Ġ-> ĠInclude d Icons . Status . disconnected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Same Parameter Value ") ĊĠĠĠ Ġprivate Ġfun Ġbuild Text ( prefix : ĠString , Ġglue : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġbuilder . append ( prefix ) ĊĠĠĠĠĠĠĠ Ġserver Info ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (' Ġ'). append ( glue ). append (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( it . server Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append (" Ġ( "). append ( it . server Description ). append (" ) Ġ- ĠV ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( it . protocol ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġenum Ġclass ĠStatus Ġ{ ĊĠĠĠĠĠĠĠ ĠCONNECT ED , ĠDIS CONNECTED ĊĠĠĠ Ġ} Ċ Ċ }