3,7 → 3,6 |
import java.util.Comparator; |
import java.util.Iterator; |
|
import org.tela_botanica.client.Util; |
import org.tela_botanica.client.interfaces.Filtrable; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.DateObservation; |
156,32 → 155,7 |
arbreDonneesDates.addListener(new TreePanelListenerAdapter() { |
|
public void onClick(TreeNode node, EventObject e) { |
gererClicNoeud(node); |
} |
|
}) ; |
|
arbreDonneesDates.getRootNode().addListener(new TreeNodeListenerAdapter() { |
|
public void onExpand(Node node) { |
if(!arbreCharge) |
{ |
observationMediateur.obtenirDatesObservation() ; |
arbreCharge = true ; |
} |
} |
|
}) ; |
} |
|
private void gererClicNoeud(TreeNode node) { |
|
mettreAJourValeurEnCours(node); |
observationMediateur.obtenirNombreObservation() ; |
} |
|
private void mettreAJourValeurEnCours(TreeNode node) { |
|
nomFiltre = "" ; |
donneesDateEnCours = "" ; |
String nomPere = "" ; |
190,11 → 164,17 |
switch(node.getDepth()) |
{ |
case 0: |
if(arbreCharge) { |
nomFiltre = ""; |
donneesDateEnCours = ""; |
if(!arbreCharge) |
{ |
/* arbreCharge = true ; |
observationMediateur.obtenirDatesObservation() ;*/ |
arbreDonneesDates.getRootNode().expand(); |
} |
break; |
else |
{ |
observationMediateur.obtenirNombreObservation() ; |
} |
return ; |
case 3: nomFiltre += "annee,mois,jour"; |
nomPere = ((String[])node.getParentNode().getUserObject())[1] ; |
nomGrandPere = ((String[])node.getParentNode().getParentNode().getUserObject())[1] ; |
212,8 → 192,25 |
} |
|
filtreModifie = true ; |
observationMediateur.obtenirNombreObservation() ; |
|
} |
|
}) ; |
|
arbreDonneesDates.getRootNode().addListener(new TreeNodeListenerAdapter() { |
|
public void onExpand(Node node) { |
if(!arbreCharge) |
{ |
observationMediateur.obtenirDatesObservation() ; |
arbreCharge = true ; |
} |
} |
|
}) ; |
} |
|
public void initialiser() { |
|
arbreCharge = false ; |
269,7 → 266,7 |
|
annee= ent.getAnnee() ; |
mois= ent.getMois() ; |
String moisLettre = Util.renvoyerMois(Integer.parseInt(mois)) ; |
String moisLettre = renvoyerMois(Integer.parseInt(mois)) ; |
jour= ent.getJour() ; |
|
if(annee.contains("0000")) { |
398,7 → 395,7 |
String mois= dateSpl[1]; |
String jour= dateSpl[0]; |
|
String moisLettre = Util.renvoyerMois(Integer.parseInt(mois)) ; |
String moisLettre = renvoyerMois(Integer.parseInt(mois)) ; |
|
Node root = arbreDonneesDates.getRootNode() ; |
|
579,6 → 576,39 |
} ; |
} |
|
public String renvoyerMois(int numMois) { |
|
switch (numMois) { |
case 1: |
return "janvier" ; |
case 2: |
return "fevrier" ; |
case 3: |
return "mars" ; |
case 4: |
return "avril" ; |
case 5: |
return "mai" ; |
case 6: |
return "juin" ; |
case 7: |
return "juillet" ; |
case 8: |
return "août" ; |
case 9: |
return "septembre" ; |
case 10: |
return "octobre" ; |
case 11: |
return "novembre" ; |
case 12: |
return "décembre" ; |
default: |
return "Inconnue" ; |
} |
|
} |
|
public void raz() { |
|
arbreCharge = false ; |
610,60 → 640,5 |
|
} |
|
public void viderFiltre() { |
arbreDonneesDates.getSelectionModel().clearSelections(); |
donneesDateEnCours = ""; |
} |
|
public void viderFiltre(String nom) { |
|
final int profondeur = calculerProfondeurPourNomFiltre(nom); |
|
// on vide tous les noeuds |
arbreDonneesDates.getRootNode().cascade(new NodeTraversalCallback() { |
|
public boolean execute(Node node) { |
|
boolean continuer = true; |
|
TreeNode noeudArbreEncours = (TreeNode)node; |
|
if(arbreDonneesDates.getSelectionModel().isSelected(noeudArbreEncours)) { |
|
int profondeurDepart = noeudArbreEncours.getDepth(); |
|
for(int profondeurNoeudArbreEncours = profondeurDepart; profondeurNoeudArbreEncours >= profondeur; profondeurNoeudArbreEncours--) { |
noeudArbreEncours = (TreeNode)noeudArbreEncours.getParentNode(); |
} |
|
arbreDonneesDates.getSelectionModel().select(noeudArbreEncours); |
mettreAJourValeurEnCours(noeudArbreEncours); |
|
continuer = false; |
} |
|
return continuer; |
} |
|
}); |
} |
|
private int calculerProfondeurPourNomFiltre(String nom) { |
|
int profondeur = 0; |
|
if(nom.equals("annee")) { |
profondeur = 1; |
} |
|
if(nom.equals("mois")) { |
profondeur = 2; |
} |
|
if(nom.equals("jour")) { |
profondeur = 3; |
} |
|
return profondeur; |
} |
} |