package Ġcn . yi ig ux ing . plugin . translate . activity Ċ Ċ import Ġcn . yi ig ux ing . plugin . translate . util . Application Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . startup . Startup Activity Ċ import Ġcom . intellij . openapi . wm . Tool WindowManager Ċ Ċ abstract Ġclass ĠBase Startup Activity ( private Ġval Ġrun Only Once : ĠBoolean Ġ= Ġfalse ) Ġ: ĠStartup Activity Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġvery First Project Opening : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġfinal Ġoverride Ġfun Ġrun Activity ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Application . is UnitTest Mode Ġ|| Ġ( run Only Once Ġ&& Ġ! very First Project Opening )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvery First Project Opening Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( on Before Run Activity ( project )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Later ( project , Ġ 3 ) Ġ{ Ġon Run Activity ( project ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġon Before Run Activity ( project : ĠProject ): ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġon Run Activity ( project : ĠProject ) ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġrun Later ( project : ĠProject , Ġdelay Count : ĠInt , Ġaction : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( project . is Disposed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( delay Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTool WindowManager . getInstance ( project ). invoke Later Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun Later ( project , Ġdelay Count Ġ- Ġ 1 , Ġaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }