Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 838 → Rev 839

/trunk/src/org/tela_botanica/client/i18n/Constantes.properties
184,6 → 184,11
selectionnerUniteBase = une unité de base
collectionUniteBaseSaisirType = Veuillez saisir le type d'unité de base :
selectionnerUniteBaseAjoute = Seules les unités de base ajoutées peuvent être supprimées
typePapierConservation = Quel est le type du papier de conservation ?
methodeConservation = Comment les échantillons sont-ils conservés?
fixationPourcent = Les spécimens et leurs étiquettes sont-ils fixés ou libres?
specimenFixationPourcent = % de spécimen fixés
etiquetteFixationPourcent = % d'étiquettes fixés
 
collectionContenu = Contenu
collectionContenuTitre = Informations sur le contenu de la collection
/trunk/src/org/tela_botanica/client/i18n/Constantes.java
188,6 → 188,11
String selectionnerUniteBase();
String collectionUniteBaseSaisirType();
String selectionnerUniteBaseAjoute();
String typePapierConservation();
String methodeConservation();
String fixationPourcent();
String specimenFixationPourcent();
String etiquetteFixationPourcent();
String collectionDocument();
String collectionDocumentTitre();
/trunk/src/org/tela_botanica/client/vues/CollectionFormDescription.java
5,6 → 5,7
import java.util.List;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.composants.ChampCaseACocher;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.InterneValeur;
14,18 → 15,23
import org.tela_botanica.client.modeles.ValeurListe;
 
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.EventType;
import com.extjs.gxt.ui.client.event.Events;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.MessageBoxEvent;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.event.SliderEvent;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.Info;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.MessageBox;
import com.extjs.gxt.ui.client.widget.Slider;
import com.extjs.gxt.ui.client.widget.Text;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.form.CheckBoxGroup;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.LabelField;
import com.extjs.gxt.ui.client.widget.form.NumberField;
import com.extjs.gxt.ui.client.widget.form.SliderField;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
51,9 → 57,10
private Grid<UniteRangement> uniteRangementGrille = null;
private ComboBox<Valeur> etatUniteRangementCombo = null;
private Grid<UniteBase> uniteBaseGrille = null;
private CheckBoxGroup typePapierConservationCacGrpChp = null;
private LayoutContainer typePapierConservationCp;
private TextField<String> typePapierConservationAutreChp;
private ChampCaseACocher typePapierConservationChp = null;
private ChampCaseACocher methodeConservationChp = null;
private SliderField specimenFixationPourcentChp = null;
private SliderField etiquetteFixationPourcentChp = null;
public CollectionFormDescription(Formulaire formulaireCourrant) {
initialiserOnglet(formulaireCourrant);
63,16 → 70,55
FormLayout formulaireLayout = (FormLayout) this.getLayout();
formulaireLayout.setLabelAlign(LabelAlign.LEFT);
formulaireLayout.setLabelWidth(300);
layout();
creerUniteRangement();
creerUniteBase();
typePapierConservationCacGrpChp = new CheckBoxGroup();
typePapierConservationCacGrpChp.setFieldLabel("Quel est le type du papier de conservation ?");
typePapierConservationCp = Formulaire.creerChoixMultipleCp();
add(typePapierConservationCp);
mediateur.obtenirListeValeurEtRafraichir(this, "typePapier");
typePapierConservationChp = new ChampCaseACocher(i18nC.typePapierConservation(), "typePapier", true);
add(typePapierConservationChp);
methodeConservationChp = new ChampCaseACocher(i18nC.methodeConservation(), "methodeRangement", true);
add(methodeConservationChp);
Text fixationPoucentLabel = new Text(i18nC.fixationPourcent());
add(fixationPoucentLabel);
Slider specimenFixationPourcentSlider = new Slider();
specimenFixationPourcentSlider.setMinValue(0);
specimenFixationPourcentSlider.setMaxValue(100);
specimenFixationPourcentSlider.setValue(0);
specimenFixationPourcentSlider.setIncrement(1);
specimenFixationPourcentSlider.setMessage("{0} "+i18nC.specimenFixationPourcent());
specimenFixationPourcentSlider.addListener(Events.Change, new Listener<SliderEvent>() {
public void handleEvent(SliderEvent be) {
int pourcent = ((Slider) be.getComponent()).getValue();
specimenFixationPourcentChp.setFieldLabel(i18nC.specimenFixationPourcent()+" ("+pourcent+"%) ");
}
});
specimenFixationPourcentChp = new SliderField(specimenFixationPourcentSlider);
specimenFixationPourcentChp.setFieldLabel(i18nC.specimenFixationPourcent());
add(specimenFixationPourcentChp, new FormData(200, 0));
Slider etiquetteFixationPourcentSlider = new Slider();
etiquetteFixationPourcentSlider.setMinValue(0);
etiquetteFixationPourcentSlider.setMaxValue(100);
etiquetteFixationPourcentSlider.setValue(0);
etiquetteFixationPourcentSlider.setIncrement(1);
etiquetteFixationPourcentSlider.setMessage("{0} "+i18nC.etiquetteFixationPourcent());
etiquetteFixationPourcentSlider.addListener(Events.Change, new Listener<SliderEvent>() {
public void handleEvent(SliderEvent be) {
int pourcent = ((Slider) be.getComponent()).getValue();
etiquetteFixationPourcentChp.setFieldLabel(i18nC.etiquetteFixationPourcent()+" ("+pourcent+"%) ");
}
});
etiquetteFixationPourcentChp = new SliderField(etiquetteFixationPourcentSlider);
etiquetteFixationPourcentChp.setFieldLabel(i18nC.etiquetteFixationPourcent());
add(etiquetteFixationPourcentChp, new FormData(200, 0));
typePapierConservationChp = new ChampCaseACocher(i18nC.typePapierConservation(), "typePapier", true);
add(typePapierConservationChp);
layout();
}
444,9 → 490,6
}
} else if (listeValeurs.getId().equals(config.getListeId("etatUniteRangement"))) {
Formulaire.rafraichirComboBox(listeValeurs, etatUniteRangementCombo, "id_valeur");
} else if (listeValeurs.getId().equals(config.getListeId("typePapier"))) {
typePapierConservationAutreChp = new TextField<String>();
Formulaire.creerChoixMultipleCac(typePapierConservationCp, typePapierConservationCacGrpChp, listeValeurs, typePapierConservationAutreChp);
} else {
GWT.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!", null);
}
/trunk/src/org/tela_botanica/client/composants/ChampCaseACocher.java
New file
0,0 → 1,133
package org.tela_botanica.client.composants;
 
