Commit 1d777188 authored by Julien DURILLON's avatar Julien DURILLON
Browse files

final

parent a8aaeed5
......@@ -25,7 +25,7 @@ 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;
import fr.alma.modele.ModeleAbstrait;
import fr.alma.modele.AbstractModele;
import fr.alma.modele.noyau.Frequence;
import fr.alma.modele.noyau.IContact;
import fr.alma.modele.noyau.IProjet;
......@@ -93,8 +93,8 @@ public class Controleur implements IControleur {
.gererMessage(2,
"La connexion a échoué - L'utilisateur n'est pas reconnu");
} else {
ModeleAbstrait.setIdUtilisateur(idUtilisateur);
ModeleAbstrait.setProjetRacine(modele.getGestionnaireTaches()
AbstractModele.setIdUtilisateur(idUtilisateur);
AbstractModele.setProjetRacine(modele.getGestionnaireTaches()
.getProjetRacine());
ArbreGTD.getInstance().initialiser();
ApplicationGTD.getInstance().gererMessage(1,
......@@ -439,7 +439,7 @@ public class Controleur implements IControleur {
this.projetPere = (IProjet) nodeInfo;
modele.creerProjet(nom, contexte, notes, projetPere);
} else {
modele.creerProjet(nom, contexte, notes, ModeleAbstrait
modele.creerProjet(nom, contexte, notes, AbstractModele
.getProjetRacine());
}
AjouterProjetPopup.getInstance().dispose();
......
......@@ -12,7 +12,7 @@ import javax.swing.UIManager;
import fr.alma.controleur.IControleur;
import fr.alma.ihm.Menu;
import fr.alma.ihm.vues.generale.popup.ConnexionPopup;
import fr.alma.modele.ModeleAbstrait;
import fr.alma.modele.AbstractModele;
import fr.alma.observer.Observer;
/**
......@@ -182,7 +182,7 @@ public final class ApplicationGTD extends JFrame implements Observer {
// IMPLEMENTATION DU PATTERN OBSERVER
// ************************************************
@Override
public void update(ModeleAbstrait modele) {
public void update(AbstractModele modele) {
}
......
......@@ -12,7 +12,7 @@ import javax.swing.tree.TreePath;
import fr.alma.ihm.vues.ApplicationGTD;
import fr.alma.ihm.vues.generale.JToolBarGTD;
import fr.alma.ihm.vues.generale.PanneauTacheProjet;
import fr.alma.modele.ModeleAbstrait;
import fr.alma.modele.AbstractModele;
import fr.alma.modele.noyau.IProjet;
import fr.alma.modele.noyau.ITache;
import fr.alma.modele.noyau.Projet;
......@@ -131,7 +131,7 @@ public final class ArbreGTD extends JPanel {
* initialisation de l'arbre
*/
public void initialiser() {
IProjet root = ModeleAbstrait.getProjetRacine();
IProjet root = AbstractModele.getProjetRacine();
noeudRacine = new NoeudGTD(root);
treeModel.setRoot(noeudRacine);
peuplerArbre(noeudRacine);
......@@ -187,7 +187,7 @@ public final class ArbreGTD extends JPanel {
NoeudGTD prt = parent;
if (prt == null) {
prt = new NoeudGTD(ModeleAbstrait.getProjetRacine());
prt = new NoeudGTD(AbstractModele.getProjetRacine());
}
treeModel.insertNodeInto(childNode, prt, prt.getChildCount());
......
......@@ -4,7 +4,7 @@ import fr.alma.controleur.Controleur;
import fr.alma.controleur.IControleur;
import fr.alma.ihm.vues.ApplicationGTD;
import fr.alma.modele.Modele;
import fr.alma.modele.ModeleAbstrait;
import fr.alma.modele.AbstractModele;
/**
* Classe principale.
......@@ -21,7 +21,7 @@ public class GTD {
public static void main(String[] args) {
//pattern mvc
ModeleAbstrait modele = new Modele();
AbstractModele modele = new Modele();
IControleur controler = new Controleur((Modele) modele);
ApplicationGTD appli = ApplicationGTD.getInstance();
appli.setControler(controler);
......
......@@ -10,14 +10,17 @@ public enum Frequence implements Serializable {
@Override
public String toString() {
if (this == EVENEMENT_PONCTUEL) {
return "Evénement ponctuel";
String retour = null;
if (this == EVENEMENT_PONCTUEL) {
retour = "Evénement ponctuel";
} else if (this == JOURNALIERE) {
return "Journalière";
retour = "Journalière";
} else if (this == HEBDOMADAIRE) {
return "Hebdomadaire";
retour = "Hebdomadaire";
} else {
return "Mensuelle";
retour = "Mensuelle";
}
return retour;
}
}
\ No newline at end of file
......@@ -13,6 +13,8 @@ import fr.alma.modele.noyau.IProjet;
import fr.alma.modele.noyau.ITache;
import fr.alma.modele.noyau.Projet;
import fr.alma.modele.noyau.Tache;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Classe faisant office de façade.
......@@ -20,7 +22,7 @@ import fr.alma.modele.noyau.Tache;
* @since 2009
* @version 1.0
*/
public class Modele extends ModeleAbstrait {
public class Modele extends AbstractModele {
/** Composant qui gère les tâches */
private IGestionnaireTaches gestionnaireTaches;
......@@ -41,29 +43,29 @@ public class Modele extends ModeleAbstrait {
@Override
public void creerCompte(String login, char[] password, String email) {
System.out.println("Création du compte...");
Logger.getAnonymousLogger().log(Level.INFO, "Création du compte...");
gestionnaireTaches.getBd().creerCompte(login, password, email);
}
@Override
public IContact creerContact(String nom, String email, String adresse, String tel) {
IContact c = new Contact(nom, email, adresse, tel);
((Contact) c).setIdUtilisateur(ModeleAbstrait.getIdUtilisateur());
gestionnaireTaches.getBd().ajouterContactBD(c);
return c;
IContact contact = new Contact(nom, email, adresse, tel);
((Contact) contact).setIdUtilisateur(AbstractModele.getIdUtilisateur());
gestionnaireTaches.getBd().ajouterContactBD(contact);
return contact;
}
@Override
public Long creerProjet(String nom, String contexte, String notes, IProjet projetPere) {
Projet p = new Projet(nom, contexte, notes);
Projet projet = new Projet(nom, contexte, notes);
Long idProjet;
if (projetPere == null) {
idProjet = gestionnaireTaches.getBd().ajouterProjetBD(p, null);
idProjet = gestionnaireTaches.getBd().ajouterProjetBD(projet, null);
} else {
projetPere.ajouterSousProjet(p);
idProjet = gestionnaireTaches.getBd().ajouterProjetBD(p, projetPere.getId());
projetPere.ajouterSousProjet(projet);
idProjet = gestionnaireTaches.getBd().ajouterProjetBD(projet, projetPere.getId());
}
ArbreGTD.getInstance().addObject(p);
ArbreGTD.getInstance().addObject(projet);
notifyObserver(this);
return idProjet;
}
......@@ -71,20 +73,20 @@ public class Modele extends ModeleAbstrait {
@Override
public void creerTache(String nom, IProjet projet, String contexte, String notes, Date dDebut, Date dEcheance, Integer priorite,
Integer tauxEffort, IContact[] contacts, Frequence frequence, Date dArretFrequenceRep, List<String> urls, List<String> tags) {
Tache t = new Tache(nom, contexte, notes, dDebut, dEcheance, priorite, tauxEffort, contacts, frequence, dArretFrequenceRep, urls, tags);
gestionnaireTaches.getBd().ajouterTacheBD(t, projet);
ArbreGTD.getInstance().addObject(t);
Tache tache = new Tache(nom, contexte, notes, dDebut, dEcheance, priorite, tauxEffort, contacts, frequence, dArretFrequenceRep, urls, tags);
gestionnaireTaches.getBd().ajouterTacheBD(tache, projet);
ArbreGTD.getInstance().addObject(tache);
notifyObserver(this);
}
@Override
public void editerTache(ITache t) {
gestionnaireTaches.getBd().modifierTache(t);
public void editerTache(ITache tache) {
gestionnaireTaches.getBd().modifierTache(tache);
}
@Override
public void editerProjet(IProjet p) {
gestionnaireTaches.getBd().modifierProjet(p);
public void editerProjet(IProjet projet) {
gestionnaireTaches.getBd().modifierProjet(projet);
}
......@@ -95,25 +97,26 @@ public class Modele extends ModeleAbstrait {
@Override
public void commit() {
System.out.println("Commit !!!");
Logger.getAnonymousLogger().log(Level.INFO, "Commit !!!");
}
@Override
public void update() {
System.out.println("Update !!!");
Logger.getAnonymousLogger().log(Level.INFO, "Update !!!");
}
@Override
public void synchro() {
System.out.println("Synchronisation !!!");
Logger.getAnonymousLogger().log(Level.INFO, "Synchronisation !!!");
}
@Override
public void mettreDansCorbeille(Object o) {
if (o instanceof IProjet) {
gestionnaireTaches.getBd().mettreDansCorbeille((IProjet) o);
} else if (o instanceof ITache) {
gestionnaireTaches.getBd().mettreDansCorbeille((ITache) o);
public void mettreDansCorbeille(Object object) {
if (object instanceof IProjet) {
gestionnaireTaches.getBd().mettreDansCorbeille((IProjet) object);
} else if (object instanceof ITache) {
gestionnaireTaches.getBd().mettreDansCorbeille((ITache) object);
}
}
......
package fr.alma.modele;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
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.observer.*;
/**
* Modèle abstrait.
* @author Université de Nantes
* @since 2009
* @version 1.0
*/
public abstract class ModeleAbstrait implements Observable {
private static Long idUtilisateur;
private static IProjet projetRacine;
/**
* La liste d'observeurs (pattern observer)
*/
private ArrayList<Observer> observers = new ArrayList<Observer>();
/**
* Vérifie si l'utilisateur réussi sa connexion
* @param login le login de l'utilisateur
* @param mdp le mot de passe de l'utilisateur
* @return le code de validation/erreur
*/
public abstract Long existeUtilisateur(String login, char[] mdp);
/**
* Créer un compte utilisateur
* @param login le login de l'utilisateur
* @param password le mot de passe de l'utilisateur
* @param email l'adresse de l'utilisateur
*/
public abstract void creerCompte(String login, char[] password, String email);
/**
* Créer un contact
* @param nom nom du contact
* @param email l'adresse email du contact
* @param adresse l'adresse du contact
* @param tel le téléphone du contact
* @return Le contact créé
*/
public abstract IContact creerContact(String nom, String email, String adresse, String tel);
/**
* Créer une tâche
* @param nom nom de la tâche
* @param projet le projet dans lequel elle est contenu
* @param contexte le contexte de la tâche
* @param notesTache les notes de la tâche
* @param dateDedebut la date de commencement de la tâche
* @param echeance l'échéance de la tâche
* @param priorite la priorité de la tâche
* @param tauxEffort le taux d'effort demandé pour la tâche
* @param listeContact la liste de contacts associées à cette tâche
* @param frequence la fréquence d'utilisation de cette tâche
* @param arretFrequence la date d'arrêt de la fréquence de la tâche
* @param urls les urls de la tâche
* @param tags les références de la tâches
*/
public abstract void creerTache(String nom, IProjet projet, String contexte, String notesTache, Date dateDedebut,
Date echeance, Integer priorite, Integer tauxEffort, IContact[] listeContact, Frequence frequence,
Date arretFrequence, List<String> urls, List<String> tags);
/**
* Créer un projet
* @param nom nom du projet
* @param contexte contexte du projet
* @param notes notes du projet
* @param projetPere projet qui contient le projet courant
* @return l'identifiant du projet
*/
public abstract Long creerProjet(String nom, String contexte, String notes, IProjet projetPere);
/**
* Déplace un objet (tâche ou projet) dans la corbeille
* @param o
*/
public abstract void mettreDansCorbeille(Object o);
/**
* Edite une tâche
* @param t la tâche
*/
public abstract void editerTache(ITache t);
/**
* Edite un projet
* @param p le projet
*/
public abstract void editerProjet(IProjet p);
/**
* Supprime un contact
* @param contact le nom du contact à supprimer
*/
public abstract void supprimerContact(IContact contact);
/**
* vide la corbeille
* @param corbeille le projet corbeille
*/
public abstract void viderCorbeille(IProjet corbeille);
// Fonctionnalités non-implémentées
public abstract void commit();
public abstract void update();
public abstract void synchro();
//**************************************************
// IMPLEMENTATION PATTERN OBSERVER
//**************************************************
public void addObserver(Observer obs) {
this.observers.add(obs);
}
public void notifyObserver(ModeleAbstrait modele) {
for(Observer obs : observers)
obs.update(modele);
}
public void removeObserver() {
observers = new ArrayList<Observer>();
}
//**************************************************
// GETTERS AND SETTERS
//**************************************************
public static Long getIdUtilisateur() {
return idUtilisateur;
}
public static IProjet getProjetRacine() {
return projetRacine;
}
public static void setIdUtilisateur(Long idUtilisateur) {
ModeleAbstrait.idUtilisateur = idUtilisateur;
}
public static void setProjetRacine(IProjet projetRacine) {
ModeleAbstrait.projetRacine = projetRacine;
}
}
......@@ -15,126 +15,130 @@ import fr.alma.modele.persistance.BD;
*/
public class GestionnaireTaches implements IGestionnaireTaches {
/**
* la base de données
*/
private BD bd;
/**
* la liste de projets en cours
*/
private List<IProjet> projets;
/**
* Constructeur.
*/
public GestionnaireTaches () {
this.bd = new BD();
this.projets = new ArrayList<IProjet>();
}
@Override
public Boolean creerTache(ITache tache, IProjet projet) {
//Start of user code for creerTache method body
projet.getTaches().add(tache);
return null;
//End of user code
}
@Override
public Boolean modifierTache(ITache tache) {
//Start of user code for modifierTache method body
for(IProjet p : projets){
ITache t = p.getTache(tache.getId());
if(t != null){
t = tache;
return true;
}
}
return false;
//End of user code
}
@Override
public Boolean supprimerTache(ITache tache) {
//Start of user code for supprimerTache method body
for(IProjet p : projets){
if(p.supprimerTache(tache.getId())){
return true;
}
}
return false;
//End of user code
}
@Override
public Boolean creerProjet(IProjet projet) {
//Start of user code for creerProjet method body
this.projets.add(projet);
return true;
//End of user code
}
@Override
public Boolean modifierProjet(IProjet projet) {
//Start of user code for modifierProjet method body
for(IProjet p : projets){
if(p.getId() == projet.getId()){
p = projet;
return true;
}
}
return false;
//End of user code
}
@Override
public Boolean supprimerProjet(IProjet projet) {
//Start of user code for supprimerProjet method body
for(IProjet p : projets){
if(p.getId() == projet.getId()){
projets.remove(projet);
return true;
}
}
return false;
//End of user code
}
@Override
public List<ITache> getTaches() {
//Start of user code for getTaches method body
List<ITache> l = new ArrayList<ITache>();
for(IProjet p : projets){
l = p.getAllTaches(l);
}
return l;
//End of user code
}
public List<IProjet> getModifs(Date date) {
//Start of user code for getModifs method body
//TODO
return null;
//End of user code
}
@Override
public IProjet getProjetRacine() {
return bd.recupererProjetRacine();
}
//**************************************************
// GETTERS AND SETTERS
//**************************************************
@Override
public BD getBd() {
return bd;
}
@Override
public void setBd(BD bd) {
this.bd = bd;
}
}
\ No newline at end of file
/**
* la base de données
*/
private BD database;
/**
* la liste de projets en cours
*/
private List<IProjet> projets;
/**
* Constructeur.
*/
public GestionnaireTaches() {
this.database = new BD();
this.projets = new ArrayList<IProjet>();
}
@Override
public Boolean creerTache(ITache tache, IProjet projet) {
//Start of user code for creerTache method body
projet.getTaches().add(tache);
return null;
//End of user code
}
@Override
public Boolean modifierTache(ITache tache) {
Boolean etat = false;
//Start of user code for modifierTache method body
for (IProjet p : projets) {
ITache tche = p.getTache(tache.getId());
if (tche != null) {
tche = tache;
etat = true;
}
}
return etat;
//End of user code
}
@Override
public Boolean supprimerTache(ITache tache) {
Boolean etat = false;
//Start of user code for supprimerTache method body
for (IProjet p : projets) {
if (p.supprimerTache(tache.getId())) {
etat = true;
}
}
return etat;
//End of user code
}
@Override
public Boolean creerProjet(IProjet projet) {
//Start of user code for creerProjet method body
this.projets.add(projet);
return true;
//End of user code
}
@Override
public Boolean modifierProjet(IProjet projet) {
Boolean etat = false;
//Start of user code for modifierProjet method body
for (IProjet p : projets) {
if (p.getId() == projet.getId()) {