Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 207 → Rev 208

/trunk/src/org/tela_botanica/client/vues/image/ListeImageVue.java
68,6 → 68,10
*/
private ColumnConfig noteImage;
/**
* Config de colonne
*/
private ColumnConfig nomImage;
/**
* Modele de colonnes
*/
private ColumnModel modeleColonnes;
90,13 → 94,24
* Barre de pagination
*/
private BarrePaginationVue bt = null;
/**
* Taille max des images dans la liste
*/
private int tailleOr = 50 ;
 
/**
* Garder ou non l'aspet original des images
*/
private boolean garderRatio = true;
/**
* Constructeur sans arguments (privé car ne doit pas être utilisé)
*/
private ListeImageVue() {
super();
}
 
/**
* Constructeur avec argument
119,7 → 134,7
setBottomToolbar(bt);
 
// on construit le modèle de colonnes
numImage = new ColumnConfig("numéro", "num_image", 30, true,
numImage = new ColumnConfig("Numéro", "num_image", 30, true,
new Renderer() {
 
public String render(Object value,
133,7 → 148,7
 
});
 
datImage = new ColumnConfig("date", "dat_image", 120, true,
datImage = new ColumnConfig("Date", "dat_image", 80, true,
new Renderer() {
 
public String render(Object value,
149,7 → 164,7
}
 
});
lieImage = new ColumnConfig("lieu", "lie_image", 120, true,
lieImage = new ColumnConfig("Lieu", "lie_image", 120, true,
new Renderer() {
 
public String render(Object value,
165,7 → 180,7
}
 
});
appImage = new ColumnConfig("appareil", "app_image", 120, true,
appImage = new ColumnConfig("Appareil", "app_image", 120, true,
new Renderer() {
 
public String render(Object value,
181,6 → 196,8
}
 
});
 
// la colonne url possède une méthode de rendu spéciale
urlImage = new ColumnConfig("Image", "url_image_S", 30, true,
new Renderer() {
190,15 → 207,22
int rowIndex, int colNum, Store store) {
// on affiche une div contenant l'image pointée par
// l'url
int[] XY = {record.getAsInteger("taille_x") ,record.getAsInteger("taille_y")} ;
int[] XYresize = {tailleOr,tailleOr} ;
if(garderRatio) {
XYresize = calculerDimensions(XY);
}
String ImgUrl = record.getAsString("url_image_S");
String ImgNum = record.getAsString("num_image");
return "<div class=\"img-list centered-list\"> <img src=\""
+ ImgUrl + "\" title='" + ImgNum + "'> </div>";
+ ImgUrl + "\" title='" + ImgNum + "' width=\""+XYresize[0]+" px\" height=\""+XYresize[1]+" px\"> </div>";
}
 
});
 
noteImage = new ColumnConfig("note", "note_image", 80, true,
noteImage = new ColumnConfig("Note", "note_image", 80, true,
new Renderer() {
public String render(Object value,
CellMetadata cellMetadata, Record record,
220,9 → 244,25
}
 
});
nomImage = new ColumnConfig("Nom", "nom_original", 120, true,
new Renderer() {
public String render(Object value,
CellMetadata cellMetadata, Record record,
int rowIndex, int colNum, Store store) {
 
String imgNomOr = record.getAsString("nom_original");
if (imgNomOr == null) {
imgNomOr = " ";
}
return "<div class=\"centered-list\">" + imgNomOr
+ "</div>";
}
 
});
 
// on associe le modèle de colonnes
ColumnConfig[] cm = { numImage, urlImage, datImage, lieImage, appImage,
ColumnConfig[] cm = { numImage, urlImage, nomImage, datImage, lieImage, appImage,
noteImage };
modeleColonnes = new ColumnModel(cm);
this.setColumnModel(modeleColonnes);
232,6 → 272,7
 
// creation du store
FieldDef defNumImage = new IntegerFieldDef("num_image");
FieldDef defNomImage = new StringFieldDef("nom_original");
FieldDef defDatImage = new StringFieldDef("dat_image");
FieldDef defLieImage = new StringFieldDef("lie_image");
FieldDef defAppImage = new StringFieldDef("app_image");
239,9 → 280,11
FieldDef defUrlImageM = new StringFieldDef("url_image_M");
FieldDef defUrlImage = new StringFieldDef("url_image");
FieldDef defNoteImage = new StringFieldDef("note_image");
FieldDef[] defTab = { defNumImage, defDatImage, defLieImage,
FieldDef defTailleX = new IntegerFieldDef("taille_x");
FieldDef defTailleY = new IntegerFieldDef("taille_y");
FieldDef[] defTab = { defNumImage,defNomImage, defDatImage, defLieImage,
defAppImage, defUrlImageS, defUrlImageM, defUrlImage,
defNoteImage };
defNoteImage, defTailleX, defTailleY };
RecordDef rd = new RecordDef(defTab);
st = new Store(rd);
// on associe le store
526,5 → 569,27
iMediateur.changerTaillePage(nouvelleTaillePage) ;
}
public int[] calculerDimensions(int[] tailleXY) {
float[] tailleXYf = {new Float(tailleXY[0]),new Float(tailleXY[1])} ;
float tailleOr = this.tailleOr ;
float maxTaille = Math.max(tailleXYf[1],tailleXYf[0]) ;
float[] XYresize = new float[2];
if(maxTaille == tailleXY[0]) {
float rapport = tailleXYf[1]/tailleXYf[0] ;
XYresize[0] = tailleOr ;
XYresize[1] = tailleOr*rapport ;
}else {
float rapport = tailleXYf[0]/tailleXYf[1] ;
XYresize[1] = tailleOr ;
XYresize[0] = tailleOr*rapport ;
}
int[] res = {Math.round(XYresize[0]),Math.round(XYresize[1])} ;
return res;
}
 
}