From: <de...@us...> - 2012-08-23 15:33:51
|
Revision: 7577 http://fudaa.svn.sourceforge.net/fudaa/?rev=7577&view=rev Author: deniger Date: 2012-08-23 15:33:40 +0000 (Thu, 23 Aug 2012) Log Message: ----------- Modified Paths: -------------- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/common/ConnexionInformationDefault.java trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/ManagerEMHContainerBase.java trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/services/EMHProjetServiceImpl.java Added Paths: ----------- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/common/ConnexionInformationFixed.java Modified: trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/common/ConnexionInformationDefault.java =================================================================== --- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/common/ConnexionInformationDefault.java 2012-08-23 14:41:41 UTC (rev 7576) +++ trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/common/ConnexionInformationDefault.java 2012-08-23 15:33:40 UTC (rev 7577) @@ -8,12 +8,16 @@ */ public class ConnexionInformationDefault implements ConnexionInformation { - private final static ConnexionInformation INSTANCE = new ConnexionInformationDefault(); + private final static ConnexionInformation INSTANCE = new ConnexionInformationDefault(); public final static ConnexionInformation getDefault() { return INSTANCE; } + public final static ConnexionInformationFixed getFixed() { + return new ConnexionInformationFixed(INSTANCE); + } + @Override public LocalDateTime getCurrentDate() { return new LocalDateTime(); Added: trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/common/ConnexionInformationFixed.java =================================================================== --- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/common/ConnexionInformationFixed.java (rev 0) +++ trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/common/ConnexionInformationFixed.java 2012-08-23 15:33:40 UTC (rev 7577) @@ -0,0 +1,31 @@ +/* + GPL 2 + */ +package org.fudaa.dodico.crue.common; + +import org.joda.time.LocalDateTime; + +/** + * + * @author Frederic Deniger + */ +public class ConnexionInformationFixed implements ConnexionInformation { + + LocalDateTime currentDate; + String user; + + public ConnexionInformationFixed(ConnexionInformation from) { + currentDate = from.getCurrentDate(); + user = from.getCurrentUser(); + } + + @Override + public LocalDateTime getCurrentDate() { + return currentDate; + } + + @Override + public String getCurrentUser() { + return user; + } +} Modified: trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/ManagerEMHContainerBase.java =================================================================== --- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/ManagerEMHContainerBase.java 2012-08-23 14:41:41 UTC (rev 7576) +++ trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/ManagerEMHContainerBase.java 2012-08-23 15:33:40 UTC (rev 7577) @@ -22,13 +22,13 @@ private EMHInfosVersion infosVersions; private boolean isActive = true; /** - * Liste des fichiers rattaches au scenario . Ces fichiers proviennent de la classe EMHProjetInfos qui contient la - * base des fichiers du projet. Ces fichiers sont uniquement des fichiers resultat ? + * Liste des fichiers rattaches au scenario . Ces fichiers proviennent de la classe EMHProjetInfos qui contient la base des fichiers du projet. Ces + * fichiers sont uniquement des fichiers resultat ? */ private FichierCrueManager listeFichiers; private String nom; private final CrueLevelType level; - + protected ManagerEMHContainerBase(CrueLevelType level) { this(level, null); } @@ -38,19 +38,18 @@ this.nom = nom; this.level = level; } - - - public boolean isCrue9(){ + + public boolean isCrue9() { return CrueVersionType.CRUE9.equals(getInfosVersions().getCrueVersion()); } - - public boolean isCrue10(){ + + public boolean isCrue10() { return CrueVersionType.CRUE10.equals(getInfosVersions().getCrueVersion()); } /** * Ajoute un fichier . - * + * * @param fichier * @return */ @@ -71,12 +70,11 @@ public CrueLevelType getLevel() { return this.level; } - + public EMHInfosVersion getInfosVersions() { return infosVersions; } - /** * @return le manager des fichiers */ @@ -84,6 +82,13 @@ return listeFichiers; } + public List<FichierCrue> getFichiers() { + if (listeFichiers == null) { + return null; + } + return listeFichiers.getFichiers(); + } + @Override public final String getNom() { return nom; @@ -95,21 +100,19 @@ public boolean isActive() { return isActive; } - + // /** // * @return the isActive // */ // public boolean isActive() { // return isActive; // } - /** * @param isActive the isActive to set */ public void setActive(boolean isActive) { this.isActive = isActive; } - // /** // * Utilise pour l'ui... @@ -119,7 +122,6 @@ // public void setActive(Boolean isActive) { // this.isActive = isActive == null ? false : isActive.booleanValue(); // } - public void setInfosVersions(final EMHInfosVersion infosVersions) { this.infosVersions = infosVersions; } Modified: trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/services/EMHProjetServiceImpl.java =================================================================== --- trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/services/EMHProjetServiceImpl.java 2012-08-23 14:41:41 UTC (rev 7576) +++ trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/services/EMHProjetServiceImpl.java 2012-08-23 15:33:40 UTC (rev 7577) @@ -6,6 +6,7 @@ import org.fudaa.fudaa.crue.common.services.EMHProjetService; import java.io.File; import java.io.IOException; +import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.Callable; @@ -13,6 +14,7 @@ import java.util.logging.Logger; import org.fudaa.ctulu.CtuluLogGroup; import org.fudaa.dodico.crue.common.BusinessMessages; +import org.fudaa.dodico.crue.common.ConnexionInformationFixed; import org.fudaa.dodico.crue.common.CrueOperationResult; import org.fudaa.dodico.crue.config.CrueConfigMetier; import org.fudaa.dodico.crue.io.Crue10FileFormatFactory; @@ -21,7 +23,11 @@ import org.fudaa.dodico.crue.io.common.FileLocker.Data; import org.fudaa.dodico.crue.metier.etude.EMHProjet; import org.fudaa.dodico.crue.metier.etude.EMHRun; +import org.fudaa.dodico.crue.metier.etude.FichierCrue; +import org.fudaa.dodico.crue.metier.etude.FichierCrueManager; +import org.fudaa.dodico.crue.metier.etude.ManagerEMHModeleBase; import org.fudaa.dodico.crue.metier.etude.ManagerEMHScenario; +import org.fudaa.dodico.crue.metier.etude.ManagerEMHSousModele; import org.fudaa.dodico.crue.projet.EMHProjetController; import org.fudaa.dodico.crue.projet.calcul.ExecInputDefault; import org.fudaa.dodico.crue.projet.create.RunCalculOption; @@ -110,8 +116,7 @@ } /** - * Utilise pour une modification qui demande un rechargement de l'etude. Apres appel a call.call une sauvegarde est - * effectuée. + * Utilise pour une modification qui demande un rechargement de l'etude. Apres appel a call.call une sauvegarde est effectuée. * * @param call action sur EMHProjet. * @param logString @@ -381,11 +386,58 @@ launchRun(scenario, null); } - public void scenarioSaved(ManagerEMHScenario managerScenarioLoaded,Set<String> modifiedFiles) { - managerScenarioLoaded.getInfosVersions().updateForm(installationService.getConnexionInformation()); + public void scenarioSaved(ManagerEMHScenario managerScenarioLoaded, Set<String> modifiedFiles) { + ConnexionInformationFixed connexionInfo = new ConnexionInformationFixed(installationService.getConnexionInformation()); + updateModifiedState(managerScenarioLoaded, connexionInfo, modifiedFiles); + List<ManagerEMHScenario> listeScenarios = getSelectedProject().getListeScenarios(); + for (ManagerEMHScenario managerEMHScenario : listeScenarios) { + updateModifiedState(managerEMHScenario, connexionInfo, modifiedFiles); + } quickSave(); } + protected void updateModifiedState(ManagerEMHScenario scenario, ConnexionInformationFixed info, Set<String> modifiedFiles) { + if (isModified(modifiedFiles, scenario.getListeFichiers())) { + scenario.getInfosVersions().updateForm(info); + } + List<ManagerEMHModeleBase> modeles = scenario.getFils(); + for (ManagerEMHModeleBase modele : modeles) { + boolean modified = updateModifiedState(modele, info, modifiedFiles); + if (modified) { + scenario.getInfosVersions().updateForm(info); + } + } + } + + protected boolean isModified(Set<String> modifiedFiles, FichierCrueManager fichiers) { + if (fichiers == null) { + return false; + } + for (FichierCrue fichierCrue : fichiers.getFichiers()) { + if (modifiedFiles.contains(fichierCrue.getId())) { + return true; + } + } + return false; + } + + protected boolean updateModifiedState(ManagerEMHModeleBase modele, ConnexionInformationFixed info, Set<String> modifiedFiles) { + boolean res = isModified(modifiedFiles, modele.getListeFichiers()); + List<ManagerEMHSousModele> sousModeles = modele.getFils(); + for (ManagerEMHSousModele sousModele : sousModeles) { + boolean sousModeleModified = isModified(modifiedFiles, sousModele.getListeFichiers()); + if (sousModeleModified) { + res = true; + sousModele.getInfosVersions().updateForm(info); + } + } + if (res) { + modele.getInfosVersions().updateForm(info); + } + return res; + + } + boolean isProjetReadOnly() { return readOnly; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |