/trunk/src/org/tela_botanica/client/modeles/ImageAsynchroneDAO.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/ListeImageCarnet.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/modeles/ImageCarnet.java |
---|
15,6 → 15,69 |
*/ |
public class ImageCarnet extends HashMap { |
/* |
// infos sur l'image |
private String url = " " ; |
private String ordre = " " ; |
private String utilisateur = " " ; |
private boolean publiable = false ; |
private String height = "0" ; |
private String width = "0" ; |
private String make = " " ; |
private String model = " " ; |
private String xResolution = "0" ; |
private String yResolution = "0" ; |
private String date = " " ; |
private String GPS = " " ; |
private String comment = " " ; |
// metadonnees exif |
private String exifExposureTime = " " ; |
private String exifFNumber = " " ; |
private String exifVersion = " " ; |
private String exifCompressedBitsPerPixel = " " ; |
private String exifShutterSpeedValue = " " ; |
private String exifApertureValue = " " ; |
private String exifExposureBiasValue = " " ; |
private String exifMaxApertureValue = " " ; |
private String exifMeteringMode = " " ; |
private String exifLightSource = " " ; |
private String exifFlash = " " ; |
private String exifFocalLength = " " ; |
private String exifFlashPixVersion = " " ; |
private String exifColorSpace = " " ; |
private String exifInteroperabilityOffset = " " ; |
private String exifFocalPlaneXResolution = " " ; |
private String exifFocalPlaneYResolution = " " ; |
private String exifFocalPlaneResolutionUnit = " " ; |
private String exifSensingMethod = " " ; |
private String exifFileSource = " " ; |
private String exifCustomRendered = " " ; |
private String exifExposureMode = " " ; |
private String exifWhiteBalance = " " ; |
private String exifDigitalZoomRatio = " " ; |
private String exifSceneCaptureType = " " ; |
private String exifGainControl = " " ; |
private String exifContrast = " " ; |
private String exifSaturation = " " ; |
private String exifSharpness = " " ; |
private String exifSubjectDistanceRange = " " ; |
private String exifAutres = " " ; |
// metadonnes iptc |
private String iptcMotsCles = " " ; |
private String iptcByLine = " " ; |
private String iptcByLineTitle = " " ; |
private String iptcCity = " " ; |
private String iptcSubLocation = " " ; |
private String iptcProvinceState = " " ; |
private String iptcCountryPrimaryLocationCode = " " ; |
private String iptcHeadline = " " ; |
private String iptcCredit = " " ; |
private String iptcCopyrightNotice = " " ; |
private String iptcContact = " " ; |
private String iptcAutres = " " ; |
*/ |
public ImageCarnet(JSONObject image) |
{ |
63,26 → 126,19 |
String valeur = (String)this.get(cle) ; |
if(valeur.equals("null")) |
{ |
return "null" ; |
return " " ; |
} |
else |
{ |
char nullChar = '\u0000' ; |
String sNull = ""+nullChar ; |
valeur = valeur.replaceAll(sNull, "") ; |
return valeur ; |
} |
} |
else |
{ |
return "null" ; |
return " " ; |
} |
} |
public String getId() { |
return renvoyerValeurCorrecte("ci_id_image") ; |
} |
public String getOrdre() { |
216,8 → 272,14 |
public void miseAJourInfoGenerales(String commentaires, String date) |
{ |
if(this.containsKey("ci_meta_comment")) |
{ |
put("ci_meta_comment",commentaires) ; |
} |
if(this.containsKey("ci_meta_date")) |
{ |
put("ci_meta_date",date) ; |
} |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/ListeImageAsynchroneDAO.java |
---|
12,7 → 12,6 |
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.ArrayReader; |
import com.gwtext.client.data.FieldDef; |
import com.gwtext.client.data.MemoryProxy; |
40,7 → 39,7 |
HTTPRequest.asyncGet("jrest/inventoryImageList/1/ci_publiable_eflore=0", new ResponseTextHandler() { |
public void onCompletion(String responseText) { |
final ListeImageCarnet photoData ; |
final ListeImage photoData ; |
final JSONValue responseValue = JSONParser.parse(responseText); |
if (responseValue.isArray() != null) { |
48,7 → 47,7 |
final JSONArray reponse = responseValue.isArray(); |
final int taillemax = reponse.size(); |
photoData = new ListeImageCarnet(taillemax); |
photoData = new ListeImage(taillemax); |
for (int j = 0; j < taillemax ; j++) { |
65,13 → 64,13 |
{ |
if(responseValue.isObject() != null) |
{ |
photoData = new ListeImageCarnet(1); |
photoData = new ListeImage(1); |
ImageCarnet im = new ImageCarnet(responseValue.isObject()) ; |
photoData.put(im.getOrdre(),im) ; |
} |
else |
{ |
photoData = new ListeImageCarnet(0) ; |
photoData = null ; |
} |
} |
80,57 → 79,14 |
}); |
} |
public void SynchroniserBaseDeDonnees(ListeImageCarnet li) |
public void SynchroniserBaseDeDonnees(ListeImage li) |
{ |
for(Iterator listIt = li.keySet().iterator() ; listIt.hasNext() ;) |
for(Iterator it = li.keySet().iterator() ; it.hasNext() ;) |
{ |
String postData = "" ; |
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() ; |
String valeur = enCours.renvoyerValeurCorrecte(key) ; |
valeur.replaceAll("'", "\'") ; |
postData += "&"+key+"="+enCours.renvoyerValeurCorrecte(key) ; |
} |
//System.out.println(postData); |
HTTPRequest.asyncPost("jrest/inventoryImage/0/", postData, new ResponseTextHandler() { |
public void onCompletion(String responseText) { |
} |
}) ; |
// HTTPRequest.asyncPost("jrest/inventoryImageList/1/", postData, handler) |
} |
} |
public void supprimerBaseDeDonnees(String[] ids) |
{ |
String postData = "" ; |
postData += "&action=DELETE" ; |
String uid = "" ; |
for (int i = 0; i < ids.length; i++) { |
uid += ids[i]+"," ; |
} |
HTTPRequest.asyncPost("jrest/inventoryImageList/0/"+uid, postData, new ResponseTextHandler() { |
public void onCompletion(String responseText) { |
iMediateur.rafraichirToutesVues() ; |
} |
}) ; |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/ListeImage.java |
---|
New file |
0,0 → 1,36 |
package org.tela_botanica.client.modeles; |
import java.util.HashMap; |
import java.util.Vector; |
/** |
* vecteur composé d'ImageCarnet, renvoyé par les objets de type DAO |
* pour les images |
* @author aurelien |
* |
*/ |
public class ListeImage extends HashMap { |
public ListeImage() |
{ |
super(); |
} |
public ListeImage(int taille) |
{ |
super(taille); |
} |
public ListeImage(ImageCarnet[] ic) |
{ |
super() ; |
for (int i = 0; i < ic.length; i++) |
{ |
if(ic[i] != null && ic[i] instanceof ImageCarnet) |
{ |
this.put(ic[i].getOrdre(),ic[i]); |
} |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/BarreOutilsVue.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/vues/ListeImageVue.java |
---|
11,7 → 11,6 |
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; |
import com.gwtext.client.data.ArrayReader; |
23,11 → 22,7 |
import com.gwtext.client.data.Store; |
import com.gwtext.client.data.StoreMgr; |
import com.gwtext.client.data.StringFieldDef; |
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.event.ComponentListenerAdapter; |
import com.gwtext.client.widgets.event.ContainerListener; |
import com.gwtext.client.widgets.event.ContainerListenerAdapter; |
import com.gwtext.client.widgets.event.PanelListener; |
38,12 → 33,9 |
import com.gwtext.client.widgets.grid.GridPanel; |
import com.gwtext.client.widgets.grid.GridView; |
import com.gwtext.client.widgets.grid.Renderer; |
import com.gwtext.client.widgets.grid.RowSelectionModel; |
import com.gwtext.client.widgets.grid.event.GridCellListener; |
import com.gwtext.client.widgets.grid.event.GridListener; |
import com.gwtext.client.widgets.grid.event.GridRowListener; |
import com.gwtext.client.widgets.grid.event.RowSelectionListener; |
import com.gwtext.client.widgets.grid.event.RowSelectionListenerAdapter; |
import com.gwtext.client.widgets.layout.AnchorLayout; |
import com.gwtext.client.widgets.layout.FitLayout; |
import com.gwtextux.client.data.BufferedStore; |
109,32 → 101,45 |
this.setAutoWidth(true); |
// creation du store |
FieldDef defNumImage = new IntegerFieldDef("num_image"); |
FieldDef defNumImage = new StringFieldDef("num_image"); |
FieldDef defDatImage = new StringFieldDef("dat_image"); |
FieldDef defLieImage = new StringFieldDef("lie_image"); |
FieldDef defAppImage = new StringFieldDef("app_image"); |
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}; |
FieldDef defUrlImage = new StringFieldDef("url_imag"); |
FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImageS,defUrlImage}; |
RecordDef rd = new RecordDef(defTab) ; |
st = new Store(rd) ; |
this.setStore(st); |
this.getView().setAutoFill(true) ; |
//this.setLoadMask(true) ; |
this.setLoadMask(true) ; |
this.setLoadMask("chargement") ; |
ajouterListeners() ; |
} |
// role : configurer les colonnes affichées dans la grille |
private void initialiser() { |
getIMediateur().obtenirPhotoGalerie(this); |
estInstancie = true ; |
} |
public void ajouterListeners() |
{ |
{ |
this.addListener(new ContainerListenerAdapter() { |
public boolean doBeforeRender(Component component) |
{ |
initialiser(); |
return true ; |
} |
public void onHide(Component component) { |
// TODO Auto-generated method stub |
141,22 → 146,16 |
} |
public void onRender(Component component) { |
if(!isEstInstancie()) |
{ |
setEstInstancie(true) ; |
getIMediateur().synchroniserSelection("galerie") ; |
} |
// TODO Auto-generated method stub |
} |
public void onShow(Component component) { |
} |
}); |
164,44 → 163,25 |
public void onRowClick(GridPanel grid, int rowIndex, EventObject e) { |
; |
getIMediateur().clicListeImage(rowIndex) ; |
getIMediateur().clicListeImage(rowIndex, e) ; |
} |
public void onRowContextMenu(GridPanel grid, int rowIndex, |
EventObject e) { |
// TODO Auto-generated method stub |
getIMediateur().montrerContextMenu(e) ; |
} |
public void onRowDblClick(GridPanel grid, int rowIndex, |
EventObject e) { |
getIMediateur().doubleClicListeImage(rowIndex) ; |
getIMediateur().doubleClicListeImage(rowIndex, e) ; |
} |
}); |
this.getSelectionModel().addListener(new RowSelectionListenerAdapter() { |
public void onSelectionChange(RowSelectionModel sm) { |
if(sm.getCount() <= 0) |
{ |
getIMediateur().aucuneSelection() ; |
} |
else |
{ |
getIMediateur().selection() ; |
getIMediateur().synchroniserSelection("liste"); |
} |
} |
}); |
} |
222,17 → 202,45 |
public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) { |
if(nouvelleDonnees instanceof Store) |
if(nouvelleDonnees instanceof ListeImageCarnet && estInstancie) |
{ |
ListeImageCarnet data = (ListeImageCarnet) nouvelleDonnees ; |
Object[][] photoData = new Object[data.size()][6]; |
int i = 0 ; |
for (Iterator it = data.keySet().iterator(); it.hasNext();) |
{ |
ImageCarnet im = (ImageCarnet) data.get(it.next()); |
photoData[i][0] = im.getOrdre() ; |
photoData[i][1] = im.getDate() ; |
photoData[i][2] = im.getIptcCity() ; |
photoData[i][3] = im.getMake()+" "+im.getModel() ; |
photoData[i][4] = im.getSUrl() ; |
photoData[i][5] = im.getUrl() ; |
i++ ; |
} |
FieldDef defNumImage = new IntegerFieldDef("num_image"); |
FieldDef defDatImage = new StringFieldDef("dat_image"); |
FieldDef defLieImage = new StringFieldDef("lie_image"); |
FieldDef defAppImage = new StringFieldDef("app_image"); |
FieldDef defUrlImage = new StringFieldDef("url_image_S"); |
FieldDef defUrlImageL = new StringFieldDef("url_image"); |
FieldDef[] defTab = {defNumImage,defDatImage,defLieImage,defAppImage,defUrlImage,defUrlImageL}; |
st = (Store)nouvelleDonnees; |
st.load(); |
final MemoryProxy dataProxy = new MemoryProxy(photoData); |
final ArrayReader reader = new ArrayReader(new RecordDef(defTab)); |
final Store photoStore = new Store(dataProxy, reader); |
st = photoStore; |
this.reconfigure(st, this.getColumnModel()); |
photoStore.load(); |
} |
if(repandreRafraichissement) |
{ |
getIMediateur().synchroniserDonneesZoomListeGalerie(nouvelleDonnees, this) ; |
getIMediateur().synchroniserZoomListeGalerie(nouvelleDonnees, this) ; |
} |
} |
265,39 → 273,6 |
public ColumnConfig getCl() { |
return cl; |
} |
/** |
* @return the estInstancie |
*/ |
public boolean isEstInstancie() { |
return estInstancie; |
} |
/** |
* @param estInstancie the estInstancie to set |
*/ |
public void setEstInstancie(boolean estInstancie) { |
this.estInstancie = estInstancie; |
} |
/** |
* @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/MenuImageVue.java |
---|
4,7 → 4,6 |
import com.google.gwt.user.client.ui.MenuItem; |
import com.gwtext.client.core.EventObject; |
import com.gwtext.client.widgets.Toolbar; |
import com.gwtext.client.widgets.menu.BaseItem; |
import com.gwtext.client.widgets.menu.Item; |
import com.gwtext.client.widgets.menu.Menu; |
25,9 → 24,8 |
iMediateur = im ; |
uploaderImage = new Item("Uploader des images") ; |
supprimerImage = new Item("Supprimer les images selectionnées") ; |
addItem(uploaderImage); |
addItem(supprimerImage) ; |
//this.addItem(supprimerImage) ; |
ajouterListeners() ; |
65,17 → 63,11 |
if(item.equals(uploaderImage)) |
{ |
getIMediateur().uploaderImages() ; |
getIMediateur().uploaderImage() ; |
hide() ; |
} |
if(item.equals(supprimerImage)) |
{ |
getIMediateur().supprimerImages() ; |
hide() ; |
} |
} |
/trunk/src/org/tela_botanica/client/vues/ZoomImageVue.java |
---|
40,7 → 40,7 |
image.sinkEvents(Event.ONDBLCLICK); |
image.setUrl("vide.jpg"); |
image.setUrl("image/vide.jpg"); |
this.setLayout(new BorderLayout()); |
61,26 → 61,10 |
{ |
getImage().setUrl((String)nouvelleDonnees); |
} |
else |
{ |
getImage().setUrl("/images/vide.jpeg") ; |
} |
} |
public void desactiverPanneau() |
{ |
getImage().setUrl("/images/vide.jpeg") ; |
prev.setEnabled(false) ; |
suiv.setEnabled(false); |
} |
public void activerPanneau() |
{ |
prev.setEnabled(true); |
suiv.setEnabled(true); |
} |
public void ajouterListenersBoutons() |
{ |
prev.addClickListener(new ClickListener() { |
/trunk/src/org/tela_botanica/client/vues/PanneauMetadonneesVue.java |
---|
1,7 → 1,6 |
package org.tela_botanica.client.vues; |
import java.util.Date; |
import java.util.HashMap; |
import org.tela_botanica.client.image.ImageMediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
31,8 → 30,6 |
import com.gwtext.client.widgets.layout.VerticalLayout; |
import com.gwtext.client.widgets.menu.DateItem; |
import com.gwtext.client.widgets.menu.Menu; |
import com.gwtext.client.widgets.tree.TreeNode; |
import com.gwtext.client.widgets.tree.TreePanel; |
public class PanneauMetadonneesVue extends TabPanel implements Rafraichissable { |
48,9 → 45,6 |
private Panel panneauIptcGrid = null ; |
private Panel panneauInfoGrid = null ; |
private TreePanel panneauMotsCles = null ; |
private HashMap motclesIds = null ; |
private TextField commentaireGeneral = null ; |
private DateField dateImage = null ; |
Button validerInfo = null ; |
66,13 → 60,7 |
panneauExifGrid = new Panel("Exif") ; |
panneauIptcGrid = new Panel("Iptc") ; |
panneauInfoGrid = new Panel("info") ; |
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 :") ; |
108,7 → 96,6 |
this.add(panneauInfoGrid) ; |
this.add(panneauExifGrid) ; |
this.add(panneauIptcGrid) ; |
this.add(panneauMotsCles) ; |
gViewExif = new GridView(); |
gViewExif.setForceFit(true); |
120,7 → 107,6 |
ExifGrid.setAutoWidth(true); |
ExifGrid.setAutoHeight(true); |
ExifGrid.setSorted(false); |
ExifGrid.setDisableSelection(true); |
gViewIptc = new GridView(); |
gViewIptc.setForceFit(true); |
137,20 → 123,8 |
panneauExifGrid.add(ExifGrid); |
panneauIptcGrid.add(IptcGrid); |
this.doLayout(true) ; |
} |
public void desactiverPanneau() |
{ |
this.setDisabled(true) ; |
} |
public void activerPanneau() |
{ |
this.setDisabled(false) ; |
} |
public ImageMediateur getIMediateur() |
{ |
return imediateur ; |
199,7 → 173,11 |
ExifGrid.setSource(exifSource); |
IptcGrid.setSource(iptcSource); |
gViewExif.refresh(true) ; |
gViewIptc.refresh(true) ; |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/GalerieImageVue.java |
---|
18,7 → 18,6 |
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; |
125,16 → 124,8 |
public void onSelectionChange(DataView view, Element[] selections) { |
//TODO: appeler le mediateur |
if(selections.length <= 0) |
{ |
getIMediateur().aucuneSelection(); |
} |
else |
{ |
getIMediateur().selection() ; |
getIMediateur().synchroniserSelection("galerie") ; |
} |
} |
}); |
151,7 → 142,7 |
new String[]{ |
"<tpl for='.'>", |
"<div class='thumb-wrap' id='{num_image}'>", |
"<div class='thumb'><img src='{url_image_M}' title='{num_image}'></div>", |
"<div class='thumb'><img src='{url_image_S}' title='{num_image}'></div>", |
"<span>{nom}</span></div>", "</tpl>", |
"<div class='x-clear'></div>"}); |
template.compile(); |
175,14 → 166,11 |
// creation du store |
FieldDef defNumImage = new IntegerFieldDef("num_image"); |
FieldDef defDatImage = new StringFieldDef("dat_image"); |
FieldDef defLieImage = new StringFieldDef("lie_image"); |
FieldDef defAppImage = new StringFieldDef("app_image"); |
FieldDef defNumImage = new StringFieldDef("num_image"); |
FieldDef defUrlImage = new StringFieldDef("url_image"); |
FieldDef defUrlImageM = new StringFieldDef("url_image_M"); |
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}; |
FieldDef[] defTab = {defNumImage,defUrlImage,defUrlImageM,defUrlImageS}; |
RecordDef rd = new RecordDef(defTab) ; |
st = new Store(rd) ; |
dView.setStore(st); |
201,18 → 189,42 |
public void rafraichir(Object nouvelleDonnees, boolean repandreRafraichissement) { |
if(nouvelleDonnees instanceof Store) |
{ |
st = (Store)nouvelleDonnees; |
st.load() ; |
if(nouvelleDonnees instanceof ListeImageCarnet) |
{ |
ListeImageCarnet data = (ListeImageCarnet) nouvelleDonnees ; |
Object[][] photoData = new Object[data.size()][4]; |
int i = 0 ; |
for (Iterator it = data.keySet().iterator(); it.hasNext();) |
{ |
ImageCarnet im = (ImageCarnet) data.get(it.next()); |
photoData[i][0] = im.getOrdre() ; |
photoData[i][1] = im.getUrl() ; |
photoData[i][2] = im.getSUrl() ; |
photoData[i][3] = im.getMUrl() ; |
i++ ; |
} |
final MemoryProxy dataProxy = new MemoryProxy(photoData); |
final ArrayReader reader = new ArrayReader(new RecordDef( |
new FieldDef[]{new StringFieldDef("num_image"), |
new StringFieldDef("url_image"), |
new StringFieldDef("url_image_S"), |
new StringFieldDef("url_image_M")})); |
final Store photoStore = new Store(dataProxy, reader); |
photoStore.load(); |
st = photoStore; |
dView.setStore(st); |
dView.refresh(); |
dView.refresh(); |
if(repandreRafraichissement) |
{ |
getIMediateur().synchroniserZoomListeGalerie(nouvelleDonnees, this) ; |
} |
} |
if(repandreRafraichissement) |
{ |
getIMediateur().synchroniserDonneesZoomListeGalerie(nouvelleDonnees, this) ; |
} |
} |
243,11 → 255,4 |
return id_selection ; |
} |
public void selectionnerImages(int[] ids) { |
getDView().select(ids) ; |
} |
} |