コード例 #1
0
void ProjetManager::ajouterTacheUnitaire(const QString& titre, QDate debTot, QDate finTard, const QString& nomMere, TIME::Duree duree, bool preemptable)
{

	if (this->existeNom(titre))
		throw ProjectException("Impossible de créer la tache : le nom est déjà pris !");
	
	TacheComposite* mere = dynamic_cast<TacheComposite*>(this->get(nomMere));
	if (mere == 0)
		throw ProjectException("Impossible de créer la tache : parent introuvable ou n'est pas une tache composite !");

	if (debTot < mere->getDebTot() || mere->getFinTard() < finTard)
		throw ProjectException("Impossible de créer la tache : Les dates doivent concorder avec les dates du parent !");

	Tache* t;

	if (!preemptable)
	{
		if (duree.getDureeEnHeures() > 12)
			throw ProjectException("Impossible de créer la tache : Les taches non préemptables ne doivent pas dépasser 12h !");
        t = new TacheUnitaire(titre, debTot, finTard, mere, duree);
	}
	else
        t = new TachePreemptable(titre, debTot, finTard, mere, duree);

    this->addItem(t);
    mere->addTache(t);
}
コード例 #2
0
void ProjetManager::ajouterTacheComposite(const QString& titre, QDate debTot, const QString& nomMere, QDate finTard)
{
	if (this->existeNom(titre))
		throw ProjectException("Impossible de créer la tache : le nom est déjà pris !");

	TacheComposite* mere = dynamic_cast<TacheComposite*>(this->get(nomMere));
	if (mere == 0)
		throw ProjectException("Impossible de créer la tache : parent introuvable ou n'est pas une tache composite !");

	if (debTot < mere->getDebTot() || mere->getFinTard() < finTard)
		throw ProjectException("Impossible de créer la tache : Les dates doivent concorder avec les dates du parent !");

    Tache * t = new TacheComposite(titre, debTot, finTard, mere);
	this->addItem(t);
    mere->addTache(t);
}