4,10 → 4,15 |
|
// TODO : systematiser les onQuelquechose, appelle depuis les vues |
|
import java.util.HashMap; |
|
import org.tela_botanica.client.CarnetEnLigneMediateur; |
import org.tela_botanica.client.image.ImageMediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.ListeObservation; |
import org.tela_botanica.client.modeles.Observation; |
import org.tela_botanica.client.vues.ArbreMotsClesObsVue; |
import org.tela_botanica.client.vues.ArbreMotsClesVue; |
import org.tela_botanica.client.vues.FormulaireSaisieObservationVue; |
import org.tela_botanica.client.vues.ImageGeneriqueVue; |
import org.tela_botanica.client.vues.InformationRepartitionVue; |
25,16 → 30,26 |
import com.gwtext.client.core.Ext; |
import com.gwtext.client.core.ExtElement; |
import com.gwtext.client.core.RegionPosition; |
import com.gwtext.client.data.Record; |
import com.gwtext.client.data.Tree; |
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.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.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; |
|
|
/** |
91,24 → 106,18 |
/** |
* booleen explicitant s'il y a une selection en cours |
*/ |
private boolean selection = false ; |
|
|
|
private boolean selection = false ; |
/** |
* La liste des observations affichées en cours (verifier utilité) |
*/ |
|
private ListeObservation cacheObservation = new ListeObservation(0) ; |
/** |
|
|
/** |
* panneau conteneur pour le panneau des informations lies à l'observation |
*/ |
|
private Panel details = new Panel("Détails"); |
|
private Panel panelMotsCles = new Panel("Mots Clés"); |
|
private ArbreMotsClesObsVue arbreMotsClesVue = null ; |
|
private TabPanel detailsEtMotsCles = new TabPanel(); |
|
|
/** |
207,14 → 216,24 |
|
centre.add(conteneurFormulaire, new RowLayoutData(210)); |
centre.add(listeObservation, new RowLayoutData()); |
|
|
Panel conteneurDetailsMotsClés = new Panel("Détails"); |
// on initialise le volet qui contient les details |
details.setWidth("10%"); |
details.setTitleCollapse(true); |
details.setCollapsible(true); |
conteneurDetailsMotsClés.setWidth("10%"); |
conteneurDetailsMotsClés.setTitleCollapse(true); |
conteneurDetailsMotsClés.setCollapsible(true); |
|
conteneurDetailsMotsClés.add(detailsEtMotsCles); |
|
conteneurDetailsMotsClés.setLayout(new FitLayout()); |
|
details.setAutoScroll(true); |
details.setLayout(new RowLayout()); |
details.setAutoScroll(true); |
details.setWidth("100%"); |
|
arbreMotsClesVue = new ArbreMotsClesObsVue(this) ; |
panelMotsCles.add(arbreMotsClesVue); |
|
// Information de repartition |
informationRepartitionVue=new InformationRepartitionVue(this); |
// TODO : calcul de la hauteur automatique par le panel ? |
242,7 → 261,13 |
filtres.setTitleCollapse(true); |
filtres.setCollapsible(true); |
|
panneauPrincipalObservation.add(details,regionEst); |
detailsEtMotsCles.add(details); |
//detailsEtMotsCles.add(panelMotsCles); |
|
panelMotsCles.hide(); |
|
|
panneauPrincipalObservation.add(conteneurDetailsMotsClés,regionEst); |
panneauPrincipalObservation.add(filtres,regionOuest); |
panneauPrincipalObservation.add(centre,regionCentre); |
|
313,12 → 338,8 |
|
public void onRafraichissementListeObservations() { |
|
cacheObservation = listeObservation.getCacheListeObservation() ; |
if(cacheObservation.size() == 0) |
{ |
//formulaireSaisieObservationVue.raz() ; |
} |
carnetEnLigneMediateur.donneesRafraichies(cacheObservation) ; |
carnetEnLigneMediateur.donneesImagesVersObs(listeObservation.getCacheListeObservation()); |
observationModele.rafraichirCacheObservation(listeObservation.getCacheListeObservation()); |
} |
|
/** |
333,7 → 354,7 |
|
public void onClicListeObservation(int rowIndex, String ordreObservation) { |
|
Observation obs = cacheObservation.get(ordreObservation) ; |
Observation obs = obtenirCacheObservation().get(ordreObservation) ; |
|
if(GWT.isScript()) { |
masquerChargementInfosObservations() ; |
351,6 → 372,9 |
observationModele.obtenirImageGenerique(imageGeneriqueVue,numeroNomenclaturalSaisiObservation) ; |
|
observationModele.obtenirLiaisonImage(mvz, ordreObservation) ; |
|
observationModele.obtenirMotsClesId(arbreMotsClesVue, ordreObservation); |
//arbreMotsClesVue.cocherMotsCles(motsClesIds); |
|
|
} |
425,7 → 449,7 |
|
public void obtenirCacheObservation(Rafraichissable r) { |
|
r.rafraichir(cacheObservation, false) ; |
r.rafraichir(observationModele.getCacheObservation(), false) ; |
} |
|
|
516,7 → 540,7 |
public String[][] renvoyerFiltres() |
{ |
int longueur = 0; |
/*String[] filtresMotsCles = filtres.getMotsClesObsVue().renvoyerValeursAFiltrer(); |
/*String[] filtresMotsCles = filtres.getArbreMotsClesFiltreVue().renvoyerValeursAFiltrer(); |
if(filtresMotsCles.length > 0) { |
longueur++ ; |
}*/ |
602,8 → 626,6 |
|
|
} |
|
|
|
// Getters |
|
615,9 → 637,9 |
|
public void masquerChargementInfosObservations() |
{ |
ExtElement masked = Ext.get(details.getId()); |
ExtElement masked = Ext.get(detailsEtMotsCles.getId()); |
|
if (masked != null && !masked.isMasked()) { |
if (details.isVisible() && masked != null && !masked.isMasked()) { |
informationRepartitionVue.raz() ; |
imageGeneriqueVue.raz() ; |
masked.mask("Chargement", true); |
626,9 → 648,9 |
|
public void deMasquerChargementInfosObservations() |
{ |
ExtElement masked = Ext.get(details.getId()); |
ExtElement masked = Ext.get(detailsEtMotsCles.getId()); |
|
if (masked != null && masked.isMasked()) { |
if (details.isVisible() && masked != null && masked.isMasked()) { |
masked.unmask() ; |
} |
} |
665,6 → 687,7 |
formulaireSaisieObservationVue.raz() ; |
filtres.getArbreDateObservationFiltreVue().raz() ; |
filtres.getArbreEntiteGeographiqueObservationFiltreVue().raz() ; |
filtres.getArbreMotsClesFiltreVue().raz(); |
informationRepartitionVue.raz() ; |
imageGeneriqueVue.raz() ; |
mvz.raz() ; |
759,60 → 782,158 |
} |
|
|
/*public void ajouterMotCleRecherche(String motCle) { |
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()); |
|
filtres.getMotsClesObsVue().rafraichir(motCle, false); |
} |
|
|
public void obtenirNuageMotsCles(Rafraichissable r) { |
|
observationModele.obtenirNuageMotsCles(r); |
/** |
* Appelle le modèle pour mettre à jour la paire mot-clé / identifiant du |
* mot clé |
* |
* @param text |
* le texte du mot clé |
* @param id |
* l'identifiant du mot clé |
*/ |
public void mettreAjourMotsClesId(String text, String id) { |
|
observationModele.mettreAjourMotsClesId(text, id); |
|
} |
|
/** |
* 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 |
* |
* @param motsClesEnCours |
* les mots clés à associer aux images selectionnés séparés par |
* une ',' |
* @param arbreMC |
* l'arbre des mots clés à mettre à jour |
*/ |
public void mettreAjourMotsCles(String motsClesEnCours, Tree arbreMC) { |
|
public void afficherNuageMotsCles() { |
|
if(nuaMC != null && nuaMC.isVisible()) { |
nuaMC.hide(); |
nuaMC.close(); |
nuaMC = null; |
} |
else { |
nuaMC = new NuageMotsClesVue(this); |
nuaMC.show(filtres.getMotsClesObsVue().getElement()); |
} |
String[] ids = listeObservation.getIdSelectionnees(); |
observationModele.mettreAjourMotsCles(ids, motsClesEnCours, arbreMC); |
|
} |
|
/** |
* Appelle le médiateur pour qu'il ajoute un mot clé dans l'arbre des mots |
* clés |
* |
* @param n |
* le noeud à ajouter à l'arbre |
* @param arbreMC |
* le nouvel arbre de mots clés à mettre à jour |
*/ |
public void ajouterMotCleDansArbre(TreeNode n, Tree arbreMC) { |
observationModele.ajouterMotCleDansArbre(n, arbreMC); |
getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n, false); |
|
public void AjouterMotsClesEnMasse(String motsAAjouter) { |
} |
|
/** |
* Appelle le médiateur pour qu'il supprime un mot clé et son sous arbre |
* dans l'arbre des mots clés |
* |
* @param n |
* le noeud à supprimer |
* @param arbreMC |
* le nouvel arbre de mots clés à mettre à jour |
*/ |
public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC) { |
|
observationModele.supprimerMotCleDansArbre(n, arbreMC); |
getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n.getId(), false); |
|
} |
|
/** |
* Appelle le médiateur pour qu'il modifie un mot clé dans l'arbre des mots |
* clés |
* |
* @param n |
* le noeud à modifier |
* @param arbreMC |
* le nouvel arbre de mots clés à mettre à jour |
*/ |
public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) { |
|
observationModele.modifierMotCleDansArbre(n, arbreMC); |
getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n, false); |
|
} |
|
/** |
* Appelle le médiateur pour qu'il déplace un mot clé et son sous arbre dans |
* l'arbre des mots clés |
* |
* @param n |
* le noeud à déplacer |
* @param arbreMC |
* le nouvel arbre de mots clés à mettre à jour |
*/ |
public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC) { |
|
observationModele.deplacerMotCleDansArbre(n, arbreMC); |
getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(n, false); |
} |
|
|
public void rafraichirArbreMotsCles(Tree arbreMotsCles) { |
|
String[] numObs = listeObservation.getIdSelectionnees(); |
String numObsApl = "" ; |
arbreMotsClesVue.rafraichir(arbreMotsCles, false); |
getPanneauFiltres().getArbreMotsClesFiltreVue().rafraichir(arbreMotsCles, false); |
|
if(numObs.length < 1) { |
return; |
} |
|
for(int i = 0 ; i < numObs.length ; i++) { |
numObsApl += numObs[i] ; |
if(i != numObs.length - 1) { |
numObsApl +="," ; |
} |
} |
|
motsAAjouter = motsAAjouter.replace("\n", " "); |
motsAAjouter = motsAAjouter.replace(" ", ";"); |
observationModele.ajouterMotsCles(listeObservation,numObsApl,motsAAjouter); |
|
} |
|
|
public void afficherSaisieMotsCles(Element e) { |
public void obtenirArbreMotsCles(Rafraichissable r) { |
|
SaisieMotsClesVue suaMC = new SaisieMotsClesVue(this); |
suaMC.show(e.getId()); |
|
}*/ |
observationModele.obtenirArbreMotsCles(r); |
} |
|
public ListeObservation obtenirCacheObservation() { |
return observationModele.getCacheObservation(); |
} |
|
public void donneesExterieures(Object nouvelleDonnees) { |
if(nouvelleDonnees instanceof Tree) { |
|
Tree arbreMotsCles = (Tree)nouvelleDonnees ; |
observationModele.rafraichirArbreMotsCles(nouvelleDonnees); |
rafraichirArbreMotsCles(arbreMotsCles); |
} |
} |
|
public void transmettreDonnees(Object o) { |
carnetEnLigneMediateur.donneesObsVersImages(o); |
} |
} |