/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠGoogle ĠInc . ĠAll ĠRights ĠReserved . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . google . container . tools . sk affold . run . ui Ċ Ċ import Ġcom . google . container . tools . sk affold . S ka ffold File Service Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . project . guess Project Dir Ċ import Ġcom . intellij . openapi . vfs . V fs Util Core Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġjava . awt . Component Ċ import Ġjavax . swing . Default ComboBox Model Ċ import Ġjavax . swing . Default List Cell Renderer Ċ import Ġjavax . swing . J ComboBox Ċ import Ġjavax . swing . JLabel Ċ import Ġjavax . swing . J List Ċ import Ġjavax . swing . Mutable ComboBox Model Ċ Ċ /** Ċ Ġ* ĠA Ġcombo Ġbox Ġwith Ġa Ġlist Ġof Ġavailable ĠS ka ffold Ġconfiguration Ġfiles Ġfor Ġa Ġgiven Ġproject . Ċ Ġ*/ Ċ class ĠS ka ffold Files ComboBox Ġ: ĠJ ComboBox < Virtual File >() Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsk affold Files Mutable Model : ĠMutable ComboBox Model < Virtual File > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġproject Ġfor Ġthe Ġcombo Ġbox , Ġand Ġfill s Ġcombo Ġbox Ġwith Ġall ĠS ka ffold Ġfiles Ġavailable ĊĠĠĠĠ Ġ* Ġin Ġthis Ġproject . ĠFirst Ġfile Ġis Ġselected Ġby Ġdefault . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Project ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Renderer ( Virtual File Renderer ( project . guess Project Dir ())) ĊĊĠĠĠĠĠĠĠ Ġval Ġitems Ġ= ĠS ka ffold File Service . instance . find S ka ffold Files ( project ). to Typed Array () ĊĠĠĠĠĠĠĠ Ġsk affold Files Mutable Model Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault ComboBox Model < Virtual File >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġmodel Ġ= Ġsk affold Files Mutable Model ĊĠĠĠĠĠĠĠ Ġif Ġ( model . size Ġ> Ġ 0 ) Ġselected Index Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġgiven Ġfile Ġas Ġa Ġselected ĠS ka ffold Ġfile Ġin Ġthe Ġdrop - down . ĠIf Ġmodel Ġdoes Ġnot Ġcontain ĊĠĠĠĠ Ġ* Ġthe Ġfile , Ġadds Ġit Ġand Ġselects Ġit . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠsetSelected S ka ffold File ( sk affold File : ĠVirtual File ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġexisting Element Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. sk affold Files Mutable Model . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sk affold Files Mutable Model . getElement At ( i ) Ġ== Ġsk affold File ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexisting Element Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! existing Element ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk affold Files Mutable Model . addElement ( sk affold File ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġselected Item Ġ= Ġsk affold File ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠReturns Ġcurrently Ġselected ĠS ka ffold Ġfile Ġor Ġnull Ġif Ġnone Ġis Ġselected . Ġ*/ ĊĠĠĠ Ġfun Ġget Selected S ka ffold File (): ĠVirtual File ? Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( selectedIndex Ġ>= Ġ 0 ) Ġmodel . getElement At ( selectedIndex ) Ġelse Ġnull Ċ } Ċ Ċ /** ĠR enders Ġname Ġof Ġthe ĠS ka ffold Ġfile Ġrelative Ġto Ġthe Ġbase Ġdir Ġof Ġthe Ġcurrent ĠIDE Ġproject . Ġ*/ Ċ private Ġclass ĠVirtual File Renderer ( val Ġproject Base Dir : ĠVirtual File ?) Ġ: ĠDefault List Cell Renderer () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetList Cell Renderer Component ( ĊĠĠĠĠĠĠĠ Ġlist : ĠJ List < *> ?, ĊĠĠĠĠĠĠĠ Ġvalue : ĠAny ?, ĊĠĠĠĠĠĠĠ Ġindex : ĠInt , ĊĠĠĠĠĠĠĠ Ġis Selected : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġcell Has Focus : ĠBoolean ĊĠĠĠ Ġ): ĠComponent Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrenderer Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . getList Cell Renderer Component ( list , Ġvalue , Ġindex , Ġis Selected , Ġcell Has Focus ) ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġis ĠVirtual File Ġ&& Ġrenderer Ġis ĠJLabel Ġ&& Ġproject Base Dir Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrenderer . text Ġ= ĠV fs Util Core . get Relative Location ( value , Ġproject Base Dir ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġrenderer ĊĠĠĠ Ġ} Ċ } Ċ