private TextBlockBackcolored addHeaderAndFooter(TextBlockBackcolored original) {
    final Display footer = diagram.getFooter();
    final Display header = diagram.getHeader();
    if (Display.isNull(footer) && Display.isNull(header)) {
      return original;
    }
    final TextBlock textFooter =
        Display.isNull(footer)
            ? null
            : footer.create(
                new FontConfiguration(
                    getFont(FontParam.FOOTER),
                    getFontColor(FontParam.FOOTER, null),
                    diagram.getSkinParam().getHyperlinkColor(),
                    diagram.getSkinParam().useUnderlineForHyperlink()),
                diagram.getFooterAlignment(),
                diagram.getSkinParam());
    final TextBlock textHeader =
        Display.isNull(header)
            ? null
            : header.create(
                new FontConfiguration(
                    getFont(FontParam.HEADER),
                    getFontColor(FontParam.HEADER, null),
                    diagram.getSkinParam().getHyperlinkColor(),
                    diagram.getSkinParam().useUnderlineForHyperlink()),
                diagram.getHeaderAlignment(),
                diagram.getSkinParam());

    return new DecorateEntityImage(
        original,
        textHeader,
        diagram.getHeaderAlignment(),
        textFooter,
        diagram.getFooterAlignment());
  }