Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 341 → Rev 342

/trunk/src/org/tela_botanica/client/observation/ObservationModele.java
406,10 → 406,11
// on crée un arbre vide
TreeNode root = new TreeNode();
root.setId("racine_obs");
root.setText("Tags");
String[] usObj = { "Tags", "racine_obs" };
root.setText("Projets");
String[] usObj = { "Projets", "racine_obs" };
root.setUserObject(usObj);
arbreMotsCles.setRootNode(root);
}
 
// pour chacun des élements du tableau
445,6 → 446,7
node.setChecked(false);
Node parentNode = arbreMotsCles.getNodeById(parent);
node.setUserObject(usObj);
parentNode.appendChild(node);
}
}
457,6 → 459,10
observationMediateur.rafraichirArbreMotsCles(arbreMotsCles);
}
if(nouvelleDonnees instanceof Observation) {
observationMediateur.obtenirNombreObservation();
}
}
 
/**
499,7 → 505,7
}
/**
* Met à jour les mots clés associés à une image et appelle le DAO pour
* Met à jour les mots clés associés à une obs et appelle le DAO pour
* synchroniser la base de données
*
* @param ids
513,7 → 519,15
for (int i = 0; i < idsObsALier.length; i++) {
if (cacheObservation.containsKey(idsObsALier[i])) {
Observation o = (Observation) cacheObservation.get(idsObsALier[i]);
o.setMotsCles(motsClesEnCours);
String motsCles = o.getMotsCles();
if(!motsClesEnCours.endsWith(";") && !motsClesEnCours.startsWith(";")) {
motsCles += ";";
}
motsCles += motsClesEnCours;
o.setMotsCles(motsCles);
 
ObservationAsynchroneDAO oDao = new ObservationAsynchroneDAO(this);
oDao.modifier(this,observationMediateur.getIdentifiant(),o);
539,11 → 553,11
String id = usObj[1];
String parentId = "";
 
if (!id.equals("racine")) {
if (!id.equals("racine_obs")) {
String[] parentUsObj = (String[]) n.getParentNode().getUserObject();
parentId = parentUsObj[1];
} else {
parentId = "racine";
parentId = "racine_obs";
}
rafraichirArbreMotsCles(arbreMC);
624,11 → 638,11
String motCle = usObj[0];
String id = usObj[1];
String parentId = "";
if (!id.equals("racine")) {
if (!id.equals("racine_obs")) {
String[] parentUsObj = (String[]) n.getParentNode().getUserObject();
parentId = parentUsObj[1];
} else {
parentId = "racine";
parentId = "racine_obs";
}
rafraichirArbreMotsCles(arbreMC);
/trunk/src/org/tela_botanica/client/observation/ObservationMediateur.java
15,7 → 15,6
import org.tela_botanica.client.vues.observation.ListeObservationVue;
import org.tela_botanica.client.vues.observation.MenuObservationVue;
import org.tela_botanica.client.vues.observation.PanneauFiltresObservationVues;
import org.tela_botanica.client.vues.observation.filtres.ArbreMotsClesObservationVue;
import org.tela_botanica.client.vues.observation.indicateurs.ImageGeneriqueVue;
import org.tela_botanica.client.vues.observation.indicateurs.InformationRepartitionVue;
import org.tela_botanica.client.vues.observation.indicateurs.LienExterneVue;
23,13 → 22,9
import org.tela_botanica.client.vues.observation.indicateurs.NuageMotsClesVue;
 
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.maps.client.geom.LatLng;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootPanel;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.Ext;
import com.gwtext.client.core.ExtElement;
36,27 → 31,21
import com.gwtext.client.core.RegionPosition;
import com.gwtext.client.data.Record;
import com.gwtext.client.data.Tree;
import com.gwtext.client.dd.DragData;
import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.Container;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.TabPanel;
import com.gwtext.client.widgets.event.ContainerListener;
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
import com.gwtext.client.widgets.event.PanelListener;
import com.gwtext.client.widgets.event.PanelListenerAdapter;
import com.gwtext.client.widgets.event.TabPanelListenerAdapter;
import com.gwtext.client.widgets.grid.GridDragData;
import com.gwtext.client.widgets.layout.BorderLayout;
import com.gwtext.client.widgets.layout.BorderLayoutData;
import com.gwtext.client.widgets.layout.FitLayout;
import com.gwtext.client.widgets.layout.RowLayout;
import com.gwtext.client.widgets.layout.RowLayoutData;
import com.gwtext.client.widgets.map.LatLonPoint;
import com.gwtext.client.widgets.menu.BaseItem;
import com.gwtext.client.widgets.menu.Item;
import com.gwtext.client.widgets.menu.Menu;
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;
import com.gwtext.client.widgets.tree.TreeEditor;
import com.gwtext.client.widgets.tree.TreeNode;
 
 
82,7 → 71,6
*
*
*/
private CarnetEnLigneMediateur carnetEnLigneMediateur = null ;
127,8 → 115,6
private Panel details = new Panel("Details");
 
