public String activate(Participant p, LifeEventType lifeEventType, HtmlColor backcolor) {
		if (lastDelay != null) {
			return "You cannot Activate/Deactivate just after a ...";
		}
		if (lifeEventType == LifeEventType.CREATE) {
			pendingCreate = new LifeEvent(p, lifeEventType, backcolor);
			return null;
		}
		if (lastMessage == null) {
			if (lifeEventType == LifeEventType.ACTIVATE) {
				p.incInitialLife(backcolor);
				return null;
			}
			return "Only activate command can occur before message are send";
		}
		if (lifeEventType == LifeEventType.ACTIVATE && lastMessage instanceof Message) {
			activationState.push((Message) lastMessage);
		} else if (lifeEventType == LifeEventType.DEACTIVATE && activationState.empty() == false) {
			activationState.pop();
		}
		final boolean ok = lastMessage.addLifeEvent(new LifeEvent(p, lifeEventType, backcolor));
		if (ok) {
			return null;
		}
		return "Activate/Deactivate already done on " + p.getCode();
	}