import Ġcom . intellij . execution . util . List Table With Buttons Ċ import Ġcom . intellij . execution . util . String With New Lines Cell Editor Ċ import Ġcom . intellij . openapi . action System . An Action Ċ import Ġcom . intellij . openapi . action System . An ActionEvent Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . ui . Dialog Wrapper Ċ import Ġcom . intellij . util . ui . List TableModel Ċ import Ġjava . awt . Border Layout Ċ import Ġjava . util .* Ċ import Ġjavax . swing . J Component Ċ import Ġjavax . swing . JPanel Ċ import Ġjavax . swing . table . TableCell Editor Ċ Ċ class ĠMulti Input Dialog Ġ: ĠAn Action () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠactionPerformed ( e : ĠAn ActionEvent ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠMy Environment Variables Dialog ( e ?. project !! ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠMy Environment Variables Dialog ( project : ĠProject ) Ġ: ĠDialog Wrapper ( project , Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmy Env Variables Table : ĠEnv Variables Table Ġ= ĠEnv Variables Table () ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmy Whole Panel Ġ= ĠJPanel ( Border Layout ()) ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Env Variables Table . set Values ( listOf ( EnvironmentVariable (" what "," 1 1 1 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment Variable (" How ", Ġ" 2 2 2 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment Variable (" See Ġthat ", Ġ" 3 3 3 3 "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Whole Panel . add ( my Env Variables Table . component , ĠBorderLayout . CENTER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuse Default Panel Ġ= ĠJPanel ( Border Layout ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Whole Panel . add ( use Default Panel , ĠBorderLayout . SO UTH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" My ĠDialog " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Center Panel (): ĠJ Component ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmy Whole Panel ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdo OK Action () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Env Variables Table . stop Editing () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenv s Ġ= ĠLinkedHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( variable Ġin Ġmy Env Variables Table . environment Variables ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenv s [ variable . name ] Ġ= Ġvariable . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . do OK Action () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEnv Variables Table Ġ: ĠList Table With Buttons < EnvironmentVariable >() Ġ{ ĊĊĠĠĠ Ġval Ġenvironment Variables : ĠList < EnvironmentVariable > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġelements ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtable View . empty Text . text Ġ= Ġ" No Ġvariables " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ListModel (): ĠList TableModel < *> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname : ĠElements Column Info Base < EnvironmentVariable > Ġ= Ġobject Ġ: ĠList Table With Buttons . Elements Column Info Base < EnvironmentVariable >(" Name ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvalue Of ( environment Variable : ĠEnvironment Variable ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġenvironment Variable . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġis Cell Editable ( environment Variable : ĠEnvironment Variable ) Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠsetValue ( environment Variable : ĠEnvironment Variable ?, Ġs : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s Ġ== Ġvalue Of ( environment Variable !! )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenvironment Variable . name Ġ= Ġs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Modified () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetDescription ( environment Variable : ĠEnvironment Variable ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġvalue : ĠElements Column Info Base < EnvironmentVariable > Ġ= Ġobject Ġ: ĠList Table With Buttons . Elements Column Info Base < EnvironmentVariable >(" Value ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvalue Of ( environment Variable : ĠEnvironment Variable ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġenvironment Variable . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġis Cell Editable ( environment Variable : ĠEnvironment Variable ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠsetValue ( environment Variable : ĠEnvironment Variable ?, Ġs : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s Ġ== Ġvalue Of ( environment Variable !! )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenvironment Variable . value Ġ= Ġs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Modified () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetDescription ( environment Variable : ĠEnvironment Variable ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Editor ( variable : ĠEnvironment Variable ?): ĠTable Cell Editor ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= ĠString With New Lines Cell Editor () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . click Count To Start Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġeditor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠList TableModel < Elements Column Info Base < EnvironmentVariable >>( name , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠcreateElement (): ĠEnvironment Variable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠEnvironment Variable ("", Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠisEmpty ( element : ĠEnvironment Variable ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġelement . name . isEmpty () Ġ&& Ġelement . value . isEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclone Element ( env Variable : ĠEnvironment Variable ): ĠEnvironment Variable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġenv Variable . copy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Delete Element ( selection : ĠEnvironment Variable ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠEnvironment Variable ( var Ġname : ĠString , Ġvar Ġvalue : ĠString )