package Ġcom . nan ov ms . ops . ui Ċ Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . wm . Tool Window Ċ import Ġcom . intellij . openapi . wm . Tool Window Factory Ċ import Ġcom . intellij . openapi . wm . Tool WindowManager Ċ import Ġcom . intellij . ui . content . Content Ċ import Ġcom . intellij . ui . content . Content Factory Ċ Ċ class ĠTool Window Factory (): ĠTool Window Factory Ġ{ ĊĠĠĠ Ġprivate Ġval Ġops Console Ġ= ĠConsole Panel () ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Tool Window Content ( project : ĠProject , Ġtool Window : ĠTool Window ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Factory Ġ= ĠContent Factory . SERVICE . getInstance () ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġcontent Factory . create Content ( ops Console , ĠOps DisplayName , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġtool Window . content Manager . add Content ( content ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠOps DisplayName Ġ= Ġ" OPS " ĊĊĠĠĠĠĠĠĠ Ġfun Ġprint ( project : ĠProject , Ġtext : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= ĠgetContent ( project , ĠOps DisplayName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpanel Ġ= Ġcontent . component Ġas ? ĠConsole Panel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpanel ?. append ( text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠgetContent ( project : ĠProject , ĠdisplayName : ĠString ): ĠContent ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtool Window Ġ= Ġget Window ( project ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtool Window ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( content Ġin Ġtool Window . content Manager . contents ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( content . displayName Ġ== ĠdisplayName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Window ( project : ĠProject ): ĠTool Window ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTool WindowManager . getInstance ( project ). get Tool Window (" Nano VM s ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }