// ĠCopyright Ġ 2 0 0 0 - 2 0 2 0 Ġ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 . openapi . wm . impl . welcome Screen Ċ Ċ import Ġcom . intellij . ide . plugins . PluginManager Configurable Ċ import Ġcom . intellij . openapi . Disposable Ċ import Ġcom . intellij . openapi . components . Service Ċ import Ġcom . intellij . openapi . components . service Ċ import Ġcom . intellij . openapi . wm . Welcome Screen Tab Ċ import Ġcom . intellij . openapi . wm . Welcome Tab Factory Ċ import Ġcom . intellij . ui . components . JB List Ċ Ċ // Service Ġfor Ġsharing Ġthe Ġstate Ġand Ġobjects Ġbetween ĠWelcome ĠScreen Ġtabs Ċ @ Service Ċ class ĠWelcome Screen Service : ĠDis posable Ġ{ ĊĊĠ Ġprivate Ġval Ġfactory 2 tab Ġ= Ġmutable Map Of < Class < out ĠWelcome Tab Factory >, ĠWelcome Screen Tab >() ĊĠ Ġprivate Ġvar Ġtabs : ĠJ B List < Welcome Screen Tab >? Ġ= Ġnull ĊĠ Ġvar Ġplugin Manager Configurable : ĠPlugin Manager Configurable ? Ġ= Ġnull ĊĊĠ Ġfun Ġselect Tab ByType ( tab Factory Type : ĠClass < out ĠWelcome Tab Factory >) Ġ{ ĊĠĠĠ Ġval Ġplugins Tab Ġ= Ġfactory 2 tab [ tab Factory Type ] ĊĠĠĠ Ġif Ġ( plugins Tab Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġtabs ?. setSelected Value ( plugins Tab , Ġtrue ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġregister Tabs ( ws Tabs : ĠJ B List < Welcome Screen Tab >) Ġ{ ĊĠĠĠ Ġtabs Ġ= Ġws Tabs ĊĠ Ġ} ĊĊĠ Ġfun Ġregister Factory To Tab ( factory : ĠClass < out ĠWelcome Tab Factory >, Ġtab : ĠWelcome Screen Tab ) Ġ{ ĊĠĠĠ Ġfactory 2 tab [ factory ] Ġ= Ġtab ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġdispose () Ġ{ ĊĠĠĠ Ġplugin Manager Configurable Ġ= Ġnull ĊĠĠĠ Ġfactory 2 tab . clear () ĊĠĠĠ Ġtabs Ġ= Ġnull ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun ĠgetInstance (): ĠWelcome Screen Service Ġ{ ĊĠĠĠĠĠ Ġreturn Ġservice () ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ Ċ }