Subversion Repositories eFlore/Archives.cel-v2

Compare Revisions

Ignore whitespace Rev 26 → Rev 27

/trunk/src/org/tela_botanica/client/vues/PanneauMetadonneesVue.java
47,10 → 47,8
private Panel panneauExifGrid = null;
private Panel panneauIptcGrid = null ;
private Panel panneauInfoGrid = null ;
private ArbreMotsClesVue panneauMotsCles = null ;
private TreePanel panneauMotsCles = null ;
private HashMap motclesIds = null ;
private TextField commentaireGeneral = null ;
private DateField dateImage = null ;
Button validerInfo = null ;
66,13 → 64,8
panneauExifGrid = new Panel("Exif") ;
panneauIptcGrid = new Panel("Iptc") ;
panneauInfoGrid = new Panel("info") ;
panneauMotsCles = new TreePanel("Mots clés") ;
panneauMotsCles = new ArbreMotsClesVue(im) ;
TreeNode root = new TreeNode("Mots clés") ;
panneauMotsCles.setRootNode(root) ;
panneauMotsCles.setRootVisible(false);
panneauInfoGrid.setLayout(new VerticalLayout());
panneauInfoGrid.setHeight(500);
Label labelComm = new Label("Commentaires :") ;
202,4 → 195,11
 
}
}
 
/**
* @return the panneauMotsCles
*/
public ArbreMotsClesVue getPanneauMotsCles() {
return panneauMotsCles;
}
}
/trunk/src/org/tela_botanica/client/vues/GalerieImageVue.java
1,164 → 1,154
package org.tela_botanica.client.vues;
 
 
import java.util.Iterator;
 
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.interfaces.VueListable;
import org.tela_botanica.client.modeles.ImageCarnet;
import org.tela_botanica.client.modeles.ListeImageCarnet;
 
 
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Window;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.XTemplate;
import com.gwtext.client.data.ArrayReader;
import com.gwtext.client.data.FieldDef;
import com.gwtext.client.data.IntegerFieldDef;
import com.gwtext.client.data.MemoryProxy;
import com.gwtext.client.data.Record;
import com.gwtext.client.data.RecordDef;
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StringFieldDef;
import com.gwtext.client.util.Format;
import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.Container;
import com.gwtext.client.widgets.DataView;
import com.gwtext.client.widgets.Observable;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.DataView.Data;
import com.gwtext.client.widgets.event.ContainerListener;
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
import com.gwtext.client.widgets.event.DataViewListener;
import com.gwtext.client.widgets.event.DataViewListenerAdapter;
 
