/trunk/src/org/tela_botanica/client/CarnetEnLigneMediateur.java |
---|
205,7 → 205,8 |
@Override |
public void onResize(BoxComponent component, int adjWidth, |
int adjHeight, int rawWidth, int rawHeight) { |
ObservationMediateur.fireResize(); |
CarnetEnLigneMediateur.fireResize(); |
observationMediateur.redimensionnerPanneaux(adjHeight, adjWidth); |
} |
}); |
415,4 → 416,9 |
observationMediateur.obtenirCacheObservation(r) ; |
} |
public static native void fireResize() /*-{ |
$wnd.Ext.EventManager.fireResize(); |
}-*/; |
} |
/trunk/src/org/tela_botanica/client/vues/image/PanneauFiltresImagesVues.java |
---|
4,6 → 4,7 |
import org.tela_botanica.client.vues.ArbreMotsClesFiltreVue; |
import com.gwtext.client.core.EventObject; |
import com.gwtext.client.core.Ext; |
import com.gwtext.client.widgets.Button; |
import com.gwtext.client.widgets.Panel; |
import com.gwtext.client.widgets.event.ButtonListenerAdapter; |
63,7 → 64,7 |
public PanneauFiltresImagesVues(ImageMediateur im) { |
super("Filtres"); |
iMediateur = im; |
this.setCollapsible(true); |
setLayout(new VerticalLayout()); |
/trunk/src/org/tela_botanica/client/vues/ListeUtilisateurAdminVue.java |
---|
47,7 → 47,7 |
private final int KEY_UP = 38; |
public ListeUtilisateurAdminVue(CarnetEnLigneMediateur cMed) { |
super("Choisissez un utilisateur") ; |
super("Choisir un utilisateur") ; |
this.cMediateur = cMed; |
Property changes: |
Modified: svn:mergeinfo |
Merged /branches/v1.0-beche/src/org/tela_botanica/client/vues/ListeUtilisateurAdminVue.java:r315-316 |
Added: svn:ignore |
+.project |
+tomcat |
/trunk/src/org/tela_botanica/client/vues/observation/filtres/ArbreMotsClesObservationVue.java |
---|
1,24 → 1,47 |
package org.tela_botanica.client.vues.observation.filtres; |
import org.tela_botanica.client.interfaces.Filtrable; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.observation.ObservationMediateur; |
import org.tela_botanica.client.vues.observation.ListeObservationVue; |
import com.google.gwt.core.client.JavaScriptObject; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.KeyboardListener; |
import com.gwtext.client.core.EventObject; |
import com.gwtext.client.data.Node; |
import com.gwtext.client.data.NodeTraversalCallback; |
import com.gwtext.client.data.Record; |
import com.gwtext.client.data.Tree; |
import com.gwtext.client.dd.DD; |
import com.gwtext.client.dd.DragData; |
import com.gwtext.client.dd.DragDrop; |
import com.gwtext.client.dd.DragSource; |
import com.gwtext.client.dd.DropTarget; |
import com.gwtext.client.dd.DropTargetConfig; |
import com.gwtext.client.widgets.BoxComponent; |
import com.gwtext.client.widgets.Button; |
import com.gwtext.client.widgets.Component; |
import com.gwtext.client.widgets.Container; |
import com.gwtext.client.widgets.Panel; |
import com.gwtext.client.widgets.event.ButtonListenerAdapter; |
import com.gwtext.client.widgets.event.PanelListenerAdapter; |
import com.gwtext.client.widgets.form.TextField; |
import com.gwtext.client.widgets.grid.GridDragData; |
import com.gwtext.client.widgets.grid.GridView; |
import com.gwtext.client.widgets.layout.VerticalLayout; |
import com.gwtext.client.widgets.tree.DropNodeCallback; |
import com.gwtext.client.widgets.tree.MultiSelectionModel; |
import com.gwtext.client.widgets.tree.TreeDragData; |
import com.gwtext.client.widgets.tree.TreeDropZone; |
import com.gwtext.client.widgets.tree.TreeDropZoneConfig; |
import com.gwtext.client.widgets.tree.TreeEditor; |
import com.gwtext.client.widgets.tree.TreeNode; |
import com.gwtext.client.widgets.tree.TreePanel; |
import com.gwtext.client.widgets.tree.event.TreeNodeListenerAdapter; |
import com.gwtext.client.widgets.tree.event.TreePanelListener; |
import com.gwtext.client.widgets.tree.event.TreePanelListenerAdapter; |
public class ArbreMotsClesObservationVue extends Panel implements Rafraichissable { |
public class ArbreMotsClesObservationVue extends Panel implements Rafraichissable, Filtrable { |
/** |
* Le médiateur associé à la vue |
40,7 → 63,7 |
/** |
* Bouton de validation |
*/ |
private Button valider = null; |
private Button ajouterMotCle = null; |
/** |
* Une string permettant connaitre les mots clés cochés en cours séparés par |
* des virgules |
66,10 → 89,19 |
* Booléen d'instanciation du conteneur |
*/ |
private boolean arbreCharge = false; |
/** |
* Booléen nécessaire pour l'affichage |
* |
*/ |
private boolean estInstancie = false; |
/** |
* Booléen d'évènement qui sert à savoir si les mots clés ont bien été reçu |
*/ |
private boolean motsCleInitialises; |
private Component livue = null; |
/** |
* Constructeur sans paramètre (privé car interdit d'utilisation) |
88,58 → 120,90 |
public ArbreMotsClesObservationVue(ObservationMediateur om) { |
// on crée le panel |
super("Mots clés"); |
this.setLayout(new VerticalLayout()); |
oMediateur = om; |
setBorder(false); |
setCollapsible(true); |
setTitleCollapse(true); |
// on crée le conteneur de l'arbre |
arbreMotsCles = new TreePanel(); |
// on permet le drag and drop dans l'arbre |
arbreMotsCles.setEnableDD(true); |
arbreMotsCles.setId("x-view-tree-keyword-obs"); |
// on ajoute les listeners |
ajouterListenersPanel(); |
// on crée une racine pour l'arbre |
TreeNode root = new TreeNode("Tags"); |
root.setId("racine_obs"); |
String[] usObject = { "Mots clés", "racine" }; |
root.setUserObject(usObject); |
root.setExpandable(true); |
arbreMotsCles.setRootNode(root); |
arbreMotsCles.setRootVisible(true); |
arbreMotsCles.setBorder(false); |
// arbreMotsCles.setWidth(500); |
arbreMotsCles.getRootNode().addListener(new TreeNodeListenerAdapter() { |
public void onClick(Node node, EventObject e) { |
if(!arbreCharge) { |
expand(); |
} |
} |
} |
/** |
* Ajoute les listeners pour le rendu du panel |
*/ |
private void ajouterListenersPanel() { |
this.addListener(new PanelListenerAdapter() { |
public void onExpand(Node node) { |
if(!arbreCharge) { |
obtenirArbreMotsCles(); |
arbreCharge = true; |
} |
} |
}); |
// on instancie réellement les composants au moment du rendu pour |
// accélérer l'affichage |
// et éviter des bugs |
public void onRender(Component component) { |
livue = oMediateur.getListeObservation(); |
// on crée le conteneur de l'arbre |
arbreMotsCles = new TreePanel(); |
// on permet le drag and drop dans l'arbre |
//arbreMotsCles.setEnableDD(true); |
arbreMotsCles.setId("x-view-tree-keyword-obs"); |
MultiSelectionModel msModel = new MultiSelectionModel(); |
arbreMotsCles.setSelectionModel(msModel); |
// on crée l'éditeur pour l'arbre |
tfEdit = new TextField(); |
te = new TreeEditor(arbreMotsCles, tfEdit); |
valider = new Button("Appliquer"); |
arbreMotsCles.add(te); |
// on crée une racine pour l'arbre |
TreeNode root = new TreeNode("Tags"); |
root.setId("racine_obs"); |
String[] usObject = { "Mots clés", "racine_obs" }; |
root.setUserObject(usObject); |
root.setExpandable(true); |
arbreMotsCles.setRootNode(root); |
// on crée l'éditeur pour l'arbre |
tfEdit = new TextField(); |
te = new TreeEditor(arbreMotsCles, tfEdit); |
ajouterMotCle = new Button("Nouveau mot clé"); |
arbreMotsCles.add(te); |
arbreMotsCles.getRootNode().addListener(new TreeNodeListenerAdapter() { |
public void onClick(Node node, EventObject e) { |
if(!arbreCharge) { |
expand(); |
} |
} |
// on met en forme le layout |
this.add(arbreMotsCles); |
this.add(valider); |
public void onExpand(Node node) { |
if(!arbreCharge) { |
obtenirArbreMotsCles(); |
arbreCharge = true; |
} |
} |
}); |
this.setBorder(false); |
this.setCollapsible(true); |
this.setTitleCollapse(true); |
// on ajoute les listeners |
ajouterListeners(); |
// on interdit le drag and drop dans l'arbre |
arbreMotsCles.setRootVisible(true); |
arbreMotsCles.setBorder(false); |
// on met en forme le layout |
add(arbreMotsCles); |
add(ajouterMotCle); |
// enfin on considère le composant comme instancié |
estInstancie = true; |
configDragAndDrop(); |
// on ajoute les listeners d'évenements |
ajouterListeners(); |
} |
}); |
} |
/** |
190,7 → 254,11 |
public void onClick(TreeNode node, EventObject e) { |
e.stopEvent(); |
gererClicNoeud(node); |
boolean multi = false; |
if(e.hasModifier()) { |
multi = true; |
} |
gererClicNoeud(node,multi); |
} |
// gestion du clic droit sur un noeud |
250,54 → 318,85 |
getOMediateur().deplacerMotCleDansArbre(node, |
getArbreMotsCles().getTree()); |
} |
public boolean doBeforeNodeDrop(TreePanel treePanel, |
TreeNode target, DragData dragData, |
String point, DragDrop source, |
TreeNode dropNode, |
DropNodeCallback dropNodeCallback) { |
if(dragData instanceof GridDragData) { |
Record[] obsALier = ((GridDragData)dragData).getSelections(); |
String idObsALier[] = new String[obsALier.length]; |
String idMotCle = ((String[])target.getUserObject())[1]; |
String idObsALierString = ""; |
for(int i = 0; i < obsALier.length; i++) { |
idObsALierString += obsALier[i].getAsString("ordre_observation")+", "; |
idObsALier[i] = obsALier[i].getAsString("ordre_observation"); |
} |
if(Window.confirm("lier les observations "+idObsALierString+" seront liées au mot clé "+target.getText()+" ?")) { |
oMediateur.mettreAjourMotsCles(idMotCle, idObsALier); |
} |
} |
return true; |
} |
public void onNodeDrop(TreePanel treePanel, |
TreeNode target, DragData dragData, |
String point, DragDrop source, TreeNode dropNode) { |
} |
}); |
// gestion de la validation |
valider.addListener(new ButtonListenerAdapter() { |
ajouterMotCle.addListener(new ButtonListenerAdapter() { |
// lors du clic |
public void onClick(Button button, EventObject e) { |
// on vide les mots clés en cours |
motsClesEnCours = ""; |
// pour chaque noeud à partir de la racine |
getArbreMotsCles().getRootNode().cascade( |
new NodeTraversalCallback() { |
// on éxécute une fonction |
public boolean execute(Node node) { |
// on récupère le mot clé associé au noeud et |
// ses infos |
TreeNode tn = getArbreMotsCles().getNodeById( |
node.getId()); |
String[] usObject = (String[]) tn |
.getUserObject(); |
getOMediateur().mettreAjourMotsClesId( |
usObject[0], usObject[1]); |
if (tn.getUI().isChecked()) { |
// et les concatène à la string des mots |
// clés en cours |
motsClesEnCours += usObject[1] + ","; |
} |
return true; |
} |
}); |
// enfin on notifie le médiateur et on lui passe l'arbre et la |
// liste des mots clés ainsi obtenue |
getOMediateur().mettreAjourMotsCles(motsClesEnCours, |
arbreMotsCles.getTree()); |
ajouterNoeud(arbreMotsCles.getRootNode()); |
} |
}); |
} |
/** |
* Configure le drag 'n drop pour la liste |
*/ |
private void configDragAndDrop() |
{ |
// on fabrique la nouvelle configuration |
// les éléments sur lesquels on fait du drag 'n drop doivent tous avoir le même ddGroup |
arbreMotsCles.setDdGroup("ObsMotsClesGroup"); |
//arbreMotsCles.setEnableDD(true); |
arbreMotsCles.setEnableDrag(true); |
arbreMotsCles.setEnableDrop(true); |
DropTargetConfig dtc = new DropTargetConfig(); |
dtc.setdDdGroup("ObsMotsClesGroup"); |
DropTarget tg = new DropTarget(livue, dtc) { |
public boolean notifyDrop(DragSource source, EventObject e, |
DragData data) { |
return true; |
} |
public String notifyOver(DragSource source, EventObject e, |
DragData data) { |
return "x-dd-drop-ok"; |
} |
}; |
} |
/** |
* Envoie une demande au médiateur pour obtenir l'arbre des mots clés |
*/ |
343,7 → 442,6 |
// on crée un nouveau noeud vide |
TreeNode nd = new TreeNode(""); |
nd.setCls("x-view-treenode-keyword"); |
nd.setChecked(true); |
// on associe un objet au noeud qui contient des infos |
String[] usObject = new String[2]; |
// l'objet contient le nom du noeud |
364,16 → 462,13 |
} |
/** |
* Coche le noeud s'il est décoché, le décoche sinon |
* Fonction de gestion sur le clic sur le noeud |
* |
* @param node |
*/ |
public void gererClicNoeud(TreeNode node) { |
if (node.getUI().isChecked()) { |
node.getUI().toggleCheck(false); |
} else { |
node.getUI().toggleCheck(true); |
} |
public void gererClicNoeud(TreeNode node, boolean multi) { |
((MultiSelectionModel)arbreMotsCles.getSelectionModel()).select(node, multi); |
} |
/** |
393,8 → 488,8 |
// pour chaque noeud |
public boolean execute(Node node) { |
getArbreMotsCles().getNodeById(node.getId()) |
.getUI().toggleCheck(false); |
//getArbreMotsCles().getNodeById(node.getId()) |
//.getUI().toggleCheck(false); |
// on parcourt le tableau des mots clés |
for (int i = 0; i < motsClesIds.length; i++) { |
405,8 → 500,8 |
String nodeId = usObject[1]; |
if (nodeId.equals(motsClesIds[i])) { |
getArbreMotsCles().getNodeById(nodeId+"_obs") |
.getUI().toggleCheck(true); |
//getArbreMotsCles().getNodeById(nodeId+"_obs") |
// .getUI().toggleCheck(true); |
return true; |
} |
452,6 → 547,7 |
arbreCharge = true; |
} |
/* |
// s'il y a des mots clés en attente (lors du premier rendering) |
if (motsCleInitialises == false && motsClesEnAttente != null) { |
// on les coche |
461,11 → 557,11 |
if(motsClesEnAttente.length > 0) { |
cocherMotsCles(motsClesEnAttente); |
} |
}*/ |
} |
// Si on reçoit un tableau de String (cas ou l'on séléectionne une |
// nouvelle image) |
// nouvelle obs) |
if (nouvelleDonnees instanceof String[]) { |
// et que l'arbre est instancié |
if (arbreCharge) { |
505,8 → 601,7 |
String[] usObj = (String[]) ndNodeFils[i].getUserObject(); |
TreeNode child = new TreeNode(usObj[0]); |
child.setId(usObj[1] +"_obs"); |
child.setChecked(false); |
child.setId(usObj[1]); |
child.setUserObject(usObj); |
ndPereCopie.appendChild(child); |
517,4 → 612,28 |
} |
} |
} |
public void raz() { |
} |
public boolean renvoyerEtatFiltre() { |
// TODO Auto-generated method stub |
return false; |
} |
public String renvoyerNomFiltre() { |
// TODO Auto-generated method stub |
return null; |
} |
public String[] renvoyerValeursAFiltrer() { |
// TODO Auto-generated method stub |
return null; |
} |
public void valider() { |
// TODO Auto-generated method stub |
} |
} |
/trunk/src/org/tela_botanica/client/vues/observation/indicateurs/LienExterneVue.java |
---|
New file |
0,0 → 1,68 |
package org.tela_botanica.client.vues.observation.indicateurs; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Configuration; |
import org.tela_botanica.client.observation.ObservationMediateur; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.ClickListener; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Widget; |
import com.gwtext.client.widgets.Panel; |
public class LienExterneVue extends Panel implements Rafraichissable { |
private ObservationMediateur oMediateur = null; |
private String refTax = ""; |
private String refTaxVersion = ""; |
private String numTax = ""; |
private String efloreBaseUrl = ""; |
private Label titreLien = new Label("Voir la fiche eflore"); |
public LienExterneVue(ObservationMediateur om) { |
oMediateur = om; |
refTax = Configuration.getRefTax(); |
refTaxVersion = Configuration.getRefTaxVersion(); |
efloreBaseUrl = Configuration.getLienEfloreBaseUrl(); |
titreLien.setVisible(false); |
setBorder(false); |
titreLien.addClickListener(new ClickListener() { |
public void onClick(Widget sender) { |
if(!numTax.trim().equals("")) { |
Window.open("http://"+efloreBaseUrl+"/"+refTax+"/"+refTaxVersion+"/nn/"+numTax,"",""); |
} |
} |
}); |
titreLien.setStyleName("lien_actif"); |
add(titreLien); |
} |
public void rafraichir(Object nouvelleDonnees, |
boolean repandreRaffraichissement) { |
if(nouvelleDonnees instanceof String && !((String)nouvelleDonnees).trim().equals("")) { |
if(!titreLien.isVisible()) { |
titreLien.setVisible(true); |
} |
numTax = (String)nouvelleDonnees; |
} else { |
titreLien.setVisible(false); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/observation/ListeObservationVue.java |
---|
24,6 → 24,10 |
import com.gwtext.client.data.RecordDef; |
import com.gwtext.client.data.Store; |
import com.gwtext.client.data.StringFieldDef; |
import com.gwtext.client.dd.DragData; |
import com.gwtext.client.dd.DragSource; |
import com.gwtext.client.dd.DropTarget; |
import com.gwtext.client.dd.DropTargetConfig; |
import com.gwtext.client.widgets.Button; |
import com.gwtext.client.widgets.Component; |
import com.gwtext.client.widgets.Panel; |
36,6 → 40,7 |
import com.gwtext.client.widgets.grid.CellMetadata; |
import com.gwtext.client.widgets.grid.ColumnConfig; |
import com.gwtext.client.widgets.grid.ColumnModel; |
import com.gwtext.client.widgets.grid.GridDragData; |
import com.gwtext.client.widgets.grid.GridPanel; |
import com.gwtext.client.widgets.grid.Renderer; |
import com.gwtext.client.widgets.grid.event.GridListenerAdapter; |
142,6 → 147,8 |
this.observationMediateur = obs; |
setId("x-list-obs"); |
setHeader(true); |
297,6 → 304,11 |
this.getView().setAutoFill(true); |
this.getView().setForceFit(true) ; |
//Enable drag and drop |
this.setEnableDragDrop(true); |
//You need to set the same group for both grids |
this.setDdGroup("ObsMotsClesGroup"); |
// on crée un masque de chargement qui s'affichera lors des mises à jour |
this.setLoadMask("Chargement"); |
303,7 → 315,8 |
// on ajoute les listeners |
ajouterListeners(); |
configDragAndDrop(); |
} |
374,11 → 387,54 |
this.addListener(new PanelListenerAdapter() { |
public void onBodyResize(Panel panel, java.lang.String width, java.lang.String height) { |
setHeight("50%"); |
doLayout(); |
} |
}); |
} |
/** |
* Configure le drag 'n drop pour la liste |
*/ |
private void configDragAndDrop() |
{ |
// on fabrique la nouvelle configuration |
// les éléments sur lesquels on fait du drag 'n drop doivent tous avoir le même ddGroup |
this.setDdGroup("ObsMotsClesGroup"); |
DropTargetConfig dtc = new DropTargetConfig(); |
dtc.setdDdGroup("ObsMotsClesGroup"); |
//La drop target permet de gérer l'évenement onDrop sur l'élement courant |
@SuppressWarnings("unused") |
DropTarget tg = new DropTarget(this, dtc) |
{ |
public boolean notifyDrop(DragSource source, EventObject e, DragData data){ |
// si on reçoit des données provenant d'une grille |
if(data instanceof GridDragData) |
{ |
// on la convertit |
GridDragData gdd = (GridDragData)data ; |
// et on vérifie que les données ne viennent pas de l'élément courant |
if(gdd.getGrid().getId().equals("x-list-obs")) |
{ |
Window.alert("on a recu du grid : "+data.toString()); |
return true ; |
// on appelle le médiateur |
//return iMediateur.lierImagesDD(source, e, data) ; |
} |
} |
return true ; |
} |
public String notifyOver(DragSource source, EventObject e, DragData data){ |
return "x-dd-drop-ok"; |
} |
}; |
} |
/** |
* Méthode héritée de l'interface VueListable |
* Sélectionne les observations dans la liste suivant les identifiants donnés en paramètres |
/trunk/src/org/tela_botanica/client/vues/observation/FormulaireSaisieObservationVue.java |
---|
5,6 → 5,7 |
import java.util.Date; |
import java.util.Iterator; |
import org.tela_botanica.client.CarnetEnLigneMediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Configuration; |
import org.tela_botanica.client.modeles.EntiteGeographiqueObservation; |
379,7 → 380,7 |
latitude.focus(); |
} |
ObservationMediateur.fireResize(); |
CarnetEnLigneMediateur.fireResize(); |
} |
}) ; |
537,6 → 538,8 |
htmlCommunePanel.doLayout(); |
htmlPanel.doLayout(); |
doLayout(); |
}}); |
// on ajoute les listeners |
1819,4 → 1822,9 |
public boolean communeInitialisee() { |
return communeModifiee; |
} |
public void redimensionnerFormulaire() { |
doLayout(); |
//panneauIntermediaire.doLayout(); |
} |
} |
/trunk/src/org/tela_botanica/client/vues/observation/PanneauFiltresObservationVues.java |
---|
4,6 → 4,7 |
import org.tela_botanica.client.vues.ArbreMotsClesFiltreVue; |
import org.tela_botanica.client.vues.observation.filtres.ArbreDateObservationFiltreVue; |
import org.tela_botanica.client.vues.observation.filtres.ArbreEntiteGeographiqueObservationFiltreVue; |
import org.tela_botanica.client.vues.observation.filtres.ArbreMotsClesObservationVue; |
import org.tela_botanica.client.vues.observation.filtres.RechercheLibreVue; |
import com.gwtext.client.core.Ext; |
36,7 → 37,7 |
*/ |
private ArbreDateObservationFiltreVue arbreDateObservationFiltreVue = null; |
private ArbreMotsClesFiltreVue arbreMotsClesFiltreVue = null ; |
private ArbreMotsClesObservationVue arbreMotsClesObservationVue = null ; |
private RechercheLibreVue rechercheLibreVue = null; |
90,14 → 91,13 |
arbreDateObservationFiltreVue.setWidth("100%") ; |
arbreDateObservationFiltreVue.setBorder(false); |
arbreMotsClesFiltreVue = new ArbreMotsClesFiltreVue(observationMediateur); |
add(arbreMotsClesFiltreVue, new RowLayoutData()); |
arbreMotsClesFiltreVue.setWidth("100%") ; |
arbreMotsClesFiltreVue.setTitle("Mots Clés"); |
arbreMotsClesFiltreVue.setTitleCollapse(true); |
arbreMotsClesFiltreVue.setCollapsible(true); |
arbreMotsClesFiltreVue.setBorder(false); |
arbreMotsClesFiltreVue.hide(); |
arbreMotsClesObservationVue = new ArbreMotsClesObservationVue(observationMediateur); |
add(arbreMotsClesObservationVue, new RowLayoutData()); |
arbreMotsClesObservationVue.setWidth("100%") ; |
arbreMotsClesObservationVue.setTitle("Mots Clés"); |
arbreMotsClesObservationVue.setTitleCollapse(true); |
arbreMotsClesObservationVue.setCollapsible(true); |
arbreMotsClesObservationVue.setBorder(false); |
} |
115,8 → 115,8 |
return arbreDateObservationFiltreVue; |
} |
public ArbreMotsClesFiltreVue getArbreMotsClesFiltreVue() { |
return arbreMotsClesFiltreVue; |
public ArbreMotsClesObservationVue getArbreMotsClesObservationVue() { |
return arbreMotsClesObservationVue; |
} |
public RechercheLibreVue getRechercheLibreVue() { |
143,7 → 143,7 |
public String[][] renvoyerValeursAFiltrer() { |
String[][] filtres = { arbreEntiteGeographiqueObservationFiltreVue.renvoyerValeursAFiltrer(), |
arbreDateObservationFiltreVue.renvoyerValeursAFiltrer(), |
arbreMotsClesFiltreVue.renvoyerValeursAFiltrer(), |
arbreMotsClesObservationVue.renvoyerValeursAFiltrer(), |
rechercheLibreVue.renvoyerValeursAFiltrer() |
}; |
/trunk/src/org/tela_botanica/client/modeles/MotsClesObsAsynchronesDAO.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/Configuration.java |
---|
27,6 → 27,12 |
private static String cleGoogleMaps ; |
private static String lienEfloreBaseUrl; |
private static String refTax; |
private static String refTaxVersion; |
/** |
* Constructeur sans argument |
*/ |
51,15 → 57,30 |
"referentielGeo"); |
cleGoogleMaps = Dictionary.getDictionary("configuration").get( |
"referentielGeo"); |
"cleGoogleMaps"); |
lienEfloreBaseUrl = Dictionary.getDictionary("configuration").get( |
"lienEfloreBaseUrl"); |
refTax = Dictionary.getDictionary("configuration").get( |
"refTax"); |
refTaxVersion = Dictionary.getDictionary("configuration").get( |
"refTaxVersion"); |
} |
else |
{ |
serviceBaseUrl = "http://localhost/jrest"; |
suiviBugUrl = "http://www.tela-botanica.org/suivi/index.php?do=newtask&project=2"; |
serviceBaseUrl = "http://162.38.234.9/jrest"; |
suiviBugUrl = "http://www.tela-botanica.net/suivi/index.php?do=newtask&project=2"; |
aideBaseUrl = "http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=AideCEL"; |
imageBaseUrl = "http://localhost/Documents/images_serveur/"; |
imageBaseUrl = "http://162.38.234.9/Documents/images_serveur/"; |
referentielGeo = "WGS84"; |
cleGoogleMaps = "ABQIAAAADBUAHF9l14gI02QVAbUYJBQYIbFcBI1ENnSUwK1SMsxOkt3ljBTFFxjHcCePFsiX1MX5_m2r1MnSOw"; |
refTax = "BDNFF"; |
refTaxVersion = "4.02"; |
lienEfloreBaseUrl = "www.tela-botanica.org/eflore"; |
} |
} |
117,4 → 138,19 |
return cleGoogleMaps ; |
} |
public static String getLienEfloreBaseUrl() { |
return lienEfloreBaseUrl; |
} |
public static String getRefTax() { |
return refTax; |
} |
public static String getRefTaxVersion() { |
return refTaxVersion; |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/MotsClesAsynchroneDAO.java |
---|
31,14 → 31,18 |
private ObservationModele oModele = null ; |
private String identifiant = "" ; |
private String mode = ""; |
public MotsClesAsynchroneDAO(ImageModele im) { |
iModele = im; |
mode = "images"; |
identifiant = im.getIdentifiant(); |
} |
public MotsClesAsynchroneDAO(ObservationModele om) { |
oModele = om; |
mode = "obs"; |
identifiant = om.getIdentifiant(); |
} |
63,7 → 67,7 |
public void obtenirListeMotsCles(final Rafraichissable r) { |
// on demande tous les mots clés associés à l'utilisateur |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl() |
+ "/InventoryKeyWordList/" + identifiant); |
+ "/InventoryKeyWordList/"+mode+"/"+identifiant+"/"); |
try { |
rb.sendRequest(null, new RequestCallback() { |
75,9 → 79,10 |
public void onResponseReceived(Request request, |
Response response) { |
final JSONValue responseValue = JSONParser.parse(response |
.getText()); |
// si la requête est un succès on reçoit un tableau |
if (responseValue.isArray() != null) { |
103,7 → 108,7 |
*/ |
public void ajouterBaseDeDonnees(String motcle) { |
if (!motcle.equals("")) { |
String postData = motcle; |
String postData = motcle+"&mode="+mode; |
// on fait un post asynchrone |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl() |
150,6 → 155,7 |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl() |
+ "/InventoryKeyWordList/" |
+ mode |
+ identifiant |
+ "/" |
+ motcle); |
190,10 → 196,10 |
if (!motcle.equals("")) { |
String postData = ""; |
postData += "&action=modification" + motcle; |
postData += "&action=modification"+motcle; |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl() |
+ "/InventoryKeyWordList/" + identifiant); |
+ "/InventoryKeyWordList/"+mode+"/"+ identifiant); |
try { |
rb.sendRequest(postData, new RequestCallback() { |
228,10 → 234,10 |
if (!motcle.equals("")) { |
String postData = ""; |
postData += "&action=deplacement" + motcle; |
postData += "&action=deplacement"+motcle; |
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, Configuration.getServiceBaseUrl() |
+ "/InventoryKeyWordList/" + identifiant); |
+ "/InventoryKeyWordList/"+mode+"/"+identifiant); |
try { |
rb.sendRequest(postData, new RequestCallback() { |
/trunk/src/org/tela_botanica/client/modeles/ListeObservationAsynchroneDAO.java |
---|
54,7 → 54,7 |
for (int i = 0; i < criteres.length; i++) { |
if(!criteres[i][1].equals("") && criteres[i][1] != null) |
if(criteres[i][1] != null && !criteres[i][1].equals("")) |
{ |
if(i!= 0) |
{ |
/trunk/src/org/tela_botanica/client/modeles/NombreObservationAsynchroneDAO.java |
---|
49,8 → 49,8 |
{ |
// on construit les paramètres du get avec les critères (&critere1=valeur1&critere2=valeur2 etc...) |
for (int i = 0; i < criteres.length; i++) { |
if(criteres[i][1] != null && !criteres[i][1].equals("")) |
if(criteres[i][1] != null && !criteres[i][1].equals("")) |
{ |
if(i!= 0) |
{ |
/trunk/src/org/tela_botanica/client/modeles/ObservationAsynchroneDAO.java |
---|
115,6 → 115,7 |
+ "&station="+ URL.encodeComponent(obs.getStation()) |
+"&milieu="+ URL.encodeComponent(obs.getMilieu()) |
+"&commentaire="+URL.encodeComponent(""+obs.getCommentaire()) |
+"&mots_cles="+URL.encodeComponent(""+obs.getMotsCles()) |
+"&coord_x="+URL.encodeComponent(""+obs.getCoordonneeX()) |
+"&coord_y="+URL.encodeComponent(""+obs.getCoordonneeY()); |
/trunk/src/org/tela_botanica/client/observation/ObservationMediateur.java |
---|
18,6 → 18,7 |
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; |
import org.tela_botanica.client.vues.observation.indicateurs.MiniZoomImageVue; |
import org.tela_botanica.client.vues.observation.indicateurs.NuageMotsClesVue; |
28,6 → 29,7 |
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; |
99,7 → 101,7 |
/** |
* liste détaillée des Observations |
*/ |
private ListeObservationVue listeObservation = null ; |
public ListeObservationVue listeObservation = null ; |
/** |
* Saisie des Observations |
122,15 → 124,12 |
* panneau conteneur pour le panneau des informations lies à l'observation |
*/ |
private Panel details = new Panel("Détails"); |
private Panel details = new Panel("Details"); |
private Panel panelMotsCles = new Panel("Mots Clés"); |
private LienExterneVue liExtVue = null; |
private ArbreMotsClesObservationVue arbreMotsClesVue = null ; |
private TabPanel detailsEtMotsCles = new TabPanel(); |
/** |
* panneau conteneur pour le panneau des filtres |
*/ |
228,10 → 227,10 |
conteneurFormulaire.addListener( |
new PanelListenerAdapter() { |
public void onCollapse(Panel panel) { |
ObservationMediateur.fireResize(); |
CarnetEnLigneMediateur.fireResize(); |
} |
public void onExpand(Panel panel) { |
ObservationMediateur.fireResize(); |
CarnetEnLigneMediateur.fireResize(); |
} |
}); |
275,15 → 274,16 |
centre.addListener( |
new PanelListenerAdapter() { |
public void onCollapse(Panel panel) { |
ObservationMediateur.fireResize(); |
CarnetEnLigneMediateur.fireResize(); |
} |
public void onExpand(Panel panel) { |
ObservationMediateur.fireResize(); |
CarnetEnLigneMediateur.fireResize(); |
} |
public void onResize(BoxComponent component, int adjWidth, |
int adjHeight, int rawWidth, int rawHeight) { |
ObservationMediateur.fireResize(); |
ongletsSaisieCarto.doLayout(); |
listeObservation.doLayout(); |
} |
public void onAfterLayout(Container self) { |
310,45 → 310,38 |
centre.add(listeObservation, listeLayoutData); |
centre.add(ongletsSaisieCarto, formLayoutData); |
Panel conteneurDetailsMotsCles = new Panel("Détails"); |
// Redimensionnement global sur collapse/expand |
conteneurDetailsMotsCles.addListener( |
details.addListener( |
new PanelListenerAdapter() { |
public void onCollapse(Panel panel) { |
ObservationMediateur.fireResize(); |
CarnetEnLigneMediateur.fireResize(); |
} |
public void onExpand(Panel panel) { |
ObservationMediateur.fireResize(); |
CarnetEnLigneMediateur.fireResize(); |
} |
}); |
// on initialise le volet qui contient les details |
conteneurDetailsMotsCles.setWidth("10%"); |
conteneurDetailsMotsCles.setTitleCollapse(true); |
conteneurDetailsMotsCles.setCollapsible(true); |
details.setWidth("10%"); |
details.setTitleCollapse(true); |
details.setCollapsible(true); |
conteneurDetailsMotsCles.add(detailsEtMotsCles); |
conteneurDetailsMotsCles.setLayout(new FitLayout()); |
details.setAutoScroll(true); |
details.setLayout(new RowLayout()); |
details.setWidth("100%"); |
arbreMotsClesVue = new ArbreMotsClesObservationVue(this) ; |
panelMotsCles.add(arbreMotsClesVue); |
// Lien vers eflore |
liExtVue = new LienExterneVue(this); |
liExtVue.setHeight("20px"); |
details.add(liExtVue); |
// Information de repartition |
informationRepartitionVue=new InformationRepartitionVue(this); |
details.add(informationRepartitionVue, new RowLayoutData("33%")); |
details.add(informationRepartitionVue, new RowLayoutData("30%")); |
// Image generique |
imageGeneriqueVue=new ImageGeneriqueVue(this); |
details.add(imageGeneriqueVue, new RowLayoutData("33%")); |
details.add(imageGeneriqueVue, new RowLayoutData("30%")); |
mvz = new MiniZoomImageVue(this) ; |
366,31 → 359,20 |
filtres.addListener( |
new PanelListenerAdapter() { |
public void onCollapse(Panel panel) { |
ObservationMediateur.fireResize(); |
CarnetEnLigneMediateur.fireResize(); |
} |
public void onExpand(Panel panel) { |
ObservationMediateur.fireResize(); |
CarnetEnLigneMediateur.fireResize(); |
} |
}); |
detailsEtMotsCles.add(details); |
//detailsEtMotsCles.add(panelMotsCles); |
panneauPrincipalObservation.add(details,regionEst); |
panelMotsCles.hide(); |
panneauPrincipalObservation.add(conteneurDetailsMotsCles,regionEst); |
panneauPrincipalObservation.add(filtres,regionOuest); |
panneauPrincipalObservation.add(centre,regionCentre); |
} |
public static native void fireResize() /*-{ |
$wnd.Ext.EventManager.fireResize(); |
}-*/; |
/** |
* Retourne une instance de manière unique |
* @return l'instance unique du médiateur |
500,17 → 482,17 |
formulaireSaisieObservationVue.rafraichir(obs, false) ; |
} |
// Affichage de l'image correspondante |
liExtVue.rafraichir(numeroNomenclaturalSaisiObservation, false); |
observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ; |
observationModele.obtenirLiaisonImage(mvz, ordreObservation) ; |
observationModele.obtenirMotsClesId(arbreMotsClesVue, ordreObservation); |
//observationModele.obtenirMotsClesId(filtres.getArbreMotsClesObservationVue(), ordreObservation); |
observationModele.obtenirInformationCommune(cartoObservationVue, obs.getLocalite(), obs.getIdentifiantLocalite()); |
//arbreMotsClesVue.cocherMotsCles(motsClesIds); |
} |
public void obtenirImageInformationExternes(String numeroNomenclaturalSaisiObservation) { |
776,7 → 758,7 |
public void masquerChargementInfosObservations() |
{ |
ExtElement masked = Ext.get(detailsEtMotsCles.getId()); |
ExtElement masked = Ext.get(details.getId()); |
if (details.isVisible() && masked != null && !masked.isMasked()) { |
informationRepartitionVue.raz() ; |
789,7 → 771,7 |
public void deMasquerChargementInfosObservations() |
{ |
ExtElement masked = Ext.get(detailsEtMotsCles.getId()); |
ExtElement masked = Ext.get(details.getId()); |
if (details.isVisible() && masked != null && masked.isMasked()) { |
masked.unmask() ; |
976,10 → 958,10 |
* @param arbreMC |
* l'arbre des mots clés à mettre à jour |
*/ |
public void mettreAjourMotsCles(String motsClesEnCours, Tree arbreMC) { |
public void mettreAjourMotsCles(String motsClesEnCours, String[] idsObsALier) { |
String[] ids = listeObservation.getIdSelectionnees(); |
observationModele.mettreAjourMotsCles(ids, motsClesEnCours, arbreMC); |
observationModele.mettreAjourMotsCles(motsClesEnCours, idsObsALier); |
} |
994,7 → 976,7 |
*/ |
public void ajouterMotCleDansArbre(TreeNode n, Tree arbreMC) { |
observationModele.ajouterMotCleDansArbre(n, arbreMC); |
getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n, false); |
getPanneauFiltres().getArbreMotsClesObservationVue().rafraichir(n, false); |
} |
1010,7 → 992,7 |
public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC) { |
observationModele.supprimerMotCleDansArbre(n, arbreMC); |
getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n.getId(), false); |
getPanneauFiltres().getArbreMotsClesObservationVue().rafraichir(n.getId(), false); |
} |
1026,7 → 1008,7 |
public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) { |
observationModele.modifierMotCleDansArbre(n, arbreMC); |
getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n, false); |
getPanneauFiltres().getArbreMotsClesObservationVue().rafraichir(n, false); |
} |
1042,14 → 1024,12 |
public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC) { |
observationModele.deplacerMotCleDansArbre(n, arbreMC); |
getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n, false); |
} |
public void rafraichirArbreMotsCles(Tree arbreMotsCles) { |
arbreMotsClesVue.rafraichir(arbreMotsCles, false); |
getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(arbreMotsCles, false); |
getPanneauFiltres().getArbreMotsClesObservationVue().rafraichir(arbreMotsCles, false); |
} |
1137,7 → 1117,20 |
filtres.getArbreDateObservationFiltreVue().raz() ; |
filtres.getArbreEntiteGeographiqueObservationFiltreVue().raz() ; |
filtres.getArbreMotsClesFiltreVue().raz(); |
filtres.getArbreMotsClesObservationVue().raz(); |
filtres.getRechercheLibreVue().raz(); |
} |
public Component getListeObservation() { |
return listeObservation; |
} |
public void redimensionnerPanneaux(int adjHeight, int adjWidth) { |
listeObservation.doLayout(); |
centre.doLayout(); |
} |
} |
/trunk/src/org/tela_botanica/client/observation/ObservationModele.java |
---|
22,7 → 22,6 |
import org.tela_botanica.client.modeles.ListeReferentielCommuneAsynchroneDAO; |
import org.tela_botanica.client.modeles.ListeReferentielNomAsynchroneDAO; |
import org.tela_botanica.client.modeles.MotsClesAsynchroneDAO; |
import org.tela_botanica.client.modeles.MotsClesObsAsynchronesDAO; |
import org.tela_botanica.client.modeles.NomRetenuAsynchroneDao; |
import org.tela_botanica.client.modeles.NombreObservationAsynchroneDAO; |
import org.tela_botanica.client.modeles.Observation; |
33,6 → 32,7 |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.maps.client.geom.LatLng; |
import com.google.gwt.user.client.Window; |
import com.gwtext.client.data.Node; |
import com.gwtext.client.data.Tree; |
import com.gwtext.client.widgets.map.LatLonPoint; |
132,7 → 132,6 |
// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages) |
NombreObservationAsynchroneDAO noaDAO = new NombreObservationAsynchroneDAO(this) ; |
noaDAO.obtenirNombreObservation(r, observationMediateur.getIdentifiant(), criteres) ; |
370,25 → 369,6 |
} |
public void obtenirNuageMotsCles(Rafraichissable r) { |
MotsClesObsAsynchronesDAO mcoaDAO = new MotsClesObsAsynchronesDAO(this); |
mcoaDAO.obtenirMotsClesObservations(r); |
} |
public void ajouterMotsCles(Rafraichissable r, |
String numObsApl, String motsAAjouter) { |
MotsClesObsAsynchronesDAO moadDAO = new MotsClesObsAsynchronesDAO(this); |
moadDAO.ajouterMotsCles(r,numObsApl,motsAAjouter); |
} |
public void analyserHistorique(Rafraichissable r,String anum) { |
NomRetenuAsynchroneDao nraDAO = new NomRetenuAsynchroneDao(this); |
426,9 → 406,9 |
if (taillemax == 0) { |
// on crée un arbre vide |
TreeNode root = new TreeNode(); |
root.setId("racine"); |
root.setId("racine_obs"); |
root.setText("Tags"); |
String[] usObj = { "Tags", "racine" }; |
String[] usObj = { "Tags", "racine_obs" }; |
root.setUserObject(usObj); |
arbreMotsCles.setRootNode(root); |
} |
450,7 → 430,7 |
// et on construit l'arbre à partir de la racine (qui est |
// toujoursl e premier élément) |
if (id_noeud.equals("racine")) { |
if (id_noeud.equals("racine_obs")) { |
TreeNode root = new TreeNode(); |
root.setId(id_noeud); |
root.setText(mot_cle); |
470,8 → 450,9 |
} |
} |
} |
// enfin on met à jour l'arbre des mots clés contenu dans le modèle |
rafraichirArbreMotsCles(arbreMotsCles); |
//rafraichirArbreMotsCles(arbreMotsCles); |
// et on notifie le médiateur de la mise à jour en lui passant une |
// copie des données |
observationMediateur.rafraichirArbreMotsCles(arbreMotsCles); |
486,7 → 467,6 |
* le nouvel arbre de mots clés |
*/ |
public void rafraichirArbreMotsCles(Object o) { |
observationMediateur.transmettreDonnees(o); |
arbreMotsCles = (com.gwtext.client.data.Tree) o; |
} |
530,11 → 510,10 |
* @param arbreMC |
* l'arbre de mots clés en cours |
*/ |
public void mettreAjourMotsCles(String[] ids, String motsClesEnCours, |
com.gwtext.client.data.Tree arbreMC) { |
for (int i = 0; i < ids.length; i++) { |
if (cacheObservation.containsKey(ids[i])) { |
Observation o = (Observation) cacheObservation.get(ids[i]); |
public void mettreAjourMotsCles(String motsClesEnCours, String[] idsObsALier) { |
for (int i = 0; i < idsObsALier.length; i++) { |
if (cacheObservation.containsKey(idsObsALier[i])) { |
Observation o = (Observation) cacheObservation.get(idsObsALier[i]); |
o.setMotsCles(motsClesEnCours); |
ObservationAsynchroneDAO oDao = new ObservationAsynchroneDAO(this); |
541,8 → 520,6 |
oDao.modifier(this,observationMediateur.getIdentifiant(),o); |
} |
} |
rafraichirArbreMotsCles(arbreMC); |
} |
/** |
569,7 → 546,7 |
} else { |
parentId = "racine"; |
} |
rafraichirArbreMotsCles(arbreMC); |
String nouveauMotCle = "&identifiant=" + getIdentifiant() + "&motcle=" |
592,6 → 569,8 |
String[] usObj = (String[]) n.getUserObject(); |
String id = usObj[1]; |
rafraichirArbreMotsCles(arbreMC); |
MCDao.supprimerBaseDeDonnees(id); |
652,7 → 631,7 |
} else { |
parentId = "racine"; |
} |
rafraichirArbreMotsCles(arbreMC); |
String motCleModifie = "&motcle=" + motCle + "&id=" + id + "&parent=" |