Nantes Université

Skip to content
Extraits de code Groupes Projets
Controleur.java 18,2 ko
Newer Older
Sunye's avatar
Sunye a validé
package fr.alma.controleur;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
Julien Durillon's avatar
Julien Durillon a validé
import java.util.Locale;
import java.util.Map;
Julien Durillon's avatar
Julien Durillon a validé
import java.util.logging.Level;
import java.util.logging.Logger;
Sunye's avatar
Sunye a validé

import javax.swing.tree.DefaultTreeModel;

import fr.alma.ihm.vues.ApplicationGTD;
import fr.alma.ihm.vues.generale.arbre.ArbreGTD;
import fr.alma.ihm.vues.generale.arbre.NoeudGTD;
import fr.alma.ihm.vues.generale.popup.AjouterProjetPopup;
import fr.alma.ihm.vues.generale.popup.AjouterTachePopup;
import fr.alma.ihm.vues.generale.popup.ConnexionPopup;
import fr.alma.ihm.vues.generale.popup.CreationComptePopup;
import fr.alma.ihm.vues.generale.popup.CreationContactPopup;
import fr.alma.ihm.vues.generale.popup.EditerProjetPopup;
import fr.alma.ihm.vues.generale.popup.EditerTachePopup;
import fr.alma.modele.Modele;
Julien DURILLON's avatar
Julien DURILLON a validé
import fr.alma.modele.AbstractModele;
Sunye's avatar
Sunye a validé
import fr.alma.modele.noyau.Frequence;
import fr.alma.modele.noyau.IContact;
import fr.alma.modele.noyau.IProjet;
import fr.alma.modele.noyau.ITache;
import fr.alma.modele.noyau.Periodicite;

/**
 * Controleur permettant de contrôler l'application.
Julien Durillon's avatar
Julien Durillon a validé
 * 
Sunye's avatar
Sunye a validé
 * @author Université de Nantes
 * @since 2009
 * @version 1.0
 */
public class Controleur implements IControleur {

	/**
	 * Le modèle abstrait du controleur.
	 */
	protected Modele modele;

	/**
	 * 
	 */
	protected IProjet projetPere;

	/**
Julien Durillon's avatar
Julien Durillon a validé
	 * Format de la date, outil nécessaire lors des transformations du type Dare
	 * en type string
Sunye's avatar
Sunye a validé
	 */
Julien Durillon's avatar
Julien Durillon a validé
	public static final DateFormat DATEFORMAT = new SimpleDateFormat(
			"dd/MM/yyyy", Locale.FRANCE);
        private static final int MINPASSWORDLEN = 8;
Sunye's avatar
Sunye a validé

	/**
	 * Constructeur.
Julien Durillon's avatar
Julien Durillon a validé
	 * 
	 * @param modele
	 *            le modèle de notre application
Sunye's avatar
Sunye a validé
	 */
	public Controleur(Modele modele) {
		this.modele = modele;
	}

