/trunk/src/org/tela_botanica/client/observation/ObservationMediateur.java |
---|
224,7 → 224,7 |
// on initialise le volet qui contient les filtres |
filtres.setWidth("15%"); |
filtres.setHeight(1000) ; |
filtres.setHeight(700) ; |
filtres.setTitleCollapse(true); |
filtres.setCollapsible(true); |
/trunk/src/org/tela_botanica/client/image/ImageMediateur.java |
---|
15,7 → 15,7 |
import org.tela_botanica.client.vues.ListeImageVue; |
import org.tela_botanica.client.vues.MenuImageVue; |
import org.tela_botanica.client.vues.MiniListeObservationVue; |
import org.tela_botanica.client.vues.PanneauFiltresVues; |
import org.tela_botanica.client.vues.PanneauFiltresImagesVues; |
import org.tela_botanica.client.vues.PanneauMetadonneesVue; |
import org.tela_botanica.client.vues.ZoomImageVue; |
104,7 → 104,7 |
/** |
* panneau de filtrage |
*/ |
private PanneauFiltresVues filtres = null; |
private PanneauFiltresImagesVues filtres = null; |
/** |
* conteneur du panneau a onglets |
268,7 → 268,7 |
// on gère la mise en page du panneau principal |
// on crée le panneau des filtres |
filtres = new PanneauFiltresVues(this); |
filtres = new PanneauFiltresImagesVues(this); |
filtres.setWidth("15%"); |
// le panneau à onglet qui contient les trois vues |
666,7 → 666,26 |
obtenirMetadonnees(metadonneesIptcExif, imgNum); |
obtenirMotsClesId(metadonneesIptcExif.getPanneauMotsCles(), imgNum); |
obtenirNote(metadonneesIptcExif.getNoteVue(), imgNum); |
if(getMetadonneesIptcExif().getMiniListeObservation().getMode()) |
{ |
obtenirObservationsAssociees() ; |
} |
else |
{ |
//TODO: réfléchir : que faire dans cas là ? |
} |
} |
public void changerModeLiaison(boolean mode) { |
if(mode) { |
obtenirObservationsAssociees() ; |
} |
else { |
obtenirMiniListeObservations(getMetadonneesIptcExif().getMiniListeObservation()) ; |
} |
} |
/** |
* Envoie une demande au modèle pour obtenir la note associée à une image |
1216,7 → 1235,7 |
* |
* @return le panneau contenant les filtres |
*/ |
public PanneauFiltresVues getPanneauFiltres() { |
public PanneauFiltresImagesVues getPanneauFiltres() { |
return filtres; |
} |
1476,6 → 1495,7 |
public void donneesExterieures(Object nouvelleDonnees) { |
// si on a reçu une liste d'observation |
if(nouvelleDonnees instanceof ListeObservation) |
{ |
if(getMetadonneesIptcExif().getMiniListeObservation().isCreated()) |
1484,6 → 1504,14 |
} |
} |
// si on a reçu une nouvelle pagination |
if(nouvelleDonnees instanceof int[]) |
{ |
if(getMetadonneesIptcExif().getMiniListeObservation().isCreated()) |
{ |
//getMetadonneesIptcExif().getMiniListeObservation().getBarrePagination().rafraichir(nouvelleDonnees, false) ; |
} |
} |
} |
public void afficherAide() { |
1502,11 → 1530,16 |
} |
public void afficherObservationsAssociees() { |
public void obtenirObservationsAssociees() { |
String ids[] = getVueSelectionnee().getIdSelectionnees() ; |
getIModele().obtenirLiaisonObservations(this,ids[0]) ; |
} |
public void rafraichirMiniListeObservations(Object data) { |
getMetadonneesIptcExif().getMiniListeObservation().rafraichir(data, false) ; |
} |
} |
/trunk/src/org/tela_botanica/client/image/ImageModele.java |
---|
12,6 → 12,7 |
import org.tela_botanica.client.modeles.LienImageAsynchroneDAO; |
import org.tela_botanica.client.modeles.ListeImageAsynchroneDAO; |
import org.tela_botanica.client.modeles.ListeImageCarnet; |
import org.tela_botanica.client.modeles.ListeObservation; |
import org.tela_botanica.client.modeles.MotsClesAsynchroneDAO; |
import org.tela_botanica.client.modeles.NombreImageAsynchroneDAO; |
499,6 → 500,11 |
obtenirPhotoGalerie(this) ; |
} |
if(nouvelleDonnees instanceof ListeObservation) { |
getIMediateur().rafraichirMiniListeObservations(nouvelleDonnees) ; |
} |
} |
/** |
/trunk/src/org/tela_botanica/client/vues/PanneauFiltresVues.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/vues/ZoomImageVue.java |
---|
16,6 → 16,7 |
import com.gwtext.client.dd.DropTargetConfig; |
import com.gwtext.client.widgets.Container; |
import com.gwtext.client.widgets.Panel; |
import com.gwtext.client.widgets.ToolTip; |
import com.gwtext.client.widgets.event.PanelListenerAdapter; |
import com.gwtext.client.widgets.grid.GridDragData; |
import com.gwtext.client.widgets.layout.BorderLayout; |
75,6 → 76,8 |
* Booleen d'initalisation du conteneur d'image |
*/ |
private boolean conteneurInitialise = false; |
private ToolTip tp = new ToolTip("<div class=\"x-tooltip-help\"> Double cliquez pour revenir à la vue précédente, utilisez la roulette ou les boutons fléchés pour faire défiler les images </div>") ; |
/** |
* Constructeur sans argument (privé car ne doit être utilisé) |
164,6 → 167,8 |
// on ajoute les listeners |
ajouterListeners(); |
tp.applyTo(image.getElement()) ; |
} |
/trunk/src/org/tela_botanica/client/vues/ArbreEntiteGeographiqueObservationFiltreVue.java |
---|
103,6 → 103,7 |
this.setBorder(false); |
this.setCollapsible(true); |
this.setAutoWidth(true); |
this.setAutoScroll(true) ; |
// on ajoute les listeners |
/trunk/src/org/tela_botanica/client/vues/ImageGeneriqueVue.java |
---|
6,8 → 6,10 |
import com.google.gwt.user.client.DOM; |
import com.google.gwt.user.client.Event; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.Image; |
import com.gwtext.client.widgets.Panel; |
import com.gwtext.client.widgets.ToolTip; |
import com.gwtext.client.widgets.Window.CloseAction; |
/** |
34,6 → 36,7 |
private com.gwtext.client.widgets.Window imgZoom = new com.gwtext.client.widgets.Window("Agrandissement") ; |
private ToolTip tp = new ToolTip("<div class=\"x-tooltip-help\"> Double cliquez pour agrandir l'image </div>") ; |
/** |
* Constructeur sans argument (privé car ne doit pas être utilisé) |
69,7 → 72,9 |
}; |
tp.applyTo(image.getElement()) ; |
this.setCls("x-image-gen") ; |
image.setPixelSize(150, 150); |
add(image); |
/trunk/src/org/tela_botanica/client/vues/PanneauFiltresImagesVues.java |
---|
New file |
0,0 → 1,144 |
package org.tela_botanica.client.vues; |
import org.tela_botanica.client.image.ImageMediateur; |
import com.gwtext.client.core.EventObject; |
import com.gwtext.client.widgets.Button; |
import com.gwtext.client.widgets.Panel; |
import com.gwtext.client.widgets.event.ButtonListenerAdapter; |
import com.gwtext.client.widgets.layout.VerticalLayout; |
/** |
* Panneau contenant les filtres qu'on peut appliquer aux images |
* |
* @author aurelien |
* |
*/ |
public class PanneauFiltresImagesVues extends Panel { |
/** |
* Le médiateur associé |
*/ |
private ImageMediateur iMediateur = null; |
/** |
* L'arbre pour la recherche par mots clés |
*/ |
private ArbreMotsClesFiltreVue motsClesFiltres = null; |
/** |
* La barre de recherche par commentaires |
*/ |
private BarreRechercheFiltreVue commFiltresVues = null; |
/** |
* Recherche par date |
*/ |
private DateFiltreVue dateFiltreVues = null; |
/** |
* Recherche par contenu du tampon |
*/ |
private SelectionFiltreVue selectionFiltreVue = null; |
/** |
* Bouton de validation |
*/ |
private Button valider = null; |
/** |
* Construcuteur sans argument (privé car on ne doit pas l'utiliser) |
*/ |
@SuppressWarnings("unused") |
private PanneauFiltresImagesVues() { |
super(); |
} |
/** |
* Constructeur avec arguments |
* |
* @param im |
* le médiateur à associer |
*/ |
public PanneauFiltresImagesVues(ImageMediateur im) { |
super("Rechercher des images"); |
iMediateur = im; |
this.setCollapsible(true); |
setLayout(new VerticalLayout()); |
commFiltresVues = new BarreRechercheFiltreVue(im); |
add(commFiltresVues); |
dateFiltreVues = new DateFiltreVue(im); |
add(dateFiltreVues); |
selectionFiltreVue = new SelectionFiltreVue(im); |
add(selectionFiltreVue); |
motsClesFiltres = new ArbreMotsClesFiltreVue(im); |
add(motsClesFiltres); |
Panel panelValidation = new Panel(); |
valider = new Button("Rechercher"); |
panelValidation.add(valider); |
panelValidation.setBorder(false); |
add(panelValidation); |
valider.addListener(new ButtonListenerAdapter() { |
public void onClick(Button button, EventObject e) { |
iMediateur.obtenirPhotoGalerie(iMediateur.getGalerieImage()); |
} |
}); |
} |
/** |
* Accesseur pour le filtre des mots clés |
* |
* @return le filtre des mots clés |
*/ |
public ArbreMotsClesFiltreVue getMotsClesFiltre() { |
return motsClesFiltres; |
} |
/** |
* Accesseur pour le filtre par commentaire |
* |
* @return le filtre des commentaires |
*/ |
public BarreRechercheFiltreVue getBarreRecherche() { |
return commFiltresVues; |
} |
/** |
* Renvoie un booléen indiquant si un des filtres a été modifié |
* |
* @return true sur un des filtres est modifié, false sinon |
*/ |
public boolean renvoyerEtatFiltre() { |
return (motsClesFiltres.renvoyerEtatFiltre() |
|| commFiltresVues.renvoyerEtatFiltre() |
|| dateFiltreVues.renvoyerEtatFiltre() |
|| selectionFiltreVue.renvoyerEtatFiltre()); |
} |
/** |
* Renvoie un tableau à 2 niveaux contenant des paires "nom_de_filtre", |
* "valeur" |
* |
* @return un tableau contenant les noms et les valeurs à filtrer |
*/ |
public String[][] renvoyerValeursAFiltrer() { |
String[][] filtres = { motsClesFiltres.renvoyerValeursAFiltrer(), |
commFiltresVues.renvoyerValeursAFiltrer(), |
dateFiltreVues.renvoyerValeursAFiltrer(), |
selectionFiltreVue.renvoyerValeursAFiltrer() }; |
return filtres; |
} |
} |
Property changes: |
Added: svn:mergeinfo |
/trunk/src/org/tela_botanica/client/vues/InformationRepartitionVue.java |
---|
9,6 → 9,7 |
import com.google.gwt.user.client.ui.Image; |
import com.gwtext.client.core.Ext; |
import com.gwtext.client.widgets.Panel; |
import com.gwtext.client.widgets.ToolTip; |
/** |
* Un panneau affichant la repartition d'une plante |
32,7 → 33,10 |
private String urlImage = "" ; |
private ToolTip tp = new ToolTip("<div class=\"x-tooltip-help\"> Double cliquez pour agrandir l'image </div>") ; |
com.gwtext.client.widgets.Window imgZoom = new com.gwtext.client.widgets.Window("Agrandissement") ; |
/** |
* Constructeur sans argument (privé car ne doit pas être utilisé) |
65,10 → 69,13 |
// on notifie le médiateur |
agrandirImage() ; |
} |
} |
}; |
tp.applyTo(image.getElement()) ; |
image.sinkEvents(Event.ONDBLCLICK); |
this.setCls("x-image-info-rep") ; |
/trunk/src/org/tela_botanica/client/vues/MenuImageVue.java |
---|
127,7 → 127,7 |
} |
if (item.equals(voirObs)) { |
getIMediateur().afficherObservationsAssociees() ; |
getIMediateur().obtenirObservationsAssociees() ; |
} |
// enfin, on cache le menu |
/trunk/src/org/tela_botanica/client/vues/MiniListeObservationVue.java |
---|
9,6 → 9,7 |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.MouseListenerAdapter; |
import com.gwtext.client.data.Record; |
import com.gwtext.client.data.SimpleStore; |
import com.gwtext.client.data.Store; |
import com.gwtext.client.dd.DragSource; |
15,10 → 16,13 |
import com.gwtext.client.dd.DropTarget; |
import com.gwtext.client.dd.DropTargetConfig; |
import com.gwtext.client.widgets.Component; |
import com.gwtext.client.widgets.Toolbar; |
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.PanelListenerAdapter; |
import com.gwtext.client.widgets.form.ComboBox; |
import com.gwtext.client.widgets.form.event.ComboBoxListenerAdapter; |
import com.gwtext.client.widgets.grid.ColumnConfig; |
import com.gwtext.client.widgets.grid.ColumnModel; |
import com.gwtext.client.widgets.grid.GridDragData; |
26,6 → 30,8 |
import com.gwtext.client.widgets.grid.event.GridListener; |
import com.gwtext.client.widgets.grid.event.GridListenerAdapter; |
import com.gwtext.client.core.EventObject; |
import com.gwtext.client.core.Ext; |
import com.gwtext.client.core.ExtElement; |
import com.gwtext.client.dd.DragData; |
/** |
52,7 → 58,21 |
private SimpleStore store = null ; |
//private BarrePaginationVue pgBar = new BarrePaginationVue(iMediateur) ; |
private Toolbar bt = new Toolbar() ; |
/** |
* Combobox permettant de selectionner le mode |
* modification ou bien création |
*/ |
private ComboBox selecteurMode = new ComboBox(); |
Store storeMode = null ; |
private boolean liaison; |
/** |
* Constructeur avec arguments |
* @param im le médiateur à associer à la vue |
*/ |
85,6 → 105,36 |
store.load(); |
setStore(store) ; |
//setBottomToolbar(pgBar) ; |
Object[][] mode = {{"toutes les observations",false} , {"observations liées", true} }; |
storeMode = new SimpleStore(new String[] { "nom_mode", "mode" }, |
mode); |
storeMode.load(); |
selecteurMode.setStore(storeMode); |
selecteurMode.setDisplayField("nom_mode") ; |
selecteurMode.setLabel("mode ") ; |
selecteurMode.setForceSelection(true) ; |
selecteurMode.setValue("toutes les observations") ; |
selecteurMode.setEditable(false) ; |
selecteurMode.setCls("x-selec-liaison") ; |
bt = new Toolbar() ; |
bt.addField(selecteurMode) ; |
setTopToolbar(bt) ; |
selecteurMode.addListener(new ComboBoxListenerAdapter() { |
public void onSelect(ComboBox comboBox, Record record, int index) { |
// et on met la valeur à jour dans la combobox |
comboBox.setValue(record.getAsString("nom_mode")); |
setModification(record.getAsString("mode")) ; |
} |
}); |
setAutoScroll(true) ; |
// on configure le drag 'n drop |
configDragAndDrop() ; |
207,6 → 257,8 |
} |
deMasquerChargement() ; |
} |
private void obtenirMiniListeObservations() |
229,6 → 281,61 |
return store ; |
} |
/*public BarrePaginationVue getBarrePagination() |
{ |
return pgBar ; |
}*/ |
private void setModification(String mode) |
{ |
if(mode.equals("true")) { |
liaison = true ; |
selecteurMode.removeClass("x-selec-consult") ; |
selecteurMode.setCls("x-selec-liaison") ; |
} |
else |
{ |
liaison = false ; |
selecteurMode.removeClass("x-selec-liaison") ; |
selecteurMode.setCls("x-selec-consult") ; |
} |
masquerChargement() ; |
store.removeAll() ; |
iMediateur.changerModeLiaison(liaison) ; |
} |
public boolean getMode() { |
return liaison ; |
} |
/** |
* Recherche l'élement actuellement affiché et affiche son message de chargement |
*/ |
public void masquerChargement() |
{ |
ExtElement masked = Ext.get(getId()) ; |
if (masked!=null) { |
masked.mask("Chargement") ; |
} |
} |
/** |
* Recherche l'élement actuellement affiché et affiche son message de chargement |
*/ |
public void deMasquerChargement() |
{ |
ExtElement masked = Ext.get(getId()) ; |
if (masked!=null) { |
masked.unmask() ; |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/ArbreDateObservationFiltreVue.java |
---|
103,11 → 103,13 |
this.setPaddings(5); |
this.setBorder(false); |
this.setCollapsible(true); |
this.setAutoWidth(true); |
if (GWT.isScript()) { |
setAutoScroll(true); |
} |
// on ajoute les listeners |
ajouterListenersPanel(); |
estInstancie = false; |
129,10 → 131,6 |
arbreDonneesDates.setId("x-view-tree-filter-date"); |
arbreDonneesDates.setAutoWidth(false); |
if (GWT.isScript()) { |
arbreDonneesDates.setAutoScroll(true); |
} |
arbreDonneesDates.setBorder(false); |
// on crée une racine pour l'arbre |
/trunk/src/org/tela_botanica/client/vues/PanneauFiltresObservationVues.java |
---|
7,9 → 7,13 |
import com.gwtext.client.widgets.Panel; |
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.layout.AccordionLayout; |
import com.gwtext.client.widgets.layout.AnchorLayout; |
import com.gwtext.client.widgets.layout.AnchorLayoutData; |
import com.gwtext.client.widgets.layout.FitLayout; |
import com.gwtext.client.widgets.layout.VerticalLayout; |
/** |
* Panneau contenant les filtres qu'on peut appliquer aux images |
60,13 → 64,17 |
observationMediateur = obs; |
this.setCollapsible(true); |
setLayout(new AnchorLayout()); |
this.setLayout(new AnchorLayout()) ; |
arbreEntiteGeographiqueObservationFiltreVue = new ArbreEntiteGeographiqueObservationFiltreVue(observationMediateur); |
add(arbreEntiteGeographiqueObservationFiltreVue,new AnchorLayoutData("50%")); |
add(arbreEntiteGeographiqueObservationFiltreVue); |
arbreEntiteGeographiqueObservationFiltreVue.setHeight(350) ; |
arbreEntiteGeographiqueObservationFiltreVue.setWidth("100%") ; |
arbreDateObservationFiltreVue = new ArbreDateObservationFiltreVue(observationMediateur) ; |
add(arbreDateObservationFiltreVue,new AnchorLayoutData("50%")) ; |
arbreDateObservationFiltreVue.setHeight(350) ; |
add(arbreDateObservationFiltreVue); |
arbreDateObservationFiltreVue.setWidth("100%") ; |
} |
/trunk/src/org/tela_botanica/client/modeles/LienImageAsynchroneDAO.java |
---|
1,5 → 1,6 |
package org.tela_botanica.client.modeles; |
import org.tela_botanica.client.Util; |
import org.tela_botanica.client.image.ImageModele; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.observation.ObservationModele; |
44,7 → 45,9 |
public void obtenirLiaisonsImagesObservations(Rafraichissable r,String id) |
{ |
String paramGet = "&coi_ce_image="+id ; |
raf = r ; |
// et on envoie ça au serveur |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, iModele |
.getConfig().getServiceBaseUrl() |
60,8 → 63,57 |
public void onResponseReceived(Request request, |
Response response) { |
Window.alert(response.getText()) ; |
final ListeObservation observationData ; |
final JSONValue responseValue = JSONParser.parse(response.getText()); |
JSONArray reponse=null; |
// si c'est un tableau |
if ((reponse=responseValue.isArray()) != null) { |
JSONArray observation; |
final int taillemax = reponse.size(); |
observationData = new ListeObservation(taillemax); |
for (int i = 0; i < taillemax; i++) { |
if ((observation=reponse.get(i).isArray()) != null) { |
String transmis=((JSONString) observation.get(13)).stringValue(); |
String identifiantLocalite=((JSONString) observation.get(14)).toString(); |
String nomSaisi=Util.toCelString(((JSONString) observation.get(0)).toString()); |
String nomRetenu=Util.toCelString(((JSONString) observation.get(2)).toString()); |
String numeroNomenclaturalSaisi=((JSONString) observation.get(1)).stringValue(); |
String numeroNomenclaturalRetenu=((JSONString) observation.get(3)).stringValue(); |
String numeroTaxonomique=((JSONString) observation.get(4)).stringValue(); |
String famille=Util.toCelString(((JSONString) observation .get(5)).toString()); |
String localite=Util.toCelString(((JSONString) observation .get(6)).toString()); |
String lieudit=Util.toCelString(((JSONString) observation .get(9)).toString()); |
String station=Util.toCelString(((JSONString) observation .get(10)).toString()); |
String milieu=Util.toCelString(((JSONString) observation .get(11)).toString()); |
String commentaire=Util.toCelString(((JSONString) observation .get(12)).toString()); |
String date=((JSONString) observation .get(8)).stringValue(); |
String numeroOrdre=((JSONString) observation.get(7)).stringValue(); |
Observation obs=new Observation(transmis, nomSaisi, nomRetenu, numeroNomenclaturalSaisi, numeroNomenclaturalRetenu ,numeroTaxonomique, famille, localite, identifiantLocalite, lieudit, station, milieu, commentaire, date, numeroOrdre); |
observationData.put(obs.getNumeroOrdre(),obs); |
} |
} |
} else { |
observationData = new ListeObservation(0) ; |
} |
// dans tous les cas on transmet la liste crée au rafraichissable en lui demandant de répandre les données car il est |
// le premier à les recevoir |
// TODO : ce n'est pas ici qu'on devrait le decider .. |
raf.rafraichir(observationData,true); |
} |
}); |