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; |
} |
|
} |