private LienExterneVue liExtVue = null;
private ArbreMotsClesObservationVue arbreMotsClesVue = null ;
 
/**
* panneau conteneur pour le panneau des filtres
187,22 → 173,18
 
final BorderLayoutData regionCentre = new BorderLayoutData(
RegionPosition.CENTER);
regionCentre.setSplit(true);
 
final BorderLayoutData regionEst = new BorderLayoutData(
RegionPosition.EAST);
regionEst.setSplit(true);
if (GWT.isScript()) { // FIXME : ne fonctionne pas en mode hosted
regionEst.setSplit(true);
}
 
final BorderLayoutData regionOuest = new BorderLayoutData(
RegionPosition.WEST);
regionOuest.setSplit(true);
if (GWT.isScript()) { // FIXME : ne fonctionne pas en mode hosted
regionOuest.setSplit(true);
}
panneauPrincipalObservation.setLayout(new BorderLayout()) ;
422,6 → 404,7
private void initialiserArbres() {
getPanneauFiltres().getArbreDateObservationFiltreVue().initialiser();
getPanneauFiltres().getArbreEntiteGeographiqueObservationFiltreVue().initialiser();
getPanneauFiltres().getArbreMotsClesObservationVue().initialiser();
}
 
438,6 → 421,8
carnetEnLigneMediateur.donneesObsVersImages(listeObservation.getCacheListeObservation());
observationModele.rafraichirCacheObservation(listeObservation.getCacheListeObservation());
filtres.getArbreMotsClesObservationVue().cocherMotsCles(new String[0]);
}
/**
489,7 → 474,7
observationModele.obtenirLiaisonImage(mvz, ordreObservation) ;
//observationModele.obtenirMotsClesId(filtres.getArbreMotsClesObservationVue(), ordreObservation);
filtres.getArbreMotsClesObservationVue().rafraichir(obs.getMotsCles(), false);
observationModele.obtenirInformationCommune(cartoObservationVue, obs.getLocalite(), obs.getIdentifiantLocalite());
 
593,13 → 578,16
// U du CRUD
public void modifierObservation(Observation obs) {
// On rafraichit la liste d'observation
observationModele.modifierObservation(listeObservation, obs) ;
filtres.getArbreEntiteGeographiqueObservationFiltreVue().rafraichir(obs,true) ;
filtres.getArbreDateObservationFiltreVue().rafraichir(obs,true) ;
// On prend soin de récupérer les mots clés de l'observation
Observation obsMod = obtenirCacheObservation().get(obs.getNumeroOrdre());
obs.setMotsCles(obsMod.getMotsCles());
// On rafraichit la liste d'observation
observationModele.modifierObservation(listeObservation, obs) ;
filtres.getArbreEntiteGeographiqueObservationFiltreVue().rafraichir(obs,true) ;
filtres.getArbreDateObservationFiltreVue().rafraichir(obs,true) ;
}
public void modifierObservationEnMasse(Observation obs) {
681,6 → 669,8
String[] filtresTaxon = filtres.getRechercheLibreVue().renvoyerValeursAFiltrer();
String[] filtresMotsCles = filtres.getArbreMotsClesObservationVue().renvoyerValeursAFiltrer();
String chaineNomsFiltres = "" ;
String chaineValFiltres = "" ;
699,6 → 689,11
chaineValFiltres += filtresTaxon[1];
}
if(!filtresMotsCles[0].trim().equals("") && !filtresMotsCles[1].trim().equals("")) {
chaineNomsFiltres += filtresMotsCles[0];
chaineValFiltres += filtresMotsCles[1];
}
String[] nomsFiltres = chaineNomsFiltres.split(",") ;
String[] valsFiltres = chaineValFiltres.split(",") ;
776,7 → 771,7
{
ExtElement masked = Ext.get(details.getId());
 
if (details.isVisible() && masked != null && !masked.isMasked()) {
if (details.isVisible() && masked != null) {
informationRepartitionVue.raz() ;
imageGeneriqueVue.raz() ;
masked.mask("Chargement", true);
789,7 → 784,7
{
ExtElement masked = Ext.get(details.getId());
 
if (details.isVisible() && masked != null && masked.isMasked()) {
if (details.isVisible() && masked != null) {
masked.unmask() ;
}
}
918,37 → 913,6
}
}
 
 
public void montrerContextMenuArbre(final TreeNode n, EventObject e,
TreeEditor te) {
Menu mn = new Menu();
final com.gwtext.client.widgets.menu.Item ajoutN = new Item(
"Ajouter mot cle");
final com.gwtext.client.widgets.menu.Item suppN = new Item(
"Supprimer mot cle");
 
mn.addItem(ajoutN);
mn.addItem(suppN);
 
mn.addListener(new MenuListenerAdapter() {
 
public void onItemClick(BaseItem item, EventObject e) {
if (item.equals(suppN)) {
arbreMotsClesVue
.supprimerNoeud(n);
}
if (item.equals(ajoutN)) {
arbreMotsClesVue.ajouterNoeud(
n);
}
}
});
 
mn.showAt(e.getXY());
}
 
 
/**
* Appelle le modèle pour mettre à jour la paire mot-clé / identifiant du
* mot clé
963,14 → 927,82
observationModele.mettreAjourMotsClesId(text, id);
 
}
public boolean gererDDObsSurMotCle(TreeNode NoeudMotCle, DragData dragData) {
if(dragData instanceof GridDragData) {
// TODO : reporter cette logique dans le médiateur !
GridDragData gdd = ((GridDragData)dragData);
String idMotCle = ((String[])NoeudMotCle.getUserObject())[1];
Record[] obsALier = gdd.getSelections();
String idObsALier[] = new String[obsALier.length];
String idObsALierString = "";
for(int i = 0; i < obsALier.length; i++) {
if(i != 0) {
idObsALierString += ", ";
}
idObsALierString += obsALier[i].getAsString("ordre_observation");
idObsALier[i] = obsALier[i].getAsString("ordre_observation");
}
String message = "Lier les observations ";
if(idObsALier.length == 1) {
message = "Lier l'observation ";
}
if(Window.confirm(message+idObsALierString+" au projet "+NoeudMotCle.getText()+" ?")) {
mettreAjourMotsCles(idMotCle, idObsALier);
return true;
} else {
return false;
}
} else {
return false;
}
}
public void gererDDMotCleSurObs(String idObs, String IdMC) {
Observation obs = obtenirCacheObservation().get(idObs);
if(obs == null) {
return;
}
if(observationAvoirMotCle(IdMC, idObs)) {
if(Window.confirm("Voulez vous supprimer la liaison entre l'observation et le mot clé ?")) {
String nouveauMotsCles = obs.getMotsCles().replace(IdMC, "");
nouveauMotsCles = nouveauMotsCles.replace(";;", ";");
obs.setMotsCles(nouveauMotsCles);
observationModele.modifierObservation(listeObservation, obs);
}
}
}
 
public String gererOverDDMotCleSurObs(String idObs, String IdMC) {
if(observationAvoirMotCle(IdMC, idObs)) {
return "x-dd-drop-unlink";
} else {
return "x-dd-drop-nodrop";
}
}
/**
* Récupère les identifiants des images selectionnés et appelle le modèle
* pour qu'il mette à jour les associations mots clés/images
* Récupère les identifiants des obs selectionnézs et appelle le modèle
* pour qu'il mette à jour les associations mots clés/obs
*
* @param motsClesEnCours
* les mots clés à associer aux images selectionnés séparés par
* une ','
* un ';'
* @param arbreMC
* l'arbre des mots clés à mettre à jour
*/
1048,6 → 1080,19
getPanneauFiltres().getArbreMotsClesObservationVue().rafraichir(arbreMotsCles, false);
}
public boolean observationAvoirMotCle(String idMotCle, String idObs) {
Observation obs = obtenirCacheObservation().get(idObs);
if(obs == null) {
return false;
}
if(obs.getMotsCles().contains(idMotCle)) {
return true;
}
return false;
}
 
 
public void obtenirArbreMotsCles(Rafraichissable r) {
1144,7 → 1189,11
 
public void redimensionnerPanneaux(int adjHeight, int adjWidth) {
listeObservation.doLayout();
formulaireSaisieObservationVue.setHeight(300);
//if(listeObservation.getHeight() > centre.getHeight()) {
listeObservation.setHeight(adjHeight/2);
//}
centre.doLayout();
}