	/**
	 * Contrôle de la connexion
Julien Durillon's avatar
Julien Durillon a validé
	 * 
	 * @param login
	 *            le login utilisateur
	 * @param mdp
	 *            le mot de passe utilisateur
Sunye's avatar
Sunye a validé
	 */
	@Override
Julien Durillon's avatar
Julien Durillon a validé
	public void connecter(final String login, final char[] mdp) {
		// on force le login à ne pas avoir d'espace afin de respecter les
		// normes
		// et à le contrôler plus aisément
		String login2 = login.replaceAll(" ", "");
Julien Durillon's avatar
Julien Durillon a validé
		if (login2.length() != 0 && mdp.length != 0) {
			// vérifier la bonne connexion signifie regarder ne bd si
			// l'utilisateur est enregistré
			Long idUtilisateur = this.modele.existeUtilisateur(login2, mdp);
			if (idUtilisateur == null) {
				ApplicationGTD
				.getInstance()
				.gererMessage(2,
						"La connexion a échoué - L'utilisateur n'est pas reconnu");
			} else {
Julien DURILLON's avatar
Julien DURILLON a validé
				AbstractModele.setIdUtilisateur(idUtilisateur);
				AbstractModele.setProjetRacine(modele.getGestionnaireTaches()
Julien Durillon's avatar
Julien Durillon a validé
						.getProjetRacine());
Sunye's avatar
Sunye a validé
				ArbreGTD.getInstance().initialiser();
Julien Durillon's avatar
Julien Durillon a validé
				ApplicationGTD.getInstance().gererMessage(1,
						"La connexion est réussie");
				ApplicationGTD.getInstance().getContainerVues()
						.getVueGenerale().peuplerListeContacts();
Sunye's avatar
Sunye a validé
				ApplicationGTD.getInstance().getMenu().setEstConnecte(true);
				ConnexionPopup.getInstance().dispose();
Sunye's avatar
Sunye a validé
		} else {
Julien Durillon's avatar
Julien Durillon a validé
			
			ApplicationGTD
					.getInstance()
					.gererMessage(2,
							"La connexion a échoué - Les champs obligatoires ne doivent pas etre vides");
Sunye's avatar
Sunye a validé
		}
	}

	/**
	 * Contrôle de la déconnexion
	 */
	@Override
	public void deconnecter() {
		ArbreGTD.getInstance().supprimerTout();
Julien Durillon's avatar
Julien Durillon a validé
		ApplicationGTD.getInstance().getContainerVues().getVueGenerale()
				.getPanneauTacheProjet().removeAll();
		ApplicationGTD.getInstance().getContainerVues().getVueGenerale()
				.getToolBar().removeAll();
		ApplicationGTD.getInstance().getContainerVues().getVueGenerale()
				.getListModel().removeAllElements();
Sunye's avatar
Sunye a validé
		ApplicationGTD.getInstance().getMenu().setEstConnecte(false);
		ApplicationGTD.getInstance().gererMessage(-1, "");
	}

	/**
	 * Contrôle d'une création de compte
Julien Durillon's avatar
Julien Durillon a validé
	 * 
	 * @param login
	 *            le login utilisateur
	 * @param password
	 *            mdp le mot de passe utilisateur
	 * @param password2
	 *            mdp de confirmation
	 * @param email
	 *            adresse email de l'utilisateur si besoin
Sunye's avatar
Sunye a validé
	 */
	@Override
Julien Durillon's avatar
Julien Durillon a validé
	public void creerCompte(final String login, final char[] password,
			final char[] password2, final String email) {

		// verif si compte existe pas deja avec le meme nom
		// this.modele.verifBonneCreationDeCompte(login);

		// vérification qu les noms de passe correspondent
		Boolean mdp_identiques = Boolean.TRUE;
                // Vérification de la longueur du mot de passe.
                if(password.length < MINPASSWORDLEN){
                    ApplicationGTD
					.getInstance()
					.gererMessage(2,
							"Le mot de passe a une longueur inférieure à 8.");
                }


Julien Durillon's avatar
Julien Durillon a validé
		if (password.length == password2.length) {
			for (int i = 0; i < password.length; i++) {
				mdp_identiques = (password[i] == password2[i]);
				if (!mdp_identiques) {
Sunye's avatar
Sunye a validé
					break;
				}
			}
Julien Durillon's avatar
Julien Durillon a validé
		} else {
			mdp_identiques = Boolean.FALSE;
Sunye's avatar
Sunye a validé
		}

		if (mdp_identiques) {
Julien Durillon's avatar
Julien Durillon a validé
			// on force le login à ne pas avoir d'espace afin de respecter les
			// normes
			// et à le contrôler plus aisément
			final String login2 = login.replaceAll(" ", "");
			// les champs de saisies ne doivent pas etre vide
			if (login2.length() == 0 || password.length == 0
					|| password2.length == 0) {
				ApplicationGTD
						.getInstance()
						.gererMessage(2,
								"La connexion a échoué - Les champs obligatoires ne doivent pas etre vide");
			} else if (login2.length() < 4){
                            ApplicationGTD
						.getInstance()
						.gererMessage(2,
								"Le nom d'utilisateur doit au moins être de taille 4.");
                        } else {
Julien Durillon's avatar
Julien Durillon a validé
				modele.creerCompte(login2, password, email);
				ApplicationGTD.getInstance().gererMessage(1,
						"La création du compte est réussie");
Sunye's avatar
Sunye a validé
				CreationComptePopup.getInstance().dispose();
			}
		} else {
Julien Durillon's avatar
Julien Durillon a validé
			ApplicationGTD
					.getInstance()
					.gererMessage(2,
							"La création du compte a échoué - Mots de passe différents");
Sunye's avatar
Sunye a validé
		}
	}

	/**
	 * Contrôle d'une nouvelle tâche ou de l'édition d'une tâche existante.
Julien Durillon's avatar
Julien Durillon a validé
	 * 
	 * @param valeurs
	 *            les valeurs enregistrés des différents champs de saisies lors
	 *            de l'ajout ou de l'edition d'une tache
	 * @param action
	 *            l'action effectuée (ajouter ou editer)
Sunye's avatar
Sunye a validé
	 */
	@Override
Julien Durillon's avatar
Julien Durillon a validé
	public void ajouterEditerTache(Map<Integer, Object> valeurs, TypeAction action) {
Sunye's avatar
Sunye a validé

		Date dArretFreqRep = null;
		Date dDebut = null;
		Date dEcheance = null;
		Integer priorite = null;
		String notes = null;
		List<String> tags = null;
		List<String> urls = null;
		Integer tauxEffort = null;
		Frequence frequence = null;
		String nom = null;
		List<String> contacts = null;
		String contexte = "";

		for (Integer cle : valeurs.keySet()) {
			switch (cle) {
Julien Durillon's avatar
Julien Durillon a validé
			case ITache.CONTEXTE:
Sunye's avatar
Sunye a validé
				contexte = (String) valeurs.get(cle);
				break;

			case ITache.DATE_ARRET_FREQUENCE_REP:
				try {
Julien Durillon's avatar
Julien Durillon a validé
					synchronized (DATEFORMAT) {
							dArretFreqRep = DATEFORMAT.parse((String) valeurs.get(cle));
					}
Sunye's avatar
Sunye a validé
				} catch (ParseException e) {
Julien Durillon's avatar
Julien Durillon a validé
					Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.WARNING, "Date d'arret de la fréquence de répétition invalide");
Sunye's avatar
Sunye a validé
				}
				break;

			case ITache.DATE_DEBUT:
				try {
Julien Durillon's avatar
Julien Durillon a validé
					synchronized (DATEFORMAT) {
						dDebut = DATEFORMAT.parse((String) valeurs.get(cle));
					}
Sunye's avatar
Sunye a validé
				} catch (ParseException e) {
Julien Durillon's avatar
Julien Durillon a validé
					Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.WARNING, "Date de début invalide");
Sunye's avatar
Sunye a validé
				}
				break;

			case ITache.DATE_ECHEANCE:
				try {
Julien Durillon's avatar
Julien Durillon a validé
					synchronized (DATEFORMAT) {
						dEcheance = DATEFORMAT.parse((String) valeurs.get(cle));	
					}
Sunye's avatar
Sunye a validé
				} catch (ParseException e) {
Julien Durillon's avatar
Julien Durillon a validé
					Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.WARNING, "Date d'échéance invalide");
Sunye's avatar
Sunye a validé
				}
				break;

			case ITache.FREQUENCE_REP:
Julien Durillon's avatar
Julien Durillon a validé
				final String freq = (String) valeurs.get(cle);
				if ("Journalière".equals(freq)) {
Sunye's avatar
Sunye a validé
					frequence = Frequence.JOURNALIERE;
Julien Durillon's avatar
Julien Durillon a validé
				} else if ("Hebdomadaire".equals(freq)) {
Sunye's avatar
Sunye a validé
					frequence = Frequence.HEBDOMADAIRE;
Julien Durillon's avatar
Julien Durillon a validé
				} else if ("Mensuelle".equals(freq)) {
Sunye's avatar
Sunye a validé
					frequence = Frequence.MENSUELLE;
				} else {
					frequence = Frequence.EVENEMENT_PONCTUEL;
				}
				break;

			case ITache.NOTES:
Julien Durillon's avatar
Julien Durillon a validé
				notes = (String) valeurs.get(cle);
Sunye's avatar
Sunye a validé
				break;

			case ITache.PRIORITE:
Julien Durillon's avatar
Julien Durillon a validé
				priorite = (Integer) valeurs.get(cle);
Sunye's avatar
Sunye a validé
				break;

			case ITache.TAGS:
Julien Durillon's avatar
Julien Durillon a validé
				final String tTemp[] = ((String) valeurs.get(cle)).split(" ");
Sunye's avatar
Sunye a validé
				tags = new ArrayList<String>();
				for (String tag : tTemp) {
					tags.add(tag);
				}
				break;

			case ITache.TAUX_EFFORT:
Julien Durillon's avatar
Julien Durillon a validé
				tauxEffort = (Integer) valeurs.get(cle);
Sunye's avatar
Sunye a validé
				break;

			case ITache.URLS:
Julien Durillon's avatar
Julien Durillon a validé
				final String uTemp[] = ((String) valeurs.get(cle)).split(" ");
Sunye's avatar
Sunye a validé
				urls = new ArrayList<String>();
				for (String url : uTemp) {
					urls.add(url);
				}
				break;

			case ITache.CONTACTS:
Julien Durillon's avatar
Julien Durillon a validé
				final String uContact[] = ((String) valeurs.get(cle)).split(",");
Sunye's avatar
Sunye a validé
				contacts = new ArrayList<String>();
				for (String c : uContact) {
					contacts.add(c);
Julien Durillon's avatar
Julien Durillon a validé
					System.out.println("c = " + c);
Sunye's avatar
Sunye a validé
				}
				break;

			case ITache.NOM:
Julien Durillon's avatar
Julien Durillon a validé
				nom = (String) valeurs.get(cle);
				break;
			default:
Sunye's avatar
Sunye a validé
				break;
			}
		}

