analyseWriter/src/baseEvaluations/trierParDateDecroissanteLaBase.java
pablo rodriguez 6c88b6b3b4 V4.4.4
Préparation pour nouvelle version avec gestion de la base des
évaluations.
La méthode analyseStyle peut être appliqué au niveau des styles de page
dans les en-têtes ou les pied de page.
2023-04-01 09:54:28 +02:00

72 lines
2.8 KiB
Java

package baseEvaluations;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import MEPTL.commandes;
import cXML.node;
public class trierParDateDecroissanteLaBase {
/**
* Tri la base des évaluation par date décroisante
*/
public trierParDateDecroissanteLaBase(){
ArrayList<node> evaluations = commandes.evaluationsBase.retourneEnfantsByName("evaluation", new ArrayList<node>());
HashMap<Date, Integer> dateDictionary = new HashMap<Date, Integer>();
Date dateEvaluationCharger = new Date();
if(commandes.evaluationChargeEnMemoire!=null) {
dateEvaluationCharger = calcul.formatDateWriter.DateLibreOffice(commandes.evaluationChargeEnMemoire.getAttributs().get("date"));
System.out.println("dateEvaluationCharger="+dateEvaluationCharger);
}
for(int i = 0 ; i < evaluations.size();i++) {
dateDictionary.put(calcul.formatDateWriter.DateLibreOffice(evaluations.get(i).getAttributs().get("date")),i);
}
// Convertir le HashMap en liste pour pouvoir trier les éléments
List<Map.Entry<Date, Integer>> list = new ArrayList<Map.Entry<Date, Integer>>(dateDictionary.entrySet());
// Trier la liste par ordre décroissant des dates
Collections.sort(list, Collections.reverseOrder(Map.Entry.comparingByKey()));
// Créer un nouveau LinkedHashMap pour stocker les éléments triés
LinkedHashMap<Date, Integer> sortedDateDictionary = new LinkedHashMap<Date, Integer>();
for (Map.Entry<Date, Integer> entry : list) {
sortedDateDictionary.put(entry.getKey(), entry.getValue());
}
//Parcourir
node nodeTemporaire = new node();
nodeTemporaire.setNomElt("temporaire");
int j=0;
for (Map.Entry<Date, Integer> entry : sortedDateDictionary.entrySet()) {
System.out.println("Key : " + entry.getKey() + " | Value : " + entry.getValue());
nodeTemporaire.getNodes().add(j,commandes.evaluationsBase.getNodes().get(entry.getValue()));
if(commandes.evaluationChargeEnMemoire!=null) {
if( (entry.getKey().equals(dateEvaluationCharger)) ) {
if(commandes.evaluationsBase.getNodes().get(entry.getValue()).getAttributs().get("name").equals(commandes.NameEvaluationCharger)) {
commandes.IndexEvaluationCharger = j;
}
}
}
j++;
}
// ajoute à la base
commandes.evaluationsBase.supprimeTousLesEnfants();
for(int i = 0 ; i < nodeTemporaire.getNodes().size();i++) {
commandes.evaluationsBase.getNodes().add(nodeTemporaire.getNodes().get(i));
}
}
}