/trunk/src/org/tela_botanica/client/vues/observation/ListeObservationVue.java |
---|
345,6 → 345,9 |
observationMediateur.obtenirListeObservation(); |
} |
}; |
// 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); |
} |
}); |
/trunk/src/org/tela_botanica/client/vues/image/MiniListeObservationVue.java |
---|
1,5 → 1,6 |
package org.tela_botanica.client.vues.image; |
import java.util.HashMap; |
import java.util.Iterator; |
import org.tela_botanica.client.i18n.Msg; |
8,9 → 9,11 |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.objets.ListeObservation; |
import org.tela_botanica.client.modeles.objets.Observation; |
import org.tela_botanica.client.modeles.objets.Ontologies; |
import org.tela_botanica.client.util.Util; |
import org.tela_botanica.client.vues.MiniBarrePaginationVue; |
import com.google.gwt.user.client.Timer; |
import com.google.gwt.user.client.Window; |
import com.gwtext.client.data.Record; |
import com.gwtext.client.data.SimpleStore; |
31,6 → 34,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.GridListenerAdapter; |
import com.gwtext.client.widgets.grid.event.RowSelectionListenerAdapter; |
import com.gwtext.client.widgets.menu.BaseItem; |
40,6 → 44,7 |
import com.gwtext.client.core.EventObject; |
import com.gwtext.client.core.Ext; |
import com.gwtext.client.core.ExtElement; |
import com.gwtext.client.core.SortDir; |
import com.gwtext.client.dd.DragData; |
/** |
93,6 → 98,12 |
*/ |
private int pageMax = 1 ; |
private SortDir directionTri; |
private String champTri; |
private boolean triActif; |
/** |
* Constructeur avec arguments |
* @param im le médiateur à associer à la vue |
101,6 → 112,8 |
{ |
iMediateur = im ; |
directionTri = SortDir.ASC; |
this.setId("x-view-mini-obs") ; |
// on construit le modèle de colonnes |
148,7 → 161,7 |
} ; |
// on crée un store simple contenant un petit set de données et deux colonnes |
store = new SimpleStore(new String[]{"transmis","plante","date","lieu","ordre_obs","id_obs"}, getObs()); |
store = new SimpleStore(new String[]{"transmis","nomSaisi_observation","date_observation","lieu_observation","ordre_observation","id_obs"}, getObs()); |
ColumnConfig[] columns = { |
new ColumnConfig("", "transmis", 30, true, new Renderer() { |
166,10 → 179,10 |
} |
}), |
new ColumnConfig(Msg.get("taxon"), "plante", 145, true, colRend), |
new ColumnConfig(Msg.get("date"), "date", 68, true, dateRend), |
new ColumnConfig(Msg.get("lieu"), "lieu", 145, true, colRend), |
new ColumnConfig(Msg.get("numero"), "ordre_obs", 50, true, colRend), } ; |
new ColumnConfig(Msg.get("taxon"), "nomSaisi_observation", 145, true, colRend), |
new ColumnConfig(Msg.get("date"), "date_observation", 68, true, dateRend), |
new ColumnConfig(Msg.get("lieu"), "lieu_observation", 145, true, colRend), |
new ColumnConfig(Msg.get("numero"), "ordre_observation", 50, true, colRend), } ; |
ColumnModel columnModel = new ColumnModel(columns); |
209,6 → 222,27 |
setTopToolbar(bt) ; |
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 pages, on peut donc se passer d'un appel |
// au comptage (ce serait mieux si ces deux appels étaient combinés) |
obtenirMiniListeObservations(); |
} |
}; |
// 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); |
} |
}); |
selecteurMode.addListener(new ComboBoxListenerAdapter() { |
@Override |
231,7 → 265,7 |
@Override |
public void onContextMenu(EventObject e) { |
// si pas de selection, on selection au moins la ligne sur laquelle on a fait le clic |
// si pas de selection, on selectionne au moins la ligne sur laquelle on a fait le clic |
if(getSelectionModel().getSelections().length <= 0) { |
int index = getView().findRowIndex(e); |
Record rddrop = getStore().getRecordAt(index) ; |
341,7 → 375,8 |
i++ ; |
} |
store = new SimpleStore(new String[]{"transmis","plante","date","lieu","ordre_obs","id_obs"}, listeObs); |
store = new SimpleStore(new String[]{"transmis","nomSaisi_observation","date_observation","lieu_observation","ordre_observation","id_obs"}, listeObs); |
store.sort(champTri, directionTri); |
store.load(); |
this.reconfigure(store, colModel) ; |
} |
653,4 → 688,33 |
return false; |
} |
} |
private void enregistrerEtatTri() { |
if(triActif) { |
this.directionTri = store.getSortState().getDirection(); |
this.champTri = store.getSortState().getField(); |
} |
} |
public String renvoyerTri() { |
String tri = "ordre"; |
if(triActif) { |
HashMap<String, String> corr = Ontologies.getCorrespondanceGrilleObservationChampsTri(); |
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; |
} |
} |
/trunk/src/org/tela_botanica/client/vues/image/ListeImageVue.java |
---|
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é) |
*/ |
144,6 → 157,8 |
bt.setLabelElement(Msg.get("images")); |
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, |
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()); |
} |
744,5 → 763,33 |
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; |
} |
} |