source: ether_eccad/trunk/ECCAD_INTERFACE/WEB-INF/src/org/medias/eccad/metier/generationRaster/InformationLegend.java @ 68

Last change on this file since 68 was 68, checked in by cbipsl, 14 years ago

commit v1 eccad

  • Property svn:executable set to *
File size: 4.7 KB
Line 
1package org.medias.eccad.metier.generationRaster;
2
3import java.util.LinkedList;
4import java.util.List;
5
6
7import org.medias.eccad.helpers.LoggerPerso;
8import org.medias.eccad.helpers.SpringBeanFactory;
9import org.medias.eccad.metier.generationRaster.colorMap.ColorMapping;
10import org.medias.eccad.metier.statistique.ServiceStatistique;
11import org.medias.eccad.modele.ColorTab;
12import org.medias.eccad.modele.Legende;
13import org.medias.eccad.persistance.dao.CodeDAO;
14import org.medias.eccad.persistance.dao.ColorTabDAO;
15import org.medias.eccad.persistance.dao.GrilleDAO;
16import org.medias.eccad.persistance.dao.ParametreDAO;
17import org.medias.eccad.persistance.exception.PersistanceException;
18import org.springframework.beans.factory.xml.XmlBeanFactory;
19
20public class InformationLegend {
21        private XmlBeanFactory xmlbean;
22       
23        public InformationLegend() {
24                xmlbean = SpringBeanFactory.getXmlFactory();
25        }
26       
27        public List<String> getLegendValeur(ColorTab colortab) {
28                int taille = colortab.getLength();
29                float tableau_valeur[] = colortab.getTab_min();
30                float valeur;
31               
32                List<String> liste = new LinkedList<String>();
33               
34                // on prend n-1 valeur ^^
35                for (int i=1; i<taille; i++) {
36                        valeur = tableau_valeur[i];
37                        liste.add(Float.toString(valeur));
38                }
39               
40                return liste;
41        }
42       
43       
44        /**
45         * Cette fonction a pour vocation d'obtenir les informations suplémentaires à afficher sous la légende (par exemple les unités)
46         * @param id_grille l'identifiant de la grille
47         * @return la chaine de caractÚre représentant les informations
48         */
49        public String getInfoSup(long id_grille) {
50                String information;
51                information = "Unit : ";
52                ParametreDAO paramDAO = (ParametreDAO) xmlbean.getBean("parametreDAO");
53                try {
54                        information += paramDAO.getParametreByGrille(id_grille).getUnite();
55                } catch (PersistanceException e) {
56                        e.printStackTrace();
57                        information += "none";
58                }
59               
60                return information;
61        }
62       
63        /**
64         * Permet d'obtenir une liste de chaine de caractÚre représentant les valeurs de la légende. Ce sera donc soit une succession de nombre (min, max) soit du texte (nom de pays/végétation/etc...)
65         * @param id_grille identifiant de la grille
66         * @param colortab table de couleur concernée
67         * @return
68         */
69        public Legende getLegendText(long id_grille, ColorTab colortab) {
70                GrilleDAO grille = (GrilleDAO) xmlbean.getBean("grilleDAO");
71                CodeDAO codedao = (CodeDAO) xmlbean.getBean("codeDAO");
72                String codif;
73                Legende legende;
74               
75                try {
76                        codif = grille.getCodification(id_grille);
77                }
78                catch (PersistanceException perse) {
79                        LoggerPerso.log(ServiceRaster.class, LoggerPerso.WARN, "erreur récupération codif grille " + id_grille, perse);
80                        return new Legende(getLegendValeur(colortab), Legende.TYPE_VALUE);
81                }
82               
83                try {
84                        if (codif.equals("coded")) {
85                                legende = new Legende(codedao.getListCodeByGrille(id_grille), Legende.TYPE_CODED);
86                        }
87                        else {
88                                legende = new Legende(getLegendValeur(colortab), Legende.TYPE_VALUE);
89                        }
90                }
91                catch (PersistanceException perse) {
92                        LoggerPerso.log(ServiceRaster.class, LoggerPerso.WARN, "erreur récupération liste des légendes de la grille " + id_grille, perse);
93                        return legende = new Legende(getLegendValeur(colortab), Legende.TYPE_VALUE);
94                }
95               
96                return legende;         
97        }
98       
99        public Legende getLegendDynamic(ColorTab colortab, float max, float min) {
100                List<String> liste = new LinkedList<String>();
101                float valeur;
102                int taille = colortab.getLength();
103                float tableau_valeur[] = colortab.getTab_min();
104               
105                // on prend n-1 valeur ^^
106                for (int i=1; i<taille; i++) {
107                        valeur = tableau_valeur[i];
108                        valeur = (valeur *(max-min))+min;
109                        liste.add(fixeDecimal(Float.toString(valeur)));
110                }
111                return new Legende(liste , Legende.TYPE_VALUE);
112        }
113       
114       
115
116        private String fixeDecimal(String entree) {
117                LoggerPerso.log(ServiceStatistique.class, LoggerPerso.DEBUG, "-------------Legende------------------------******------>entree "+entree);
118                if (entree == null)
119                        return "nc";
120                int index = entree.lastIndexOf(".");
121                int indexE = entree.lastIndexOf("E");
122                LoggerPerso.log(ServiceStatistique.class, LoggerPerso.DEBUG, "entree  --lll-->2 "+indexE+"  "+index+"  "+entree.length());
123                if ( indexE == -1 && index != -1 && entree.length() >= index + 5)
124                        entree = entree.substring(0, entree.lastIndexOf(".")+5);
125                if ( indexE != -1 && index != -1 && entree.length() >= index + 5)
126                {
127                        String aEntree = entree;
128                        LoggerPerso.log(ServiceStatistique.class, LoggerPerso.DEBUG, "aEntree "+aEntree.lastIndexOf("E")+"  "+aEntree.length()+"    "+aEntree.lastIndexOf("E")+"  "+aEntree.length());
129                        aEntree=aEntree.substring(aEntree.lastIndexOf("E"), aEntree.lastIndexOf("E")+aEntree.length()-aEntree.lastIndexOf("E"));
130                        entree = entree.substring(0, entree.lastIndexOf(".")+5)+aEntree;
131                }
132                        LoggerPerso.log(ServiceStatistique.class, LoggerPerso.DEBUG, "entree "+entree);
133                return entree;
134        }
135       
136}
Note: See TracBrowser for help on using the repository browser.