|
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.
|