import java.util.Iterator;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Configuration;
import org.tela_botanica.client.modeles.Valeur;
import org.tela_botanica.client.modeles.ValeurListe;
 
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.event.BaseEvent;
import com.extjs.gxt.ui.client.event.Events;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.form.CheckBox;
import com.extjs.gxt.ui.client.widget.form.CheckBoxGroup;
import com.extjs.gxt.ui.client.widget.form.Field;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
import com.extjs.gxt.ui.client.widget.layout.FormData;
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
import com.extjs.gxt.ui.client.widget.tips.ToolTipConfig;
import com.google.gwt.core.client.GWT;
 
public class ChampCaseACocher extends LayoutContainer implements Rafraichissable {
private Configuration config = null;
private Mediateur mediateur = null;
private CheckBoxGroup groupeCaseACocher = null;
private boolean avoirChampAutre = false;
private Field<String> champAutre = null;
 
private String listeValeursCode = null;
public ChampCaseACocher(String label, String listeCode, boolean avoirChampAutre) {
config = (Configuration) Registry.get(RegistreId.CONFIG);
mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
 
setLayout(creerFormLayout(650, LabelAlign.TOP));
groupeCaseACocher = new CheckBoxGroup();
setLabel(label);
setChampAutre(avoirChampAutre);
setListeCode(listeCode);
mediateur.obtenirListeValeurEtRafraichir(this, getListeCode());
}
public String getListeCode() {
return listeValeursCode;
}
public void setListeCode(String code) {
listeValeursCode = code;
}
public void setLabel(String label) {
groupeCaseACocher.setFieldLabel(label);
}
public void setChampAutre(boolean avoirChamp) {
avoirChampAutre = avoirChamp;
if (avoirChampAutre) {
champAutre = new TextField<String>();
}
}
private FormLayout creerFormLayout(Integer labelWidth, LabelAlign labelAlign) {
FormLayout formLayout = new FormLayout();
if (labelWidth != null) {
formLayout.setLabelWidth(labelWidth);
}
if (labelAlign != null) {
formLayout.setLabelAlign(labelAlign);
}
return formLayout;
}
private void creerChoixMultipleCac(ValeurListe listeValeurs) {
addListener(Events.Hide, new Listener<BaseEvent>() {
public void handleEvent(BaseEvent be) {
groupeCaseACocher.reset();
if (avoirChampAutre) {
champAutre.setValue("");
}
}
});
groupeCaseACocher.setAutoWidth(true);
groupeCaseACocher.setStyleAttribute("padding", "3px");
groupeCaseACocher.setData("liste_id", listeValeurs.getId());
for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
Valeur val = listeValeurs.get(it.next());
String nom = val.get("nom");
CheckBox cac = new CheckBox();
cac.setId("val-"+val.getId());
cac.setData("id", val.getId());
cac.setBoxLabel(nom);
if (! val.getDescription().equals("NULL")) {
cac.setToolTip(new ToolTipConfig(val.getNom(), val.getDescription()));
}
groupeCaseACocher.add(cac);
}
add(groupeCaseACocher);
if (avoirChampAutre) {
// FIXME : éviter le chevauchement du texte des cases à cocher avec le label "Autre" sur les petits écrans
LayoutContainer conteneur = new LayoutContainer();
conteneur.setLayout(creerFormLayout(50, LabelAlign.TOP));
champAutre.setId("autre-"+listeValeurs.getId());
champAutre.setFieldLabel("Autre");
champAutre.setLabelStyle("font-weight:normal;");
conteneur.add(champAutre, new FormData(500, 0));
add(conteneur);
}
layout();
}
 
@Override
public void rafraichir(Object nouvellesDonnees) {
if (nouvellesDonnees instanceof ValeurListe) {
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
if (listeValeurs.getId().equals(config.getListeId(getListeCode()))) {
creerChoixMultipleCac(listeValeurs);
}
} else {
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
}
}
}