/trunk/src/org/tela_botanica/client/vues/ArbreMotsClesVue.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/vues/ListeImageVue.java |
---|
1,5 → 1,7 |
package org.tela_botanica.client.vues; |
import java.util.Iterator; |
import org.tela_botanica.client.image.ImageMediateur; |
8,6 → 10,7 |
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; |
47,62 → 50,65 |
/** |
* 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() { |
super(); |
public String render(Object value, CellMetadata cellMetadata, |
Record record, int rowIndex, int colNum, Store store) { |
this.setId("listeImageGrid"); |
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.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 }; |
}); |
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"); |
111,157 → 117,188 |
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) { |
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 ColumnConfig getCl() { |
return cl; |
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 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"); |
public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) { |
if(nouvelleDonnees instanceof Store) |
{ |
st = (Store)nouvelleDonnees; |
st.load(); |
this.reconfigure(st, this.getColumnModel()); |
} |
return id_selection; |
if(repandreRafraichissement) |
{ |
getIMediateur().synchroniserDonneesZoomListeGalerie(nouvelleDonnees, this) ; |
} |
} |
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; |
} |
/** |
* @return the estInstancie |
*/ |
public boolean isEstInstancie() { |
return estInstancie; |
public ColumnModel getModeleColonnes() { |
return modeleColonnes; |
} |
public void rafraichir(Object nouvelleDonnees, |
boolean repandreRafraichissement) { |
if (nouvelleDonnees instanceof Store) { |
public Store getSt() { |
return st; |
} |
st = (Store) nouvelleDonnees; |
st.load(); |
this.reconfigure(st, this.getColumnModel()); |
} |
if (repandreRafraichissement) { |
getIMediateur().synchroniserDonneesZoomListeGalerie( |
nouvelleDonnees, this); |
} |
public ColumnConfig getCl() { |
return cl; |
} |
public void selectionnerEnregistrements(Record[] sel) { |
if (isEstInstancie()) { |
getSelectionModel().clearSelections(); |
getSelectionModel().selectRecords(sel); |
} |
/** |
* @return the estInstancie |
*/ |
public boolean isEstInstancie() { |
return estInstancie; |
} |
/** |
* @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/PanneauMetadonneesVue.java |
---|
47,8 → 47,10 |
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 ; |
64,8 → 66,13 |
panneauExifGrid = new Panel("Exif") ; |
panneauIptcGrid = new Panel("Iptc") ; |
panneauInfoGrid = new Panel("info") ; |
panneauMotsCles = new ArbreMotsClesVue(im) ; |
panneauMotsCles = new TreePanel("Mots clés") ; |
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 :") ; |
195,11 → 202,4 |
} |
} |
/** |
* @return the panneauMotsCles |
*/ |
public ArbreMotsClesVue getPanneauMotsCles() { |
return panneauMotsCles; |
} |
} |
/trunk/src/org/tela_botanica/client/vues/GalerieImageVue.java |
---|
1,154 → 1,164 |
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) { |
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 |
//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) { |
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)); |
155,7 → 165,7 |
} |
}; |
dView.setTpl(template); |
// parametre d'affichage de la dataview |
this.setAutoScroll(true); |
dView.setAutoHeight(true); |
162,7 → 172,8 |
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"); |
171,41 → 182,72 |
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); |
getIMediateur().obtenirPhotoGalerie(this); |
public ImageMediateur getIMediateur() { |
return iMediateur; |
} |
public void rafraichir(Object nouvelleDonnees, |
boolean repandreRafraichissement) { |
if (nouvelleDonnees instanceof Store) { |
st = (Store) nouvelleDonnees; |
st.load(); |
dView.setStore(st); |
dView.refresh(); |
} |
public DataView getDView() { |
return dView; |
} |
if (repandreRafraichissement) { |
getIMediateur().synchroniserDonneesZoomListeGalerie( |
nouvelleDonnees, this); |
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") ; |
} |
return id_selection ; |
} |
public void selectionnerImages(int[] ids) { |
getDView().select(ids); |
getDView().select(ids) ; |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/MotsClesAsynchroneDAO.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/ImageCarnet.java |
---|
214,11 → 214,6 |
return metaGen ; |
} |
public String getMotsCles() { |
return renvoyerValeurCorrecte("ci_meta_mots_cles") ; |
} |
public void miseAJourInfoGenerales(String commentaires, String date) |
{ |
put("ci_meta_comment",commentaires) ; |
225,10 → 220,4 |
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,6 → 88,8 |
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() ; |
97,6 → 99,7 |
} |
//System.out.println(postData); |
HTTPRequest.asyncPost("jrest/inventoryImage/0/", postData, new ResponseTextHandler() { |
public void onCompletion(String responseText) { |