package Ġcom . int elligent comments . ui . util Ċ Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . openapi . util . use Ċ import Ġjava . awt . Color Ċ import Ġjava . awt . Graphics Ċ import Ġjava . awt . Rectangle Ċ Ċ class ĠHeader With Background Ġ{ ĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġconst Ġval Ġmargin Ġ= Ġ 5 ĊĊĠĠĠ Ġfun Ġdraw Text With Background ( ĊĠĠĠĠĠ Ġg : ĠGraphics , ĊĠĠĠĠĠ Ġrect : ĠRectangle , ĊĠĠĠĠĠ Ġeditor : ĠEditor , ĊĠĠĠĠĠ Ġtext : ĠString , ĊĠĠĠĠĠ Ġcolor : ĠColor ĊĠĠĠ Ġ): ĠRectangle Ġ{ ĊĠĠĠĠĠ Ġval Ġheight Ġ= Ġcalculate Header Height ( editor ) ĊĠĠĠĠĠ Ġval Ġwidth Ġ= Ġcalculate Header Width ( editor , Ġtext ) ĊĠĠĠĠĠ Ġval Ġadjusted Rect Ġ= Ġdraw Background Rounded Rect ( g , Ġrect , Ġwidth , Ġheight , Ġcolor ) ĊĊĠĠĠĠĠ Ġreturn Ġdraw Name ( g , Ġadjusted Rect , Ġeditor , Ġtext , Ġheight ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcalculate Header Height ( editor : ĠEditor ): ĠInt Ġ{ ĊĠĠĠĠĠ Ġreturn ĠText Util . getText Height ( editor , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcalculate Header Width ( editor : ĠEditor , Ġtext : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠ Ġval Ġtext Width Ġ= ĠText Util . getText Width ( editor , Ġtext ) ĊĠĠĠĠĠ Ġreturn Ġtext Width Ġ+ Ġ 2 Ġ* Ġmargin ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Background Rounded Rect ( ĊĠĠĠĠĠ Ġg : ĠGraphics , ĊĠĠĠĠĠ Ġrect : ĠRectangle , ĊĠĠĠĠĠ Ġheader Width : ĠInt , ĊĠĠĠĠĠ Ġheader Height : ĠInt , ĊĠĠĠĠĠ Ġcolor : ĠColor ĊĠĠĠ Ġ): ĠRectangle Ġ{ ĊĠĠĠĠĠ ĠUpdated Graphics Cookie ( g , Ġcolor Ġ= Ġcolor ). use Ġ{ ĊĠĠĠĠĠĠĠ Ġg . fill Round Rect ( rect . x , Ġrect . y , Ġheader Width , Ġheader Height , Ġ 3 , Ġ 3 ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġreturn Ġrect ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Name ( ĊĠĠĠĠĠ Ġg : ĠGraphics , ĊĠĠĠĠĠ Ġrect : ĠRectangle , ĊĠĠĠĠĠ Ġeditor : ĠEditor , ĊĠĠĠĠĠ Ġtext : ĠString , ĊĠĠĠĠĠ Ġheight : ĠInt ĊĠĠĠ Ġ): ĠRectangle Ġ{ ĊĠĠĠĠĠ Ġval Ġshift Ġ= Ġcalculate Height Shift For Name ( editor ) ĊĠĠĠĠĠ Ġval Ġrect For Text Ġ= ĠRectangle ( rect . x Ġ+ Ġmargin , Ġrect . y Ġ- Ġshift , Ġrect . width , Ġrect . height ) ĊĠĠĠĠĠ ĠText Util . render Text ( g , Ġrect For Text , Ġeditor , Ġtext , Ġ 0 ) ĊĊĠĠĠĠĠ Ġreturn ĠRectangle ( rect . x , Ġrect . y Ġ+ Ġheight , Ġrect . width , Ġrect . height Ġ- Ġheight ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcalculate Height Shift For Name ( editor : ĠEditor ) Ġ= ĠText Util . getText Height ( editor , Ġnull ) Ġ/ Ġ 4 ĊĠ Ġ} Ċ }