protected final void afterMessage(StringBounder stringBounder, LifeEvent n, final double pos) {
		final Participant p = n.getParticipant();
		final LifeLine line = drawingSet.getLivingParticipantBox(p).getLifeLine();

		if (n.getType() == LifeEventType.ACTIVATE || n.getType() == LifeEventType.CREATE) {
			return;
		}

		if (n.getType() == LifeEventType.DESTROY) {
			final Component comp = drawingSet.getSkin().createComponent(ComponentType.DESTROY, null,
					drawingSet.getSkinParam(), null);
			final double delta = comp.getPreferredHeight(stringBounder) / 2;
			final LifeDestroy destroy = new LifeDestroy(pos - delta, drawingSet.getLivingParticipantBox(p)
					.getParticipantBox(), comp);
			if (lifelineAfterDestroy()) {
				line.setDestroy(pos);
			}
			drawingSet.addEvent(n, destroy);
		} else if (n.getType() != LifeEventType.DEACTIVATE) {
			throw new IllegalStateException();
		}

		double delta = 0;
		if (OptionFlags.STRICT_SELFMESSAGE_POSITION && message.isSelfMessage()) {
			delta += 7;
		}

		line.addSegmentVariation(LifeSegmentVariation.SMALLER, pos - delta, n.getSpecificBackColor());
	}