Julien Durillon's avatar
Julien Durillon a validé
		// on force le login à ne pas avoir d'espace afin de respecter les
		// normes
		// et à le contrôler plus aisément
		final String nomTemp = nom.replaceAll(" ", "");
Sunye's avatar
Sunye a validé

Julien Durillon's avatar
Julien Durillon a validé
		if (action.equals(TypeAction.AJOUTER)) {
Sunye's avatar
Sunye a validé

Julien Durillon's avatar
Julien Durillon a validé
			if (nomTemp.length() == 0) {
				ApplicationGTD
						.getInstance()
						.gererMessage(2,
								"La création de la tâche a échoué - Le nom de la tâche ne doit pas etre vide");
Sunye's avatar
Sunye a validé
			} else {
Julien Durillon's avatar
Julien Durillon a validé
				NoeudGTD noeudCourant = (NoeudGTD) ArbreGTD.getInstance()
						.getArbre().getLastSelectedPathComponent();
Sunye's avatar
Sunye a validé
				IProjet projet = null;
				if (noeudCourant != null) {
Julien Durillon's avatar
Julien Durillon a validé
					projet = (IProjet) noeudCourant.getUserObject();
Sunye's avatar
Sunye a validé
				}

Julien Durillon's avatar
Julien Durillon a validé
				modele.creerTache(nom, projet, contexte, notes, dDebut,
						dEcheance, priorite, tauxEffort, null, frequence,
						dArretFreqRep, urls, tags);
				ApplicationGTD.getInstance().gererMessage(1,
						"La création de la tâche a réussi");
Sunye's avatar
Sunye a validé
				AjouterTachePopup.getInstance().dispose();
Julien Durillon's avatar
Julien Durillon a validé
				((DefaultTreeModel) ArbreGTD.getInstance().getArbre()
						.getModel()).reload();
Sunye's avatar
Sunye a validé
			}
Julien Durillon's avatar
Julien Durillon a validé
		} else if (action.equals(TypeAction.EDITER)) {
Sunye's avatar
Sunye a validé

Julien Durillon's avatar
Julien Durillon a validé
			if (nomTemp.length() == 0) {
				ApplicationGTD
						.getInstance()
						.gererMessage(
								2,
								"La modification de la tâche a échoué - Le nom de la tâche ne doit pas etre vide");
Sunye's avatar
Sunye a validé
			} else {
Julien Durillon's avatar
Julien Durillon a validé
				NoeudGTD node = (NoeudGTD) ArbreGTD.getInstance().getArbre()
						.getLastSelectedPathComponent();
Sunye's avatar
Sunye a validé
				ITache t = (ITache) node.getUserObject();
				t.setNom(nom);
				t.setContexte(contexte);
				t.setDateDebut(dDebut);
				t.setDateEcheance(dEcheance);
				t.setNotes(notes);
				t.setPeriodicite(new Periodicite(frequence, dArretFreqRep));
				t.setUrls(urls);
				t.setTags(tags);
				t.setPriorite(priorite);
				t.setTauxEffort(tauxEffort);
				modele.editerTache(t);
Julien Durillon's avatar
Julien Durillon a validé
				ApplicationGTD.getInstance().getContainerVues()
						.getVueGenerale().getPanneauTacheProjet().revalidate();
				ApplicationGTD.getInstance().getContainerVues()
						.getVueGenerale().getPanneauTacheProjet().repaint();
				ApplicationGTD.getInstance().gererMessage(1,
						"La modification de la tâche a réussi");
				((DefaultTreeModel) ArbreGTD.getInstance().getArbre()
						.getModel()).reload();
Sunye's avatar
Sunye a validé
				EditerTachePopup.getInstance().dispose();
			}
		}
	}

	/**
	 * Contrôle d'un nouveau projet
Julien Durillon's avatar
Julien Durillon a validé
	 * 
	 * @param valeurs
	 *            les valeurs enregistrés des différents champs de saisies lors
	 *            de l'ajout ou de l'edition d'un projet
	 * @param action
	 *            l'action effectuée (ajouter ou editer)
Sunye's avatar
Sunye a validé
	 */
	@Override
	public void ajouterEditerProjet(Map<Integer, Object> valeurs, TypeAction action) {
Sunye's avatar
Sunye a validé

		String nom = null;
		String notes = null;
		String contexte = "";

		for (Integer cle : valeurs.keySet()) {
			switch (cle) {
Julien Durillon's avatar
Julien Durillon a validé
			case IProjet.CONTEXTE_DEFAUT:
Sunye's avatar
Sunye a validé
				contexte = (String) valeurs.get(cle);
				break;

			case IProjet.NOTES:
Julien Durillon's avatar
Julien Durillon a validé
				notes = (String) valeurs.get(cle);
Sunye's avatar
Sunye a validé
				break;

			case IProjet.NOM:
Julien Durillon's avatar
Julien Durillon a validé
				nom = (String) valeurs.get(cle);
				break;
			default:
				break;
Sunye's avatar
Sunye a validé
			}
		}

Julien Durillon's avatar
Julien Durillon a validé
		final String nomTemp = nom.replaceAll(" ", "");
Sunye's avatar
Sunye a validé

		if (action.equals(TypeAction.AJOUTER)) {

Julien Durillon's avatar
Julien Durillon a validé
			if (nomTemp.length() == 0) {
				ApplicationGTD
						.getInstance()
						.gererMessage(2,
								"La création du projet a échoué - Le nom du projet ne doit pas etre vide");
Sunye's avatar
Sunye a validé
			} else {
Julien Durillon's avatar
Julien Durillon a validé
				ApplicationGTD.getInstance().gererMessage(1,
						"La création du projet a réussi");
				NoeudGTD node = (NoeudGTD) ArbreGTD.getInstance().getArbre()
						.getLastSelectedPathComponent();
Sunye's avatar
Sunye a validé
				Object nodeInfo = node.getUserObject();
				if (nodeInfo instanceof IProjet) {
					this.projetPere = (IProjet) nodeInfo;
					modele.creerProjet(nom, contexte, notes, projetPere);
				} else {
Julien DURILLON's avatar
Julien DURILLON a validé
					modele.creerProjet(nom, contexte, notes, AbstractModele
Julien Durillon's avatar
Julien Durillon a validé
							.getProjetRacine());
Sunye's avatar
Sunye a validé
				}
				AjouterProjetPopup.getInstance().dispose();
			}

		} else if (action.equals(TypeAction.EDITER)) {

Julien Durillon's avatar
Julien Durillon a validé
			if (nomTemp.length() == 0) {
				ApplicationGTD
						.getInstance()
						.gererMessage(2,
								"La modification du projet a échoué - Le nom du projet ne doit pas etre vide");
Sunye's avatar
Sunye a validé
			} else {
Julien Durillon's avatar
Julien Durillon a validé
				NoeudGTD node = (NoeudGTD) ArbreGTD.getInstance().getArbre()
						.getLastSelectedPathComponent();
Sunye's avatar
Sunye a validé
				IProjet p = (IProjet) node.getUserObject();
				p.setNom(nom);
				p.setContexte(contexte);
				p.setNotes(notes);
				modele.editerProjet(p);
Julien Durillon's avatar
Julien Durillon a validé
				ApplicationGTD.getInstance().getContainerVues()
						.getVueGenerale().getPanneauTacheProjet().revalidate();
				ApplicationGTD.getInstance().getContainerVues()
						.getVueGenerale().getPanneauTacheProjet().repaint();
				ApplicationGTD.getInstance().gererMessage(1,
						"La modification du projet a réussi");
				((DefaultTreeModel) ArbreGTD.getInstance().getArbre()
						.getModel()).reload();
Sunye's avatar
Sunye a validé
				EditerProjetPopup.getInstance().dispose();
			}
		}
	}

	/**
	 * Contrôle d'un nouveau contact
Julien Durillon's avatar
Julien Durillon a validé
	 * 
	 * @param nom
	 *            le nom du contact
	 * @param email
	 *            l'adresse mail du contact
	 * @param adresse
	 *            l'adresse du contact
	 * @param tel
	 *            numéro de téléphone du contact
Sunye's avatar
Sunye a validé
	 */
	@Override
