/trunk/src/org/tela_botanica/client/image/ImageModele.java |
---|
11,6 → 11,8 |
import org.tela_botanica.client.modeles.ListeImageAsynchroneDAO; |
import org.tela_botanica.client.modeles.MotsClesAsynchroneDAO; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
import com.gwtext.client.data.ArrayReader; |
import com.gwtext.client.data.FieldDef; |
import com.gwtext.client.data.IntegerFieldDef; |
41,10 → 43,8 |
private Store st = null ; |
private com.gwtext.client.data.Tree arbreMotsCles = null ; |
private com.gwtext.client.data.Tree arbreMotsCles = new Tree() ; |
private String arbreAplati = "" ; |
static ImageModele Instance(ImageMediateur im) |
{ |
if(!estInstancie) |
67,6 → 67,10 |
return iMediateur ; |
} |
/** |
* Appelle le DAO asynchrone pour obtenir la liste des images |
* @param r le rafraichissable auxquel on enverra les données |
*/ |
public void obtenirPhotoGalerie(Rafraichissable r) |
{ |
ListeImageAsynchroneDAO liaDAO = new ListeImageAsynchroneDAO(); |
73,6 → 77,10 |
liaDAO.ObtenirListeImages(this); |
} |
/** |
* Appelle le DAO d'upload qui va choisir la methode d'upload adaptée |
* et lancer l'interface appropriée |
*/ |
public void uploaderImages() |
{ |
ImageUploaderAsynchroneDAO IuADaO = new ImageUploaderAsynchroneDAO() ; |
80,24 → 88,42 |
IuADaO.choisirMethodeUpload() ; |
} |
/** |
* Met à jour la liste des images à partir d'un objet |
* @param o la nouvelle liste d'image |
*/ |
public void rafraichirListeImage(Object o) |
{ |
cacheImage = (ListeImageCarnet)o ; |
} |
/** |
* Met à jour l'arbre des mots clés à partir d'un objet |
* @param o le nouvel arbre de mots clés |
*/ |
public void rafraichirArbreMotsCles(Object o) |
{ |
arbreMotsCles = (com.gwtext.client.data.Tree)o ; |
} |
/** |
* Met à jour la table de correspondance mots clés / ids |
* à partir d'un objet |
* @param o la nouvelle table des mots clés |
*/ |
public void rafraichirMotsCles(Object o) |
{ |
motsCles = (HashMap)o ; |
} |
/** |
* Va chercher les métadonnées associées à une image dans la liste |
* des images chargée dans le modèle |
* @param r le rafraichissable auquel on enverra les informations |
* @param id l'identifiant de l'image |
*/ |
public void obtenirMetadonnees(Rafraichissable r, String id) |
{ |
ImageCarnet im = (ImageCarnet)cacheImage.get(id) ; |
Object meta[] = new Object[3] ; |
106,9 → 132,14 |
meta[2] = im.getInfoGenerales() ; |
r.rafraichir(meta,false) ; |
} |
/** |
* Va chercher les mots clés associés à une image dans la liste |
* des images chargée dans le modèle |
* @param r le rafraichissable auquel on enverra les informations |
* @param id l'identifiant de l'image |
*/ |
public void obtenirMotsClesId(Rafraichissable r, String id) |
{ |
ImageCarnet im = (ImageCarnet)cacheImage.get(id) ; |
118,6 → 149,13 |
r.rafraichir(motsClesIdTab, false) ; |
} |
/** |
* Met à jour la liste des images en local et appelle le DAO de mise |
* à jour pour les commentaires et la date des images selectionnées |
* @param commentaires le commentaire à appliquer |
* @param date la date à appliquer |
* @param ids les identifiants des images selectionnées |
*/ |
public void mettreAJourCacheImage(String commentaires, String date, String ids[]) |
{ |
for (int i = 0; i < ids.length; i++) |
129,16 → 167,20 |
} |
} |
/** |
* Ajoute un nouveau mot clés à la liste des mots clés locale |
* @param text le mot clé |
* @param id l'identifiant du mot clé |
*/ |
public void mettreAjourMotsClesId(String text, String id) |
{ |
motsCles.put(id, text) ; |
} |
public void mettreAjourBaseDeDonneesMotsClesId() |
{ |
} |
/** |
* Appelle le DAO chargé de mettre à jour la base de données avec |
* les toutes les informations des images modifiées par l'utilisateur |
*/ |
public void mettreAJourBaseDeDonneesListeImageCarnet() |
{ |
ListeImageAsynchroneDAO liDaO = new ListeImageAsynchroneDAO(); |
147,6 → 189,11 |
liDaO.SynchroniserBaseDeDonnees(cacheImage); |
} |
/** |
* Appelle le DAO chargé de mettre à jour la base de données avec |
* les toutes les informations d'une image donnée |
* @param ic l'image à synchroniser avec la base |
*/ |
public void mettreAjourBaseDeDonneesImageCarnet(ImageCarnet ic) |
{ |
ImageAsynchroneDAO iaDaO = new ImageAsynchroneDAO(); |
154,15 → 201,19 |
iaDaO.SynchroniserBaseDeDonnees(ic) ; |
} |
public void supprimerImages(String[] ids) { |
/** |
* Supprime les images données du cache local et appelle le DAO |
* qui les supprime de la base de données |
* @param ids les identifiants des images selectionnées |
*/ |
public void supprimerImages(String[] ids) |
{ |
String rids[] = new String[ids.length] ; |
ListeImageAsynchroneDAO liDao = new ListeImageAsynchroneDAO() ; |
liDao.setIMediateur(iMediateur); |
for (int i = 0; i < ids.length; i++) { |
for (int i = 0; i < ids.length; i++) |
{ |
String key = ids[i] ; |
ImageCarnet ic = (ImageCarnet)cacheImage.get(key) ; |
rids[i] = ic.getId() ; |
172,12 → 223,16 |
{ |
liDao.supprimerBaseDeDonnees(rids); |
} |
} |
public void rafraichir(Object nouvelleDonnees, |
boolean repandreRafraichissement) { |
/** |
* Met à jour les données locales suivant le type des nouvelles données |
* et appelle le médiateur pour le notifier de la mise à jour |
*/ |
public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) |
{ |
if(nouvelleDonnees instanceof ListeImageCarnet) |
{ |
ListeImageCarnet data = (ListeImageCarnet) nouvelleDonnees ; |
Object[][] photoData = new Object[data.size()][7]; |
int i = 0 ; |
219,10 → 274,68 |
{ |
getIMediateur().synchroniserDonneesZoomListeGalerie(st, this) ; |
} |
} |
if(nouvelleDonnees instanceof JSONArray) |
{ |
JSONArray reponse = (JSONArray)nouvelleDonnees ; |
final int taillemax = reponse.size(); |
if(taillemax == 0) |
{ |
TreeNode root = new TreeNode() ; |
root.setId("racine") ; |
root.setText("Tags") ; |
root.setIcon("tela.png") ; |
String[] usObj = {"Tags","racine"} ; |
root.setUserObject(usObj) ; |
arbreMotsCles.setRootNode(root) ; |
} |
for (int j = 0; j < taillemax ; j++) |
{ |
if(reponse.get(j).isObject() != null) |
{ |
JSONObject noeud = (JSONObject)reponse.get(j) ; |
String id_noeud = noeud.get("cmc_id_mot_cle_utilisateur").isString().stringValue() ; |
String mot_cle = noeud.get("cmc_mot_cle").isString().stringValue() ; |
String parent = noeud.get("cmc_id_parent").isString().stringValue() ; |
String[] usObj = {mot_cle, id_noeud} ; |
if(id_noeud.equals("racine")) |
{ |
TreeNode root = new TreeNode() ; |
root.setId(id_noeud) ; |
root.setText(mot_cle) ; |
root.setIcon("tela.png") ; |
root.setUserObject(usObj) ; |
arbreMotsCles.setRootNode(root) ; |
} |
else |
{ |
TreeNode node = new TreeNode() ; |
node.setId(id_noeud) ; |
node.setText(mot_cle) ; |
node.setChecked(false) ; |
Node parentNode = arbreMotsCles.getNodeById(parent) ; |
node.setIcon("tela.png") ; |
node.setUserObject(usObj) ; |
parentNode.appendChild(node) ; |
} |
} |
} |
rafraichirArbreMotsCles(arbreMotsCles) ; |
getIMediateur().getMetadonneesIptcExif().getPanneauMotsCles().rafraichir(arbreMotsCles, true) ; |
} |
} |
/** |
* Affiche les paires / valeur de tous les mots clés stockés |
*/ |
public void afficherMotsCles() |
{ |
for(Iterator it = motsCles.keySet().iterator() ; it.hasNext() ;) |
233,14 → 346,24 |
} |
} |
public void mettreAjourMotsCles(String[] ids, String motsClesEnCours, com.gwtext.client.data.Tree arbreMC) { |
for (int i = 0; i < ids.length; i++) { |
/** |
* Met à jour les mots clés associés à une image et appelle le DAO pour synchroniser la base de données |
* @param ids les identifiants des images selectionnées |
* @param motsClesEnCours les mots clés à appliquer aux images |
* @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(cacheImage.containsKey(ids[i])) |
{ |
ImageCarnet ic = (ImageCarnet)cacheImage.get(ids[i]) ; |
ic.mettreAjourMotsCles(motsClesEnCours) ; |
ImageAsynchroneDAO imgDao = new ImageAsynchroneDAO() ; |
imgDao.setIMediateur(getIMediateur()) ; |
imgDao.SynchroniserMotsClesImageBaseDeDonnees(ic) ; |
} |
} |
248,8 → 371,34 |
} |
public void ajouterMotCleDansArbre(TreeNode n, com.gwtext.client.data.Tree arbreMC) { |
/** |
* Appelle le DAO des mots clés pour obtenir l'arbre complet stocké dans la base de données |
*/ |
public void initialiserArbreMotsCles() |
{ |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ; |
MCDao.setIMediateur(getIMediateur()) ; |
MCDao.obtenirListeMotsCles(this) ; |
} |
/** |
* Envoie l'arbre des mots clés stocké localement à l'élément rafrachissable donné, qui le demande |
* @param r le rafraichissable demandeur de l'arbre |
*/ |
public void obtenirArbreMotCle(Rafraichissable r) |
{ |
r.rafraichir(arbreMotsCles, false) ; |
} |
/** |
* Ajoute un mot clé à l'arbre des mots clés local et appelle le DAO qui fait la mise |
* à jour de l'arbre des mots clés dans la base |
* @param n le nouveau noeud contenant le mot clé |
* @param arbreMC l'arbre des mots cles en cours |
*/ |
public void ajouterMotCleDansArbre(TreeNode n, com.gwtext.client.data.Tree arbreMC) |
{ |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ; |
MCDao.setIMediateur(getIMediateur()) ; |
256,8 → 405,8 |
String[] usObj = (String[])n.getUserObject() ; |
String motCle = usObj[0] ; |
String id = usObj[1] ; |
String parentId = "" |
; |
String parentId = "" ; |
if(!id.equals("racine")) |
{ |
String[] parentUsObj = (String[])n.getParentNode().getUserObject() ; |
272,10 → 421,16 |
String nouveauMotCle = "&motcle="+motCle+"&id="+id+"&parent="+parentId ; |
MCDao.ajouterBaseDeDonnees(nouveauMotCle) ; |
} |
public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC) { |
/** |
* Supprime un noeud de l'arbre des mots clés et appelle le DAO qui va supprimer |
* les mots clés associés dans la base |
* @param n le noeud à supprimer |
* @param arbreMC l'arbre des mots clés en cours |
*/ |
public void supprimerMotCleDansArbre(TreeNode n, Tree arbreMC) |
{ |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ; |
MCDao.setIMediateur(getIMediateur()) ; |
290,7 → 445,14 |
} |
public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) { |
/** |
* Modifie le noeud donné dans l'arbre des mots clés en cours et appelle le DAO |
* qui synchronise la modification dans la base de données |
* @param n le noeud modifié |
* @param arbreMC l'arbre des mots clés en cours |
*/ |
public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) |
{ |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ; |
MCDao.setIMediateur(getIMediateur()) ; |
298,8 → 460,8 |
String[] usObj = (String[])n.getUserObject() ; |
String motCle = usObj[0] ; |
String id = usObj[1] ; |
String parentId = "" |
; |
String parentId = "" ; |
if(!id.equals("racine")) |
{ |
String[] parentUsObj = (String[])n.getParentNode().getUserObject() ; |
313,11 → 475,16 |
rafraichirArbreMotsCles(arbreMC) ; |
String motCleModifie = "&motcle="+motCle+"&id="+id+"&parent="+parentId ; |
MCDao.modifierBaseDeDonnees(motCleModifie) ; |
} |
/** |
* Deplace un noeud dans l'arbre des mots cles et appelle le DAO qui reorganise l'arbre |
* dans la base de donnees suivant le changement |
* @param n le noeud deplace (et son sous arbre associe) |
* @param arbreMC l'arbre des mots cles en cours |
*/ |
public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC) |
{ |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO() ; |
326,8 → 493,7 |
String[] usObj = (String[])n.getUserObject() ; |
String motCle = usObj[0] ; |
String id = usObj[1] ; |
String parentId = "" |
; |
String parentId = "" ; |
if(!id.equals("racine")) |
{ |
String[] parentUsObj = (String[])n.getParentNode().getUserObject() ; |
341,7 → 507,6 |
rafraichirArbreMotsCles(arbreMC) ; |
String motCleModifie = "&motcle="+motCle+"&id="+id+"&parent="+parentId ; |
MCDao.deplacerBaseDeDonnees(motCleModifie) ; |
} |
/trunk/src/org/tela_botanica/client/image/ImageMediateur.java |
---|
58,12 → 58,12 |
private final Panel panneauPrincipalImage = new Panel("Images"); |
/** |
* panneau à onglet pour la liste, la galerie et la vue en grand |
* panneau a onglet pour la liste, la galerie et la vue en grand |
*/ |
private TabPanel ongletsImage = null ; |
/** |
* conteneur du panneau à onglets |
* conteneur du panneau a onglets |
*/ |
private Panel panneauMenuEtOngletsImage = null ; |
83,12 → 83,12 |
private ZoomImageVue zoomImage = null ; |
/** |
* panneau à onglets affichant les métadonnées et les mots clés |
* panneau a onglets affichant les métadonnées et les mots clés |
*/ |
private PanneauMetadonneesVue metadonneesIptcExif = null ; |
/** |
* panneau conteneur pour le panneau à onglet des metadonnées |
* panneau conteneur pour le panneau a onglet des metadonnées |
*/ |
private final Panel detailsEtMotsCles = new Panel("Détails et mots clés"); |
113,7 → 113,7 |
private boolean selection = false ; |
/** |
* constructeur privé (on accède à la classe par la méthode getInstance |
* constructeur privé (on accède a la classe par la méthode getInstance |
*/ |
private ImageMediateur() |
{ |
129,6 → 129,7 |
iModele = ImageModele.Instance(this); |
iModele.initialiserArbreMotsCles() ; |
panneauPrincipalImage.setLayout(new BorderLayout()); |
panneauMenuEtOngletsImage = new Panel() ; |
305,9 → 306,9 |
} |
/** |
* met à jour les données provenant du modèle et synchronise les vues entre elles |
* @param o données de mises à jour pour les vues |
* @param r le refraichissable qui a demandé la mise à jour |
* met a jour les données provenant du modèle et synchronise les vues entre elles |
* @param o données de mises a jour pour les vues |
* @param r le refraichissable qui a demandé la mise a jour |
*/ |
public void synchroniserDonneesZoomListeGalerie(Object o, Rafraichissable r) |
{ |
344,8 → 345,8 |
} |
/** |
* envoie au modèle une demande de mise à jour |
* @param r la vue demandeuse de mise à jour |
* envoie au modèle une demande de mise a jour |
* @param r la vue demandeuse de mise a jour |
*/ |
public void obtenirPhotoGalerie(Rafraichissable r) |
{ |
353,8 → 354,8 |
} |
/** |
* demande au modèle les métadonnées associées à une image |
* @param r la vue demandeuse de mise à jour |
* demande au modèle les métadonnées associées a une image |
* @param r la vue demandeuse de mise a jour |
* @param id l'identifiant de l'image |
*/ |
public void obtenirMetadonnees(Rafraichissable r, String id) |
363,8 → 364,8 |
} |
/** |
* demande au modèle les ids des mots clés associés à une image |
* @param r la vue demandeuse de mise à jour |
* demande au modèle les ids des mots clés associés a une image |
* @param r la vue demandeuse de mise a jour |
* @param id l'identifiant de l'image |
*/ |
public void obtenirMotsClesId(Rafraichissable r, String id) |
372,9 → 373,14 |
getIModele().obtenirMotsClesId(r, id) ; |
} |
public void obtenirArbreMotsCles(Rafraichissable r) |
{ |
getIModele().obtenirArbreMotCle(r) ; |
} |
/** |
* envoie au modèle une demande de mise à jour des informations modifiables |
* associées à une image |
* envoie au modèle une demande de mise a jour des informations modifiables |
* associées a une image |
* @param commentaires le commentaire de l'image |
* @param date la date modifiée par l'utilisateur |
*/ |
385,6 → 391,11 |
getIModele().mettreAJourCacheImage(commentaires, date, ids) ; |
} |
public void rafraichirArbreMotsCles(Tree arbreMC) |
{ |
metadonneesIptcExif.getPanneauMotsCles().rafraichir(arbreMC, false) ; |
} |
/** |
* envoie au modèle une demande pour lancer le formulaire ou l'application d'upload |
*/ |
451,7 → 462,7 |
} |
/** |
* envoie une demande de mise à jour des données au modèle |
* envoie une demande de mise a jour des données au modèle |
*/ |
public void rafraichirToutesVues() |
{ |
515,7 → 526,7 |
if(arg.equals("prev")) |
{ |
// si la photo séléctionnée est la première, on passe à la |
// si la photo séléctionnée est la première, on passe a la |
// dernière |
if (selected == 0) { |
storeIndex = st.getCount() - 1 ; |
533,7 → 544,7 |
if(arg.equals("suiv")) |
{ |
// si la photo selectionnée est la dernière on passe à la |
// si la photo selectionnée est la dernière on passe a la |
// première |
if (selected == st.getCount() - 1) { |
570,7 → 581,7 |
/** |
* synchronise la selection entre la galerie et la liste |
* @param string le nom de la vue qui doit être synchronisée |
* @param string le nom de la vue qui doit être synchronisee |
*/ |
public void synchroniserSelection(String string) { |
598,7 → 609,7 |
/** |
* fait une demande de suppression des images (en local et en distant) |
* des images selectionnées |
* des images selectionnees |
*/ |
public void supprimerImages() { |
618,7 → 629,7 |
{ |
if(com.google.gwt.user.client.Window |
.confirm("Supprimer les images sélectionnées ?")) |
.confirm("Supprimer les images selectionnees ?")) |
{ |
getIModele().supprimerImages(ids) ; |
aucuneSelection() ; |
626,13 → 637,13 |
} |
else |
{ |
Window.alert("Impossible de supprimer : aucune image selectionnée") ; |
Window.alert("Impossible de supprimer : aucune image selectionnee") ; |
} |
} |
/** |
* désactive les onglets de métadonnées et de zoom (dans le cas ou rien n'est selectionné) |
* desactive les onglets de metadonnees et de zoom (dans le cas ou rien n'est selectionne) |
*/ |
public void aucuneSelection() { |
646,7 → 657,7 |
} |
/** |
* réacative les onglet métadonnées et zoom (lors d'une sélection alors qu'il n'y en avait pas) |
* reacative les onglet metadonnees et zoom (lors d'une selection alors qu'il n'y en avait pas) |
*/ |
public void selection() { |
661,8 → 672,8 |
public void montrerContextMenuArbre(final TreeNode n, EventObject ev, final TreeEditor te) |
{ |
Menu mn = new Menu() ; |
final com.gwtext.client.widgets.menu.Item ajoutN = new Item("Ajouter mot clé"); |
final com.gwtext.client.widgets.menu.Item suppN = new Item("Supprimer mot clé"); |
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); |
671,7 → 682,6 |
public void onItemClick(BaseItem item, EventObject e) |
{ |
if(item.equals(suppN)) |
{ |
getMetadonneesIptcExif().getPanneauMotsCles().supprimerNoeud(n) ; |
687,6 → 697,8 |
} |
public void mettreAjourMotsClesId(String text, String id) { |
getIModele().mettreAjourMotsClesId(text, id) ; |
722,6 → 734,11 |
getIModele().deplacerMotCleDansArbre(n, arbreMC) ; |
} |
public void initialiserMotsCleCoches() { |
obtenirMotsClesId(metadonneesIptcExif.getPanneauMotsCles(), getGalerieImage().getIdSelectionnees()[0]) ; |
} |
} |
/trunk/src/org/tela_botanica/client/vues/ArbreMotsClesVue.java |
---|
24,8 → 24,13 |
import com.gwtext.client.widgets.Panel; |
import com.gwtext.client.widgets.event.ButtonListener; |
import com.gwtext.client.widgets.event.ButtonListenerAdapter; |
import com.gwtext.client.widgets.event.ComponentListener; |
import com.gwtext.client.widgets.event.ComponentListenerAdapter; |
import com.gwtext.client.widgets.event.ContainerListener; |
import com.gwtext.client.widgets.event.ContainerListenerAdapter; |
import com.gwtext.client.widgets.event.EditorListener; |
import com.gwtext.client.widgets.event.EditorListenerAdapter; |
import com.gwtext.client.widgets.event.PanelListenerAdapter; |
import com.gwtext.client.widgets.form.Field; |
import com.gwtext.client.widgets.form.TextField; |
import com.gwtext.client.widgets.layout.RowLayout; |
47,8 → 52,11 |
private TextField tfEdit = null ; |
private Button valider = null ; |
private String motsClesEnCours = "" ; |
private String[] motsClesEnAttente ; |
private boolean ajoutNoeud = false ; |
private boolean modifNoeud = false ; |
private boolean estInstancie = false ; |
private boolean motsCleInitialises ; |
public ArbreMotsClesVue(ImageMediateur im) |
{ |
59,13 → 67,13 |
arbreMotsCles = new TreePanel() ; |
arbreMotsCles.setEnableDD(true) ; |
TreeNode root = new TreeNode("Mots clés") ; |
TreeNode root = new TreeNode("Tags") ; |
root.setId("racine") ; |
String[] usObject = {"Mots clés" , "racine" } ; |
root.setUserObject(usObject) ; |
arbreMotsCles.setRootNode(root) ; |
arbreMotsCles.setRootVisible(true) ; |
arbreMotsCles.setRootVisible(false) ; |
arbreMotsCles.getRootNode().setIcon("tela.png") ; |
tfEdit = new TextField() ; |
76,6 → 84,7 |
this.add(valider,new RowLayoutData("10%")) ; |
ajouterListeners() ; |
} |
private ImageMediateur GetIMediateur() { |
157,7 → 166,6 |
} |
public void onCheckChange(TreeNode node, boolean checked) { |
if(checked) |
174,9 → 182,9 |
}) ; |
} |
} |
}) ; |
valider.addListener(new ButtonListenerAdapter() { |
public void onClick(Button button, EventObject e) { |
207,12 → 215,27 |
} |
public void obtenirArbreMotsCles() { |
GetIMediateur().obtenirArbreMotsCles(this) ; |
} |
public void supprimerNoeud(TreeNode n) |
{ |
if(!n.getId().equals(getArbreMotsCles().getRootNode().getId())) |
{ |
n.getParentNode().removeChild(n); |
n.destroy() ; |
GetIMediateur().supprimerMotCleDansArbre(n, arbreMotsCles.getTree()) ; |
} |
else |
{ |
Window.alert("Impossible de supprimer la racine de l'arbre") ; |
} |
} |
public void ajouterNoeud(TreeNode parent) |
{ |
245,6 → 268,8 |
public void cocherMotsCles(final String[] motsClesIds) |
{ |
if(getArbreMotsCles() != null && getArbreMotsCles().getRootNode() != null) |
{ |
getArbreMotsCles().getRootNode().cascade(new NodeTraversalCallback() { |
public boolean execute(Node node) { |
267,6 → 292,7 |
}) ; |
} |
} |
public void rafraichir(Object nouvelleDonnees, |
boolean repandreRafraichissement) { |
274,14 → 300,31 |
if(nouvelleDonnees instanceof Tree) |
{ |
Tree nouvelArbre = (Tree)nouvelleDonnees ; |
getArbreMotsCles().setRootNode(nouvelArbre.getRootNode()) ; |
getArbreMotsCles().getRootNode().appendChild(nouvelArbre.getRootNode()) ; |
getArbreMotsCles().expandAll() ; |
estInstancie = true ; |
if(motsCleInitialises == false && motsClesEnAttente != null) |
{ |
cocherMotsCles(motsClesEnAttente) ; |
motsCleInitialises = true ; |
} |
} |
if(nouvelleDonnees instanceof String[]) |
{ |
if(estInstancie && nouvelleDonnees != null) |
{ |
String[] motsClesIds = (String[])nouvelleDonnees ; |
cocherMotsCles(motsClesIds) ; |
} |
else |
{ |
motsClesEnAttente = (String[])nouvelleDonnees ; |
} |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/Observation.java |
---|
46,7 → 46,7 |
/** |
* @param transmis |
* @param nomSaisi |
* @param nomretenu |
* @param nomRetenu |
* @param numeroNomenclatural |
* @param numeroTaxonomique |
* @param famille |
/trunk/src/org/tela_botanica/client/modeles/ImageCarnet.java |
---|
61,7 → 61,7 |
if(this.containsKey((cle))) |
{ |
String valeur = (String)this.get(cle) ; |
if(valeur.equals("null")) |
if(valeur.equals("null") || valeur == null) |
{ |
return "null" ; |
} |
/trunk/src/org/tela_botanica/client/modeles/ImageAsynchroneDAO.java |
---|
29,10 → 29,26 |
String valeur = ic.renvoyerValeurCorrecte(key) ; |
postData += "&"+key+"="+valeur ; |
} |
HTTPRequest.asyncPost("jrest/inventoryImage/0/", postData, new ResponseTextHandler() { |
public void onCompletion(String responseText) { |
} |
}) ; |
} |
public void SynchroniserMotsClesImageBaseDeDonnees(final ImageCarnet ic) |
{ |
String postData = "" ; |
String motsCles = ic.getMotsCles() ; |
String id = ic.getId() ; |
postData += "&ci_id_image="+id+"&ci_meta_mots_cles="+motsCles ; |
HTTPRequest.asyncPost("jrest/inventoryImage/0/", postData, new ResponseTextHandler() { |
public void onCompletion(String responseText) { |
/trunk/src/org/tela_botanica/client/modeles/MotsClesAsynchroneDAO.java |
---|
6,9 → 6,15 |
import org.tela_botanica.client.image.ImageMediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.json.client.JSONValue; |
import com.google.gwt.user.client.HTTPRequest; |
import com.google.gwt.user.client.ResponseTextHandler; |
import com.google.gwt.user.client.Window; |
import com.gwtext.client.data.Node; |
import com.gwtext.client.data.Tree; |
import com.gwtext.client.widgets.tree.TreeNode; |
public class MotsClesAsynchroneDAO { |
20,15 → 26,20 |
iMediateur = im ; |
} |
public void obtenirListeMotsCles(Rafraichissable r) |
public void obtenirListeMotsCles(final Rafraichissable r) |
{ |
HTTPRequest.asyncGet("jrest/InventoryKeyWordList/"+iMediateur.getIdentifiant(), new ResponseTextHandler() { |
public void onCompletion(String responseText) { |
// TODO Auto-generated method stub |
final JSONValue responseValue = JSONParser.parse(responseText); |
if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
r.rafraichir(reponse, true) ; |
} |
} |
}); |
} |
43,7 → 54,13 |
public void onCompletion(String responseText) { |
if(responseText.equals("ERROR")) |
{ |
Window.alert("Attention, la base de données des mots clés n'est plus synchronisée avec l'application," + |
"nous vous invitons à recharger la page. ") ; |
} |
} |
}) ; |
} |
60,8 → 77,12 |
public void onCompletion(String responseText) { |
if(responseText.equals("ERROR")) |
{ |
Window.alert("Attention, la base de données des mots clés n'est plus synchronisée avec l'application," + |
"nous vous invitons à recharger la page. ") ; |
} |
} |
}) ; |
} |
79,7 → 100,6 |
public void onCompletion(String responseText) { |
Window.alert(responseText) ; |
} |
100,7 → 120,6 |
public void onCompletion(String responseText) { |
Window.alert(responseText) ; |
} |