// ĠCopyright Ġ 2 0 0 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ package Ġcom . intellij . util . indexing . impl . storage Ċ Ċ import Ġcom . intellij . openapi . action System . An ActionEvent Ċ import Ġcom . intellij . openapi . project . D umb Aware Action Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . ui . Collection ComboBox Model Ċ import Ġcom . intellij . ui . Simple List Cell Renderer Ċ import Ġcom . intellij . ui . popup . list . ComboBox Popup Ċ import Ġcom . intellij . util . indexing . File Based Index T umb ler Ċ import Ġcom . intellij . util . indexing . Indexing Bundle Ċ import Ġcom . intellij . util . indexing . storage . File Based Index Layout Provider Bean Ċ import Ġorg . jetbrains . annotations . N ls Ċ import Ġjava . util . function . Consumer Ċ import Ġjavax . swing . List Cell Renderer Ċ import Ġjavax . swing . ListModel Ċ Ċ class ĠSwitch File Based Index Storage Action Ġ: ĠD umb Aware Action () Ġ{ ĊĠ Ġoverride Ġfun ĠactionPerformed ( e : ĠAn ActionEvent ) Ġ{ ĊĠĠĠ Ġval Ġproject Ġ= Ġe . project Ġ?: Ġreturn ĊĠĠĠ Ġval Ġall Storage s Ġ= Ġcustom Index Storage Descriptors () Ġ+ Ġdefault Index Storage Descriptor () ĊĊĠĠĠ Ġval Ġpopup Context Ġ= ĠIndex Storage Descriptor Popup Context ( project , Ġall Storage s ) ĊĠĠĠ ĠCombo Box Popup ( popup Context , Ġnull , ĠConsumer Ġ{ ĊĠĠĠĠĠ Ġrestart Indexes With Storage ( it ) ĊĠĠĠ Ġ}). show In Best Position For ( e . data Context ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġrestart Indexes With Storage ( index Storage : ĠIndex Storage Descriptor ) Ġ{ ĊĠĠĠ Ġval Ġused Layout Ġ= ĠFile Based Index Layout Settings . get Used Layout () ĊĠĠĠ Ġif Ġ( used Layout Ġ!= Ġindex Storage . bean ) Ġ{ ĊĠĠĠĠĠ Ġval Ġswitch er Ġ= ĠFile Based Index T umb ler () ĊĠĠĠĠĠ Ġswitch er . turn Off () ĊĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠFile Based Index Layout Settings . set Used Layout ( index Storage . bean ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġfinally Ġ{ ĊĠĠĠĠĠĠĠ Ġswitch er . turn On ( null , Ġ" Index ĠStorage ĠSwitch ing ") ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ private Ġdata Ġclass ĠIndex Storage Descriptor ( val Ġpresent able Name : Ġ@ N ls ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbean : ĠFile Based Index Layout Provider Bean ?) Ċ Ċ private Ġfun Ġdefault Index Storage Descriptor (): ĠIndex Storage Descriptor Ġ{ ĊĠ Ġreturn ĠIndex Storage Descriptor ( Indexing Bundle . message (" default . index . storage . present able . name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" default ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ) Ċ } Ċ Ċ private Ġfun Ġcustom Index Storage Descriptors (): ĠList < Index Storage Descriptor > Ġ= ĊĠ ĠDefault Index Storage Layout . available Layouts . map Ġ{ ĊĠĠĠ ĠIndex Storage Descriptor ( it . localized Present able Name , Ġit . id , Ġit . version , Ġit ) ĊĠ Ġ} Ċ Ċ private Ġclass ĠIndex Storage Descriptor Popup Context ( private Ġval Ġproject : ĠProject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Storage s : ĠList < Index Storage Descriptor >) Ġ: ĠCombo Box Popup . Context < Index Storage Descriptor > Ġ{ ĊĠ Ġprivate Ġval Ġmodel Ġ= ĠCollection ComboBox Model ( index Storage s ) ĊĊĠ Ġoverride Ġfun Ġget Project (): ĠProject Ġ= Ġproject ĊĊĠ Ġoverride Ġfun ĠgetModel (): ĠList Model < Index Storage Descriptor > Ġ{ ĊĠĠĠ Ġreturn Ġmodel ĊĠ Ġ} ĊĊĠ Ġ@ Suppress (" Hard Coded StringLiteral ") ĊĠ Ġoverride Ġfun Ġget Renderer (): ĠList Cell Renderer < Index Storage Descriptor > Ġ{ ĊĠĠĠ Ġreturn ĠSimple List Cell Renderer . create Ġ{ Ġlabel , Ġvalue , Ġ_ Ġ-> Ġlabel . text Ġ= Ġvalue . present able Name Ġ} ĊĠ Ġ} Ċ }