/**
* Galerie d'images miniatures
*
* @author aurelien
*
*/
public class GalerieImageVue extends Panel implements Rafraichissable, VueListable {
public class GalerieImageVue extends Panel implements Rafraichissable,
VueListable {
 
// instance du médiateur
private ImageMediateur iMediateur = null;
private DataView dView = null ;
private Store st = null ;
public GalerieImageVue(ImageMediateur im)
{
private ImageMediateur iMediateur = null;
private DataView dView = null;
private Store st = null;
 
public GalerieImageVue(ImageMediateur im) {
super("Galerie");
iMediateur = im ;
iMediateur = im;
 
this.addListener(new ContainerListenerAdapter() {
 
 
public void onHide(Component component) {
// TODO Auto-generated method stub
 
}
 
 
public void onRender(Component component) {
// TODO Auto-generated method stub
 
}
 
public void onShow(Component component) {
 
public void onShow(Component component) {
if(dView == null)
{
if (dView == null) {
initialiser();
}
}
 
});
 
}
public void ajouterListenersDataView()
{
 
public void ajouterListenersDataView() {
 
// ajout de listeners pour la gestion de la selection
// dans la galerie
dView.addListener(new DataViewListenerAdapter() {
 
 
 
public void onClick(DataView source, int index, Element node,
EventObject e) {
 
getIMediateur().clicGalerieImage(index, node, e);
 
}
 
public void onContainerClick(DataView source, EventObject e) {
// TODO: appeler le mediateur
 
public void onContainerClick(DataView source, EventObject e) {
//TODO: appeler le mediateur
}
 
 
public void onContextMenu(DataView source, int index, Element node,
EventObject e) {
e.stopEvent() ;
getIMediateur().montrerContextMenu(e) ;
 
e.stopEvent();
getIMediateur().montrerContextMenu(e);
 
}
 
 
public void onDblClick(DataView source, int index, Element node,
EventObject e) {
//TODO: appeler le mediateur
 
// TODO: appeler le mediateur
getIMediateur().clicGalerieImage(index, node, e);
 
}
 
public void onSelectionChange(DataView view, Element[] selections) {
 
public void onSelectionChange(DataView view, Element[] selections) {
if(selections.length <= 0)
{
if (selections.length <= 0) {
getIMediateur().aucuneSelection();
} else {
getIMediateur().selection();
getIMediateur().synchroniserSelection("galerie");
}
else
{
getIMediateur().selection() ;
getIMediateur().synchroniserSelection("galerie") ;
}
}
 
});
}
 
public DataView getDView() {
return dView;
}
 
public String[] getIdSelectionnees() {
Record[] selection = getDView().getSelectedRecords();
int taille = selection.length;
String id_selection[] = new String[taille];
 
for (int i = 0; i < selection.length; i++) {
 
id_selection[i] = selection[i].getAsString("num_image");
}
 
return id_selection;
}
 
public ImageMediateur getIMediateur() {
return iMediateur;
}
 
public Store getSt() {
return st;
}
 
// instantiation paresseuse
public void initialiser()
{
// Preparation de la dataview et du template
public void initialiser() {
// Preparation de la dataview et du template
// le template va créer une div contenant une image
// pour chacune des photos
final XTemplate template = new XTemplate(
new String[]{
new String[] {
"<tpl for='.'>",
"<div class='thumb-wrap' id='{num_image}'>",
"<div class='thumb'><img src='{url_image_M}' title='{num_image}'></div>",
"<span>{nom}</span></div>", "</tpl>",
"<div class='x-clear'></div>"});
"<div class='x-clear'></div>" });
template.compile();
 
// la dataview affichera les images en accord avec le template
// cree precedemment
dView = new DataView("div.thumb-wrap") {
 
public void prepareData(Data data) {
data.setProperty("shortName", Format.ellipsis(data
.getProperty("num_image"), 15));
165,7 → 155,7
}
};
dView.setTpl(template);
 
// parametre d'affichage de la dataview
this.setAutoScroll(true);
dView.setAutoHeight(true);
172,8 → 162,7
dView.setMultiSelect(true);
dView.setOverCls("x-view-over");
dView.setEmptyText("Aucune image à afficher");
 
// creation du store
FieldDef defNumImage = new IntegerFieldDef("num_image");
FieldDef defDatImage = new StringFieldDef("dat_image");
182,72 → 171,41
FieldDef defUrlImageS = new StringFieldDef("url_image_S");
FieldDef defUrlImageM = new StringFieldDef("url_image_M");
FieldDef defUrlImage = new StringFieldDef("url_image");
FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImageS,defUrlImageM,defUrlImage};
RecordDef rd = new RecordDef(defTab) ;
st = new Store(rd) ;
FieldDef[] defTab = { defNumImage, defDatImage, defLieImage,
defAppImage, defUrlImageS, defUrlImageM, defUrlImage };
RecordDef rd = new RecordDef(defTab);
st = new Store(rd);
dView.setStore(st);
 
this.getDView().setLoadingText("chargement");
 
// ajouts de la gestion des evenements pour la dataview
ajouterListenersDataView();
this.add(dView);
getIMediateur().obtenirPhotoGalerie(this);
}
public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) {
if(nouvelleDonnees instanceof Store)
{
st = (Store)nouvelleDonnees;
st.load() ;
dView.setStore(st);
dView.refresh();
}
if(repandreRafraichissement)
{
getIMediateur().synchroniserDonneesZoomListeGalerie(nouvelleDonnees, this) ;
}
}
 
this.add(dView);
 
public ImageMediateur getIMediateur() {
return iMediateur;
getIMediateur().obtenirPhotoGalerie(this);
}
 
public void rafraichir(Object nouvelleDonnees,
boolean repandreRafraichissement) {
 
public DataView getDView() {
return dView;
}
if (nouvelleDonnees instanceof Store) {
st = (Store) nouvelleDonnees;
st.load();
dView.setStore(st);
dView.refresh();
}
 
 
public Store getSt() {
return st;
}
public String[] getIdSelectionnees()
{
Record[] selection = getDView().getSelectedRecords() ;
int taille = selection.length ;
String id_selection[] = new String[taille] ;
for (int i = 0; i < selection.length; i++) {
id_selection[i] = selection[i].getAsString("num_image") ;
if (repandreRafraichissement) {
getIMediateur().synchroniserDonneesZoomListeGalerie(
nouvelleDonnees, this);
}
return id_selection ;
}
 
public void selectionnerImages(int[] ids) {
 
public void selectionnerImages(int[] ids) {
getDView().select(ids) ;
getDView().select(ids);
 
}
}
/trunk/src/org/tela_botanica/client/vues/ListeImageVue.java
1,7 → 1,5
 
package org.tela_botanica.client.vues;
 
 
import java.util.Iterator;
 
import org.tela_botanica.client.image.ImageMediateur;
10,7 → 8,6
import org.tela_botanica.client.modeles.ImageCarnet;
import org.tela_botanica.client.modeles.ListeImageCarnet;
 
 
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.user.client.Window;
import com.gwtext.client.core.EventObject;
50,65 → 47,62
 
/**
* Liste d'image composée de miniatures et d'information sur l'image
*
* @author aurelien
*
*/
public class ListeImageVue extends GridPanel implements Rafraichissable, VueListable {
public class ListeImageVue extends GridPanel implements Rafraichissable,
VueListable {
 
// instance du médiateur
private ImageMediateur iMediateur = null;
private ColumnConfig numImage ;
private ColumnConfig urlImage ;
private ColumnConfig lieImage ;
private ColumnConfig datImage ;
private ColumnConfig appImage ;
private ColumnModel modeleColonnes ;
private boolean estInstancie = false ;
private ImageMediateur iMediateur = null;
 
private ColumnConfig numImage;
private ColumnConfig urlImage;
private ColumnConfig lieImage;
private ColumnConfig datImage;
private ColumnConfig appImage;
private ColumnModel modeleColonnes;
 
private boolean estInstancie = false;
 
// données locales
// store qui gère les données de la liste d'images
private Store st = null ;
private ColumnConfig cl = null ;
private Store st = null;
private ColumnConfig cl = null;
 
public ListeImageVue(ImageMediateur im) {
super() ;
this.setId("listeImageGrid") ;
this.iMediateur = im ;
numImage = new ColumnConfig("numéro","num_image",100,true);
datImage = new ColumnConfig("date","dat_image",120,true);
lieImage = new ColumnConfig("lieu","lie_image",120,true);
appImage = new ColumnConfig("appareil","app_image",200,true);
urlImage = new ColumnConfig("Image","url_image_S",200,true,new Renderer() {
 
public String render(Object value, CellMetadata cellMetadata,
Record record, int rowIndex, int colNum, Store store) {
super();
 
String ImgUrl = record.getAsString("url_image_S");
String ImgNum = record.getAsString("num_image");
return "<div class=\"img-list\"> <img src=\""+ImgUrl+"\" title='"+ImgNum+"'> </div>";
}
this.setId("listeImageGrid");
 
});
ColumnConfig[] cm = {numImage,datImage,lieImage,appImage,urlImage};
this.iMediateur = im;
 
numImage = new ColumnConfig("numéro", "num_image", 100, true);
datImage = new ColumnConfig("date", "dat_image", 120, true);
lieImage = new ColumnConfig("lieu", "lie_image", 120, true);
appImage = new ColumnConfig("appareil", "app_image", 200, true);
urlImage = new ColumnConfig("Image", "url_image_S", 200, true,
new Renderer() {
 
public String render(Object value,
CellMetadata cellMetadata, Record record,
int rowIndex, int colNum, Store store) {
 
String ImgUrl = record.getAsString("url_image_S");
String ImgNum = record.getAsString("num_image");
return "<div class=\"img-list\"> <img src=\"" + ImgUrl
+ "\" title='" + ImgNum + "'> </div>";
}
 
});
 
ColumnConfig[] cm = { numImage, datImage, lieImage, appImage, urlImage };
modeleColonnes = new ColumnModel(cm);
this.setColumnModel(modeleColonnes);
this.setAutoScroll(true);
this.setAutoWidth(true);
 
// creation du store
FieldDef defNumImage = new IntegerFieldDef("num_image");
FieldDef defDatImage = new StringFieldDef("dat_image");
117,188 → 111,157
FieldDef defUrlImageS = new StringFieldDef("url_image_S");
FieldDef defUrlImageM = new StringFieldDef("url_image_M");
FieldDef defUrlImage = new StringFieldDef("url_image");
FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImageS,defUrlImageM,defUrlImage};
RecordDef rd = new RecordDef(defTab) ;
st = new Store(rd) ;
FieldDef[] defTab = { defNumImage, defDatImage, defLieImage,
defAppImage, defUrlImageS, defUrlImageM, defUrlImage };
RecordDef rd = new RecordDef(defTab);
st = new Store(rd);
this.setStore(st);
this.getView().setAutoFill(true) ;
//this.setLoadMask(true) ;
this.setLoadMask("chargement") ;
ajouterListeners() ;
this.getView().setAutoFill(true);
 
// this.setLoadMask(true) ;
this.setLoadMask("chargement");
 
ajouterListeners();
 
}
public void ajouterListeners()
{
 
public void ajouterListeners() {
this.addListener(new ContainerListenerAdapter() {
 
public void onHide(Component component) {
// TODO Auto-generated method stub
 
}
 
public void onRender(Component component) {
 
if(!isEstInstancie())
{
setEstInstancie(true) ;
getIMediateur().synchroniserSelection("galerie") ;
if (!isEstInstancie()) {
setEstInstancie(true);
getIMediateur().synchroniserSelection("galerie");
}
}
 
public void onShow(Component component) {
 
}
 
});
 
this.addGridRowListener(new GridRowListener() {
 
public void onRowClick(GridPanel grid, int rowIndex, EventObject e) {
 
public void onRowClick(GridPanel grid, int rowIndex, EventObject e) {
;
getIMediateur().clicListeImage(rowIndex) ;
getIMediateur().clicListeImage(rowIndex);
}
 
public void onRowContextMenu(GridPanel grid, int rowIndex,
EventObject e) {
getIMediateur().montrerContextMenu(e) ;
 
getIMediateur().montrerContextMenu(e);
}
 
public void onRowDblClick(GridPanel grid, int rowIndex,
EventObject e) {
 
getIMediateur().doubleClicListeImage(rowIndex) ;
getIMediateur().doubleClicListeImage(rowIndex);
}
});
 
this.getSelectionModel().addListener(new RowSelectionListenerAdapter() {
 
public void onSelectionChange(RowSelectionModel sm) {
if(sm.getCount() <= 0)
{
getIMediateur().aucuneSelection() ;
}
else
{
getIMediateur().selection() ;
 
if (sm.getCount() <= 0) {
getIMediateur().aucuneSelection();
} else {
getIMediateur().selection();
getIMediateur().synchroniserSelection("liste");
}
}
});
}
public String[] getIdSelectionnees()
{
Record[] selection = this.getSelectionModel().getSelections() ;
int taille = selection.length ;
String id_selection[] = new String[taille] ;
for (int i = 0; i < selection.length; i++) {
id_selection[i] = selection[i].getAsString("num_image") ;
}
return id_selection ;
 
public ColumnConfig getCl() {
return cl;
}
 
public String[] getIdSelectionnees() {
Record[] selection = this.getSelectionModel().getSelections();
int taille = selection.length;
String id_selection[] = new String[taille];
 
public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) {
if(nouvelleDonnees instanceof Store)
{
st = (Store)nouvelleDonnees;
st.load();
this.reconfigure(st, this.getColumnModel());
for (int i = 0; i < selection.length; i++) {
 
id_selection[i] = selection[i].getAsString("num_image");
}
if(repandreRafraichissement)
{
getIMediateur().synchroniserDonneesZoomListeGalerie(nouvelleDonnees, this) ;
}
 
return id_selection;
}
 
 
public ImageMediateur getIMediateur() {
return iMediateur;
}
 
public ColumnModel getModeleColonnes() {
return modeleColonnes;
}
 
public ColumnConfig getNumImage() {
return numImage;
}
 
public Store getSt() {
return st;
}
 
public ColumnConfig getUrlImage() {
return urlImage;
}
 
 
public ColumnModel getModeleColonnes() {
return modeleColonnes;
/**
* @return the estInstancie
*/
public boolean isEstInstancie() {
return estInstancie;
}
 
public void rafraichir(Object nouvelleDonnees,
boolean repandreRafraichissement) {
 
public Store getSt() {
return st;
}
if (nouvelleDonnees instanceof Store) {
 
st = (Store) nouvelleDonnees;
st.load();
this.reconfigure(st, this.getColumnModel());
}
 
public ColumnConfig getCl() {
return cl;
if (repandreRafraichissement) {
getIMediateur().synchroniserDonneesZoomListeGalerie(
nouvelleDonnees, this);
}
}
 
public void selectionnerEnregistrements(Record[] sel) {
 
/**
* @return the estInstancie
*/
public boolean isEstInstancie() {
return estInstancie;
if (isEstInstancie()) {
getSelectionModel().clearSelections();
getSelectionModel().selectRecords(sel);
}
}
 
 
/**
* @param estInstancie the estInstancie to set
* @param estInstancie
* the estInstancie to set
*/
public void setEstInstancie(boolean estInstancie) {
this.estInstancie = estInstancie;
}
 
 
/**
* @param mediateur the iMediateur to set
* @param mediateur
* the iMediateur to set
*/
public void setIMediateur(ImageMediateur mediateur) {
iMediateur = mediateur;
}
 
public void selectionnerEnregistrements(Record[] sel) {
if(isEstInstancie())
{
getSelectionModel().clearSelections() ;
getSelectionModel().selectRecords(sel) ;
}
}
 
}
/trunk/src/org/tela_botanica/client/vues/ArbreMotsClesVue.java
New file
0,0 → 1,256
package org.tela_botanica.client.vues;
 
import java.util.HashMap;
 
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.MotsClesAsynchroneDAO;
 
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.user.client.Window;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.data.Node;
import com.gwtext.client.data.NodeTraversalCallback;
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.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.ButtonListener;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.event.EditorListener;
import com.gwtext.client.widgets.form.TextField;
import com.gwtext.client.widgets.layout.RowLayout;
import com.gwtext.client.widgets.layout.RowLayoutData;
import com.gwtext.client.widgets.menu.Menu;
import com.gwtext.client.widgets.tree.DropNodeCallback;
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.TreePanelListener;
import com.gwtext.client.widgets.tree.event.TreePanelListenerAdapter;
 
public class ArbreMotsClesVue extends Panel implements Rafraichissable {
 
private ImageMediateur iMediateur = null ;
private TreePanel arbreMotsCles = null ;
private TreeEditor te = null ;
private TextField tfEdit = null ;
private Button valider = null ;
private String motsClesEnCours = "" ;
public ArbreMotsClesVue(ImageMediateur im)
{
super("Mots clés") ;
this.setLayout(new RowLayout());
iMediateur = im ;
arbreMotsCles = new TreePanel() ;
arbreMotsCles.setEnableDD(true) ;
TreeNode root = new TreeNode("Mots clés") ;
root.setId("racine") ;
String[] usObject = {"Mots clés" , "racine" } ;
root.setUserObject(usObject) ;
arbreMotsCles.setRootNode(root) ;
arbreMotsCles.setRootVisible(true) ;
arbreMotsCles.getRootNode().setIcon("tela.png") ;
tfEdit = new TextField() ;
te = new TreeEditor(arbreMotsCles,tfEdit) ;
valider = new Button("OK") ;
arbreMotsCles.add(te) ;
this.add(arbreMotsCles,new RowLayoutData("90%")) ;
this.add(valider,new RowLayoutData("10%")) ;
ajouterListeners() ;
}
private ImageMediateur GetIMediateur() {
return iMediateur ;
}
/**
* @return the arbreMotsCles
*/
public TreePanel getArbreMotsCles() {
return arbreMotsCles;
}
 
/**
* @return the te
*/
public TreeEditor getTe() {
return te;
}
 
/**
* @return the tfEdit
*/
public TextField getTfEdit() {
return tfEdit;
}
public void ajouterListeners()
{
arbreMotsCles.addListener(new TreePanelListenerAdapter() {
public void onClick(TreeNode node, EventObject e) {
gererClicNoeud(node);
}
 
public void onContextMenu(TreeNode node, EventObject e) {
e.stopEvent() ;
GetIMediateur().montrerContextMenuArbre(node, e , getTe()) ;
}
public void onDblClick(TreeNode node, EventObject e) {
te.startEdit(node);
}
public void onTextChange(TreeNode node, String text, String oldText) {
String[] usObject = new String[2] ;
usObject[0] = text ;
usObject[1] = ((String[])node.getUserObject())[1] ;
node.setUserObject(usObject) ;
}
public void onCheckChange(TreeNode node, boolean checked) {
if(checked)
{
node.bubble(new NodeTraversalCallback() {
public boolean execute(Node node)
{
TreeNode tn = getArbreMotsCles().getNodeById(node.getId()) ;
tn.getUI().toggleCheck(true) ;
return true ;
}
}) ;
}
}
}) ;
valider.addListener(new ButtonListenerAdapter() {
 
public void onClick(Button button, EventObject e) {
motsClesEnCours = "" ;
getArbreMotsCles().getRootNode().cascade(new NodeTraversalCallback() {
public boolean execute(Node node) {
TreeNode tn = getArbreMotsCles().getNodeById(node.getId()) ;
 
String[] usObject = (String[])tn.getUserObject() ;
GetIMediateur().mettreAjourMotsClesId(usObject[0],usObject[1]) ;
if(tn.getUI().isChecked())
{
motsClesEnCours += usObject[1]+"," ;
}
return true ;
}
});
GetIMediateur().mettreAjourMotsCles(motsClesEnCours) ;
}
}) ;
}
public void supprimerNoeud(TreeNode n)
{
n.getParentNode().removeChild(n);
n.destroy() ;
}
public void ajouterNoeud(TreeNode parent)
{
TreeNode nd = new TreeNode("");
nd.setIcon("tela.png") ;
nd.setChecked(true);
String[] usObject = new String[2] ;
usObject[0] = "" ;
usObject[1] = Integer.toString(nd.hashCode()) ;
nd.setId(usObject[1]) ;
nd.setUserObject(usObject) ;
parent.appendChild(nd);
parent.expand();
te.startEdit(nd);
}
public void gererClicNoeud(TreeNode node)
{
if(node.getUI().isChecked())
{
node.setChecked(false) ;
}
else
{
node.setChecked(true) ;
}
}
public void cocherMotsCles(final String[] motsClesIds)
{
getArbreMotsCles().getRootNode().cascade(new NodeTraversalCallback() {
 
public boolean execute(Node node) {
for(int i = 0 ; i < motsClesIds.length ; i++)
{
String usObject[] = (String[])node.getUserObject() ;
String nodeId = usObject[1] ;
getArbreMotsCles().getNodeById(node.getId()).getUI().toggleCheck(false) ;
if(nodeId.equals(motsClesIds[i]))
{
getArbreMotsCles().getNodeById(nodeId).getUI().toggleCheck(true) ;
return true ;
}
}
return true;
}
}) ;
}
public void rafraichir(Object nouvelleDonnees,
boolean repandreRaffraichissement) {
if(nouvelleDonnees instanceof Tree)
{
Tree nouvelArbre = (Tree)nouvelleDonnees ;
getArbreMotsCles().setRootNode(nouvelArbre.getRootNode()) ;
}
if(nouvelleDonnees instanceof String[])
{
String[] motsClesIds = (String[])nouvelleDonnees ;
cocherMotsCles(motsClesIds) ;
}
}
 
}
/trunk/src/org/tela_botanica/client/modeles/MotsClesAsynchroneDAO.java
New file
0,0 → 1,5
package org.tela_botanica.client.modeles;
 
public class MotsClesAsynchroneDAO {
 
}
/trunk/src/org/tela_botanica/client/modeles/ImageCarnet.java
214,6 → 214,11
return metaGen ;
}
public String getMotsCles() {
return renvoyerValeurCorrecte("ci_meta_mots_cles") ;
}
public void miseAJourInfoGenerales(String commentaires, String date)
{
put("ci_meta_comment",commentaires) ;
220,4 → 225,10
put("ci_meta_date",date) ;
}
 
public void mettreAjourMotsCles(String motsClesEnCours) {
put("ci_meta_mots_cles",motsClesEnCours) ;
}
}
/trunk/src/org/tela_botanica/client/modeles/ListeImageAsynchroneDAO.java
88,8 → 88,6
ImageCarnet enCours = (ImageCarnet)li.get(listIt.next()) ;
System.out.println(enCours.toString()+"\n");
for(Iterator imgIt = enCours.keySet().iterator();imgIt.hasNext();)
{
String key = (String)imgIt.next() ;
99,7 → 97,6
}
//System.out.println(postData);
HTTPRequest.asyncPost("jrest/inventoryImage/0/", postData, new ResponseTextHandler() {
public void onCompletion(String responseText) {