1,53 → 1,26 |
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.Window; |
import com.gwtext.client.core.EventObject; |
import com.gwtext.client.core.Ext; |
import com.gwtext.client.core.ExtElement; |
import com.gwtext.client.core.JsObject; |
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.StoreMgr; |
import com.gwtext.client.data.StringFieldDef; |
import com.gwtext.client.util.JavaScriptObjectHelper; |
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; |
import com.gwtext.client.widgets.event.PanelListenerAdapter; |
import com.gwtext.client.widgets.grid.CellMetadata; |
import com.gwtext.client.widgets.grid.ColumnConfig; |
import com.gwtext.client.widgets.grid.ColumnModel; |
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; |
|
/** |
* Liste d'image composée de miniatures et d'information sur l'image, implémente |
84,6 → 57,10 |
*/ |
private ColumnConfig appImage; |
/** |
* Config de colonne |
*/ |
private ColumnConfig noteImage; |
/** |
* Modele de colonnes |
*/ |
private ColumnModel modeleColonnes; |
132,10 → 109,59 |
this.setBottomToolbar(bt) ; |
|
// on construit le modèle de colonnes |
numImage = new ColumnConfig("numéro", "num_image", 30, 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); |
numImage = new ColumnConfig("numéro", "num_image", 30, true, new Renderer() { |
|
public String render(Object value, CellMetadata cellMetadata, |
Record record, int rowIndex, int colNum, Store store) { |
|
String ImgNum = record.getAsString("num_image"); |
return "<div class=\"centered-list\">"+ ImgNum +"</div>"; |
} |
|
}) ; |
|
datImage = new ColumnConfig("date", "dat_image", 120, true, new Renderer() { |
|
public String render(Object value, CellMetadata cellMetadata, |
Record record, int rowIndex, int colNum, Store store) { |
|
String ImgDat = record.getAsString("dat_image"); |
if(ImgDat == null) |
{ |
ImgDat = " " ; |
} |
return "<div class=\"centered-list\">"+ ImgDat +"</div>"; |
} |
|
}) ; |
lieImage = new ColumnConfig("lieu", "lie_image", 120, true, new Renderer() { |
|
public String render(Object value, CellMetadata cellMetadata, |
Record record, int rowIndex, int colNum, Store store) { |
|
String ImgLie = record.getAsString("lie_image"); |
if(ImgLie == null) |
{ |
ImgLie = " " ; |
} |
return "<div class=\"centered-list\">"+ ImgLie +"</div>"; |
} |
|
}) ; |
appImage = new ColumnConfig("appareil", "app_image", 120, true, new Renderer() { |
|
public String render(Object value, CellMetadata cellMetadata, |
Record record, int rowIndex, int colNum, Store store) { |
|
String ImgApp = record.getAsString("app_image"); |
if(ImgApp == null) |
{ |
ImgApp = " " ; |
} |
return "<div class=\"centered-list\">"+ ImgApp +"</div>"; |
} |
|
}) ; |
// la colonne url possède une méthode de rendu spéciale |
urlImage = new ColumnConfig("Image", "url_image_S", 30, true, |
new Renderer() { |
146,14 → 172,39 |
// on affiche une div contenant l'image pointée par l'url |
String ImgUrl = record.getAsString("url_image_S"); |
String ImgNum = record.getAsString("num_image"); |
return "<div class=\"img-list\"> <img src=\"" + ImgUrl |
return "<div class=\"img-list centered-list\"> <img src=\"" + ImgUrl |
+ "\" title='" + ImgNum + "'> </div>"; |
} |
|
}); |
|
noteImage = new ColumnConfig("note", "note_image", 80, true, |
new Renderer() |
{ |
public String render(Object value, CellMetadata cellMetadata, |
Record record, int rowIndex, int colNum, Store store) { |
|
String htmlImage = "" ; |
|
int noteImg = record.getAsInteger("note_image") ; |
if(noteImg >= 0) |
{ |
htmlImage += "<div class=\"img-note centered-list\">" ; |
for(int i = 0 ; i <= noteImg ; i++) |
{ |
htmlImage += "<img src=\"etoile_notee.jpg\">" ; |
} |
htmlImage += "</div>" ; |
} |
|
return htmlImage ; |
|
} |
|
}) ; |
|
// on associe le modèle de colonnes |
ColumnConfig[] cm = {numImage, urlImage, datImage, lieImage, appImage}; |
ColumnConfig[] cm = {numImage, urlImage, datImage, lieImage, appImage, noteImage}; |
modeleColonnes = new ColumnModel(cm); |
this.setColumnModel(modeleColonnes); |
this.setAutoScroll(true); |
168,8 → 219,9 |
FieldDef defUrlImageS = new StringFieldDef("url_image_S"); |
FieldDef defUrlImageM = new StringFieldDef("url_image_M"); |
FieldDef defUrlImage = new StringFieldDef("url_image"); |
FieldDef defNoteImage = new StringFieldDef("note_image"); |
FieldDef[] defTab = { defNumImage, defDatImage, defLieImage, |
defAppImage, defUrlImageS, defUrlImageM, defUrlImage }; |
defAppImage, defUrlImageS, defUrlImageM, defUrlImage, defNoteImage }; |
RecordDef rd = new RecordDef(defTab); |
st = new Store(rd); |
// on associe le store |
190,11 → 242,13 |
private void ajouterListeners() { |
this.addListener(new ContainerListenerAdapter() { |
|
|
public void onHide(Component component) { |
|
} |
|
// lors du premier rendu on demande les données qui sont déjà contenues dans la galerie qui est le premier élément affiché |
|
public void onRender(Component component) { |
|
if (!isEstInstancie()) { |
203,6 → 257,7 |
} |
} |
|
|
public void onShow(Component component) { |
|
} |
238,6 → 293,7 |
this.getSelectionModel().addListener(new RowSelectionListenerAdapter() { |
|
// gestion de la sélection |
|
public void onSelectionChange(RowSelectionModel sm) { |
|
// si on a rien de sélectionné |
367,4 → 423,15 |
this.estInstancie = estInstancie; |
} |
|
public void mettreAjourInfos(String commentaires, String date, String note) { |
|
for (int i = 0; i < getSelectionModel().getCount(); i++) { |
|
getSelectionModel().getSelections()[i].set("note_image", note) ; |
//this.getView().refresh() ; |
|
} |
|
} |
|
} |