public EntityImageClassHeader2(IEntity entity, ISkinParam skinParam, PortionShower portionShower) {
		super(entity, skinParam);

		final boolean italic = entity.getType() == EntityType.ABSTRACT_CLASS
				|| entity.getType() == EntityType.INTERFACE;

		final HtmlColor color = getFontColor(FontParam.CLASS, getStereo());
		final Stereotype stereotype = entity.getStereotype();
		final String generic = entity.getGeneric();
		FontConfiguration fontConfigurationName = new FontConfiguration(getFont(FontParam.CLASS, stereotype), color);
		if (italic) {
			fontConfigurationName = fontConfigurationName.italic();
		}
		final TextBlock name = TextBlockUtils.withMargin(
				TextBlockUtils.create(entity.getDisplay2(), fontConfigurationName, HorizontalAlignement.CENTER), 3, 3,
				0, 0);

		final TextBlock stereo;
		if (stereotype == null || stereotype.getLabel() == null
				|| portionShower.showPortion(EntityPortion.STEREOTYPE, entity) == false) {
			stereo = null;
		} else {
			stereo = TextBlockUtils.withMargin(TextBlockUtils.create(
					stereotype.getLabels(),
					new FontConfiguration(getFont(FontParam.CLASS_STEREOTYPE, stereotype), getFontColor(
							FontParam.CLASS_STEREOTYPE, stereotype)), HorizontalAlignement.CENTER), 1, 0);
		}

		TextBlock genericBlock;
		if (generic == null) {
			genericBlock = null;
		} else {
			genericBlock = TextBlockUtils.create(
					Arrays.asList(generic),
					new FontConfiguration(getFont(FontParam.CLASS_STEREOTYPE, stereotype), getFontColor(
							FontParam.CLASS_STEREOTYPE, stereotype)), HorizontalAlignement.CENTER);
			genericBlock = TextBlockUtils.withMargin(genericBlock, 1, 1);
			final HtmlColor classBackground = getColor(ColorParam.background, stereotype);
			// final HtmlColor classBorder = getColor(ColorParam.classBorder, stereotype);
			final HtmlColor classBorder = getFontColor(FontParam.CLASS_STEREOTYPE, stereotype);
			genericBlock = new TextBlockGeneric(genericBlock, classBackground, classBorder);
			genericBlock = TextBlockUtils.withMargin(genericBlock, 1, 1);
		}

		final TextBlock circledCharacter;
		if (portionShower.showPortion(EntityPortion.CIRCLED_CHARACTER, getEntity())) {
			circledCharacter = TextBlockUtils.withMargin(getCircledCharacter(entity), 4, 0, 5, 5);
		} else {
			circledCharacter = null;
		}
		this.headerLayout = new HeaderLayout(circledCharacter, stereo, name, genericBlock);
	}