Julien Durillon's avatar
Julien Durillon a validé
	public void creerContact(String nom, String email, String adresse,
			String tel) {
		// verif si contact existe pas deja avec le meme nom
		// this.modele.verifExistanceContact(nom);

		// on force le nom du contact à ne pas avoir d'espace afin de respecter
		// les normes
		// et à le contrôler plus aisément
Sunye's avatar
Sunye a validé
		String nomTemp = nom.replaceAll(" ", "");
Julien Durillon's avatar
Julien Durillon a validé
		if (nomTemp.length() == 0) {
			ApplicationGTD.getInstance().gererMessage(2,"La création du contact a échoué - Le nom du contact ne doit pas etre vide");
			
		} else {
Sunye's avatar
Sunye a validé
			IContact c = modele.creerContact(nom, email, adresse, tel);
			ApplicationGTD.getInstance().gererMessage(1, "La création du contact a réussi");
			ApplicationGTD.getInstance().getContainerVues().getVueGenerale().getListModel().addElement(c);
Julien Durillon's avatar
Julien Durillon a validé

			if (AjouterTachePopup.isNullInstance() == false) {
				Object data[] = { nom, email, new Boolean(true) };
				AjouterTachePopup.getInstance().getContact().getListeContacts()
						.addRow(data);
				AjouterTachePopup.getInstance().getContact().getListeContacts()
						.fireTableDataChanged();
Sunye's avatar
Sunye a validé
			} else if (EditerTachePopup.isNullInstance() == false) {
Julien Durillon's avatar
Julien Durillon a validé
				Object data[] = { nom, email, new Boolean(true) };
				EditerTachePopup.getInstance().getContact().getListeContacts()
						.addRow(data);
				EditerTachePopup.getInstance().getContact().getListeContacts()
						.fireTableDataChanged();
Sunye's avatar
Sunye a validé
			}

			CreationContactPopup.getInstance().dispose();
Sunye's avatar
Sunye a validé
		}
	}

	/**
	 * Contrôle d'une suppression d'un contact
Julien Durillon's avatar
Julien Durillon a validé
	 * 
	 * @param contact
	 *            le nom du contact à supprimer
Sunye's avatar
Sunye a validé
	 */
	@Override
	public void supprimerContact(IContact contact) {
		boolean estValide = true;
		this.modele.supprimerContact(contact);
		if (estValide) {
Julien Durillon's avatar
Julien Durillon a validé
			ApplicationGTD.getInstance().gererMessage(1,
					"La suppression du contact a réussi");
			ApplicationGTD.getInstance().getContainerVues().getVueGenerale()
					.getListModel().removeElement(contact);
Sunye's avatar
Sunye a validé
		} else {
Julien Durillon's avatar
Julien Durillon a validé
			ApplicationGTD.getInstance().gererMessage(2,
					"La suppression du contact a échoué");
Sunye's avatar
Sunye a validé
		}
	}

	/**
	 * Contrôle du bouton commit
	 */
	@Override
	public void commit() {
		boolean estValide = true;
		this.modele.commit();
		if (estValide) {
Julien Durillon's avatar
Julien Durillon a validé
			ApplicationGTD.getInstance().gererMessage(1,
					"L'envoi de données a réussi");
Sunye's avatar
Sunye a validé
		} else {
Julien Durillon's avatar
Julien Durillon a validé
			ApplicationGTD.getInstance().gererMessage(2,
					"L'envoi de données a échoué");
Sunye's avatar
Sunye a validé
		}
	}

	/**
	 * Contrôle du bouton update
	 */
	@Override
	public void update() {
		boolean estValide = true;
		this.modele.update();
Julien Durillon's avatar
Julien Durillon a validé
		if (estValide) {
			ApplicationGTD.getInstance().gererMessage(1,
					"La récupération de données a réussi");
Sunye's avatar
Sunye a validé
		} else {
Julien Durillon's avatar
Julien Durillon a validé
			ApplicationGTD.getInstance().gererMessage(2,
					"La récupération de données a échoué");
Sunye's avatar
Sunye a validé
		}
	}

	/**
	 * Contrôle de la synchronisation avec le serveur
	 */
	@Override
	public void synchro() {
		boolean estValide = true;
		this.modele.synchro();
		if (estValide) {
Julien Durillon's avatar
Julien Durillon a validé
			ApplicationGTD.getInstance().gererMessage(1,
					"La synchronisation a réussi");
Sunye's avatar
Sunye a validé
		} else {
Julien Durillon's avatar
Julien Durillon a validé
			ApplicationGTD.getInstance().gererMessage(2,
					"La synchronisation a échoué");
Sunye's avatar
Sunye a validé
		}
	}
Sunye's avatar
Sunye a validé
	/**
	 * Contrôle de la mise en corbeille d'un objet (tache ou projet)
	 */
	@Override
	public void mettreDansCorbeille(Object o) {
		modele.mettreDansCorbeille(o);
	}

	/**
Julien Durillon's avatar
Julien Durillon a validé
	 * Contrôle de la suppression de tous les éléménts présents dans la
	 * corbeille
Sunye's avatar
Sunye a validé
	 */
	@Override
	public void viderCorbeille() {
Julien Durillon's avatar
Julien Durillon a validé
		NoeudGTD node = (NoeudGTD) ArbreGTD.getInstance().getArbre()
				.getLastSelectedPathComponent();
Sunye's avatar
Sunye a validé
		IProjet corbeille = (IProjet) node.getUserObject();
		modele.viderCorbeille(corbeille);
		ArbreGTD.getInstance().viderCorbeille();
	}
}