1,13 → 1,19 |
package org.tela_botanica.client.vues.image; |
|
import java.util.HashMap; |
|
import org.tela_botanica.client.i18n.Msg; |
import org.tela_botanica.client.image.ImageMediateur; |
import org.tela_botanica.client.interfaces.ListePaginable; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.interfaces.VueListable; |
import org.tela_botanica.client.modeles.objets.Ontologies; |
import org.tela_botanica.client.util.Util; |
import org.tela_botanica.client.vues.BarrePaginationVue; |
|
import com.google.gwt.user.client.Timer; |
import com.gwtext.client.core.EventObject; |
import com.gwtext.client.core.SortDir; |
import com.gwtext.client.data.FieldDef; |
import com.gwtext.client.data.IntegerFieldDef; |
import com.gwtext.client.data.Record; |
27,6 → 33,7 |
import com.gwtext.client.widgets.grid.GridPanel; |
import com.gwtext.client.widgets.grid.Renderer; |
import com.gwtext.client.widgets.grid.RowSelectionModel; |
import com.gwtext.client.widgets.grid.event.GridHeaderListenerAdapter; |
import com.gwtext.client.widgets.grid.event.GridRowListener; |
import com.gwtext.client.widgets.grid.event.RowSelectionListenerAdapter; |
|
117,6 → 124,12 |
*/ |
private boolean garderRatio = true; |
|
private SortDir directionTri; |
|
private String champTri; |
|
private boolean triActif; |
|
/** |
* Constructeur sans arguments (privé car ne doit pas être utilisé) |
*/ |
145,6 → 158,8 |
bt.setTaillePageParDefaut(50); |
setBottomToolbar(bt); |
|
directionTri = SortDir.ASC; |
|
// on construit le modèle de colonnes |
numImage = new ColumnConfig(Msg.get("numero"), "num_image", 30, true, |
new Renderer() { |
163,7 → 178,7 |
|
}); |
|
transmisImage = new ColumnConfig(" ", "obs_associees", 10, true, new Renderer() { |
transmisImage = new ColumnConfig(" ", "transmis", 10, true, new Renderer() { |
|
@Override |
public String render(Object value, CellMetadata cellMetadata, |
354,24 → 369,7 |
this.setAutoWidth(true); |
this.setEnableColumnResize(true); |
|
// creation du store |
FieldDef defNumImage = new IntegerFieldDef("num_image"); |
FieldDef defTransmisImage = new IntegerFieldDef("obs_associees"); |
FieldDef defNomImage = new StringFieldDef("nom_original"); |
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 defNoteImage = new StringFieldDef("note_image"); |
FieldDef defTailleX = new IntegerFieldDef("taille_x"); |
FieldDef defTailleY = new IntegerFieldDef("taille_y"); |
FieldDef defObsAssociees = new StringFieldDef("obs_associees"); |
FieldDef[] defTab = { defNumImage,defTransmisImage, defNomImage, defDatImage, defLieImage, |
defAppImage, defUrlImageS, defUrlImageM, defUrlImage, |
defNoteImage, defTailleX, defTailleY, defObsAssociees}; |
RecordDef rd = new RecordDef(defTab); |
RecordDef rd = new RecordDef(ImageMediateur.getDefinitionsChampsGrilleImages()); |
st = new Store(rd); |
// on associe le store |
this.setStore(st); |
395,6 → 393,28 |
* Ajoute les listeners pour la gestion des évènements |
*/ |
private void ajouterListeners() { |
|
this.addGridHeaderListener(new GridHeaderListenerAdapter() { |
@Override |
public void onHeaderClick(GridPanel grid, int colIndex, EventObject e) { |
triActif = true; |
Timer t = new Timer() { |
|
@Override |
public void run() { |
enregistrerEtatTri(); |
// Trier ne change pas le nombre de page, on peut donc se passer d'un appel |
// au comptage (ce serait mieux si ces deux appels étaient combinés) |
iMediateur.obtenirPhotoGalerieSansCalculerPages(ListeImageVue.this); |
} |
}; |
// Le changement de tri n'est pas immédiat et si on recharge le liste tout de suite |
// on a l'ancien tri et pas le nouveau (200 millisecondes suffisent et ne se voient pas) |
// #mondeDeMerde |
t.schedule(200); |
} |
}); |
|
this.addListener(new ContainerListenerAdapter() { |
|
@Override |
593,13 → 613,12 |
|
// si on reçoit un store |
if (nouvelleDonnees instanceof Store) { |
|
// on affecte celui-ci comme gestionnaire de données |
st = (Store) nouvelleDonnees; |
st.sort(champTri, directionTri); |
st.load(); |
// et on reconfigure et rafraichit la vue |
this.reconfigure(st, this.getColumnModel()); |
|
} |
|
|
745,4 → 764,32 |
return associeesTranmises; |
} |
|
private void enregistrerEtatTri() { |
if(triActif) { |
this.directionTri = st.getSortState().getDirection(); |
this.champTri = st.getSortState().getField(); |
} |
|
} |
|
public String renvoyerTri() { |
String tri = "ordre"; |
if(triActif) { |
HashMap<String, String> corr = Ontologies.getCorrespondanceGrilleImageChampsTri(); |
if(corr.containsKey(champTri)) { |
tri = corr.get(champTri); |
} |
} |
return tri; |
} |
|
public String renvoyerDirectionTri() { |
String triDir = "ASC"; |
try { |
triDir = (triActif) ? directionTri.getDirection() : "ASC"; |
} catch (Exception e) { |
triDir = "ASC"; |
} |
return triDir; |
} |
} |