private void drawUState(UGraphic ug, final double x, final double y, HtmlColor borderColor, DotData dotData) {
		final Dimension2D total = new Dimension2DDouble(maxX - minX, maxY - minY);
		final double suppY;
		if (title == null) {
			suppY = 0;
		} else {
			suppY = title.calculateDimension(ug.getStringBounder()).getHeight() + IEntityImage.MARGIN
					+ IEntityImage.MARGIN_LINE;
		}

		HtmlColor stateBack = getBackColor();
		if (stateBack == null) {
			stateBack = getColor(dotData, ColorParam.stateBackground, group.getStereotype() == null ? null : group
					.getStereotype().getLabel());
		}
		final HtmlColor background = getColor(dotData, ColorParam.background, null);
		final TextBlockWidth attribute = getTextBlockAttribute(dotData);
		final double attributeHeight = attribute.calculateDimension(ug.getStringBounder()).getHeight();
		final RoundedContainer r = new RoundedContainer(total, suppY, attributeHeight
				+ (attributeHeight > 0 ? IEntityImage.MARGIN : 0), borderColor, stateBack, background);
		r.drawU(ug, x + minX, y + minY, dotData.getSkinParam().shadowing());

		if (title != null) {
			title.drawU(ug, x + xTitle, y + yTitle);
		}

		if (attributeHeight > 0) {
			attribute.drawU(ug, x + minX + IEntityImage.MARGIN, y + minY + suppY + IEntityImage.MARGIN / 2.0,
					total.getWidth());
		}

		final Stereotype stereotype = group.getStereotype();
		final boolean withSymbol = stereotype != null && "<<O-O>>".equalsIgnoreCase(stereotype.getLabel());
		if (withSymbol) {
			ug.getParam().setColor(borderColor);
			EntityImageState.drawSymbol(ug, x + maxX, y + maxY);

		}

	}