6c88b6b3b4
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.
72 lines
2.8 KiB
Java
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));
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|