/trunk/src/org/tela_botanica/client/vues/Formulaire.java |
---|
1,16 → 1,19 |
package org.tela_botanica.client.vues; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.i18n.Constantes; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.modeles.MenuApplicationId; |
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.Style.HorizontalAlignment; |
import com.extjs.gxt.ui.client.Style.Scroll; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
34,9 → 37,10 |
import com.extjs.gxt.ui.client.widget.layout.FormLayout; |
import com.extjs.gxt.ui.client.widget.tips.ToolTipConfig; |
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.user.client.ui.AbstractImagePrototype; |
public abstract class Formulaire extends LayoutContainer { |
public abstract class Formulaire extends LayoutContainer implements Rafraichissable { |
public static final String MODE_AJOUTER = "AJOUT"; |
public static final String MODE_MODIFIER = "MODIF"; |
48,7 → 52,8 |
protected Constantes i18nC = null; |
protected Mediateur mediateur = null; |
protected Configuration config = null; |
protected String mode = null; |
protected int tabIndex = 100; |
65,6 → 70,7 |
mediateur = mediateurCourrant; |
i18nC = Mediateur.i18nC; |
menuIdCourant = idMenuCourrant; |
config = (Configuration) Registry.get(RegistreId.CONFIG); |
// Iniatilisation du layoutContainer |
setLayout(new FitLayout()); |
92,11 → 98,7 |
TabItem onglet = new TabItem(); |
onglet.setId(id); |
onglet.setText(nom); |
onglet.setLayout(new FormLayout()); |
onglet.setStyleAttribute("padding", "10px"); |
onglet.setScrollMode(Scroll.AUTO); |
onglet.setData("acces", false); |
FormulaireOnglet.parametrer(onglet); |
return onglet; |
} |
151,7 → 153,7 |
* @param labelAlign alignement des labels |
* @return |
*/ |
protected FormLayout creerFormLayout(Integer labelWidth, LabelAlign labelAlign) { |
protected static FormLayout creerFormLayout(Integer labelWidth, LabelAlign labelAlign) { |
FormLayout formLayout = new FormLayout(); |
if (labelWidth != null) { |
formLayout.setLabelWidth(labelWidth); |
273,4 → 275,5 |
} |
cp.layout(); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/CollectionFormGeneral.java |
---|
New file |
0,0 → 1,343 |
package org.tela_botanica.client.vues; |
import java.util.List; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.composants.ChampMultiValeurs; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Collection; |
import org.tela_botanica.client.modeles.CollectionListe; |
import org.tela_botanica.client.modeles.Projet; |
import org.tela_botanica.client.modeles.ProjetListe; |
import org.tela_botanica.client.modeles.Structure; |
import org.tela_botanica.client.modeles.StructureListe; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.aDonneeListe; |
import com.extjs.gxt.ui.client.Style.SortDir; |
import com.extjs.gxt.ui.client.store.ListStore; |
import com.extjs.gxt.ui.client.widget.form.ComboBox; |
import com.extjs.gxt.ui.client.widget.form.Field; |
import com.extjs.gxt.ui.client.widget.form.FieldSet; |
import com.extjs.gxt.ui.client.widget.form.HiddenField; |
import com.extjs.gxt.ui.client.widget.form.NumberField; |
import com.extjs.gxt.ui.client.widget.form.TextArea; |
import com.extjs.gxt.ui.client.widget.form.TextField; |
import com.extjs.gxt.ui.client.widget.form.Validator; |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; |
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign; |
import com.extjs.gxt.ui.client.widget.layout.FormData; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.i18n.client.NumberFormat; |
public class CollectionFormGeneral extends FormulaireOnglet implements Rafraichissable { |
private HiddenField<String> idCollectionChp; |
private FieldSet descriptionFieldSet; |
private ListStore<Valeur> typesCollectionStore; |
private ListStore<Valeur> typeCollectionBotaStore; |
private ListStore<Valeur> typeDepotStore; |
private ComboBox<Valeur> typeDepotCombo; |
private ComboBox<Valeur> typesCollectionBotaCombo; |
private ComboBox<Valeur> typesCollectionCombo; |
private ListStore<Projet> projetsStore; |
private ComboBox<Projet> projetsCombo; |
private ComboBox<Structure> structuresCombo; |
private ListStore<Structure> structuresStore; |
private ComboBox<Collection> collectionsCombo; |
private ListStore<Collection> collectionsStore; |
public CollectionFormGeneral(Formulaire formulaireCourrant) { |
initialiserOnglet(formulaireCourrant); |
setId("general"); |
setText(Mediateur.i18nC.collectionGeneral()); |
creerChampsCache(); |
creerFieldsetLiaison(); |
creerFieldsetAdministratif(); |
creerFieldsetDescription(); |
} |
private void creerChampsCache() { |
// Champs cachés |
idCollectionChp = new HiddenField<String>(); |
this.add(idCollectionChp); |
} |
private void creerFieldsetLiaison() { |
// Fieldset LIAISON |
FieldSet liaisonFieldSet = new FieldSet(); |
liaisonFieldSet.setHeading(i18nC.liaisonTitreCollection()); |
liaisonFieldSet.setCollapsible(true); |
liaisonFieldSet.setLayout(Formulaire.creerFormLayout(150, LabelAlign.LEFT)); |
projetsStore = new ListStore<Projet>(); |
projetsCombo = new ComboBox<Projet>(); |
projetsCombo.setTabIndex(tabIndex++); |
projetsCombo.setFieldLabel(i18nC.projetChamp()); |
projetsCombo.setDisplayField("nom"); |
projetsCombo.setForceSelection(true); |
projetsCombo.setValidator(new Validator() { |
@Override |
public String validate(Field<?> field, String value) { |
String retour = null; |
if (field.getRawValue().equals("")) { |
field.setValue(null); |
} else if (projetsStore.findModel("nom", field.getRawValue()) == null) { |
String contenuBrut = field.getRawValue(); |
field.setValue(null); |
field.setRawValue(contenuBrut); |
retour = "Veuillez sélectionner une valeur ou laisser le champ vide"; |
} |
return retour; |
} |
}); |
projetsCombo.setTriggerAction(TriggerAction.ALL); |
projetsCombo.setStore(projetsStore); |
liaisonFieldSet.add(projetsCombo, new FormData(450, 0)); |
mediateur.selectionnerProjets(this); |
structuresStore = new ListStore<Structure>(); |
structuresCombo = new ComboBox<Structure>(); |
structuresCombo.setTabIndex(tabIndex++); |
structuresCombo.setFieldLabel(i18nC.lienStructureCollection()); |
structuresCombo.setDisplayField("nom"); |
structuresCombo.setForceSelection(true); |
structuresCombo.setValidator(new Validator() { |
@Override |
public String validate(Field<?> field, String value) { |
String retour = null; |
if (field.getRawValue().equals("")) { |
field.setValue(null); |
} else if (structuresStore.findModel("nom", field.getRawValue()) == null) { |
String contenuBrut = field.getRawValue(); |
field.setValue(null); |
field.setRawValue(contenuBrut); |
retour = "Veuillez sélectionner une valeur ou laisser le champ vide"; |
} |
return retour; |
} |
}); |
structuresCombo.setTriggerAction(TriggerAction.ALL); |
structuresCombo.setStore(structuresStore); |
liaisonFieldSet.add(structuresCombo, new FormData(450, 0)); |
mediateur.selectionnerStructure(this, null); |
collectionsStore = new ListStore<Collection>(); |
collectionsCombo = new ComboBox<Collection>(); |
collectionsCombo.setTabIndex(tabIndex++); |
collectionsCombo.setFieldLabel(i18nC.lienMereCollection()); |
collectionsCombo.setDisplayField("nom"); |
collectionsCombo.setForceSelection(true); |
collectionsCombo.setValidator(new Validator() { |
@Override |
public String validate(Field<?> field, String value) { |
String retour = null; |
if (field.getRawValue().equals("")) { |
field.setValue(null); |
} else if (collectionsStore.findModel("nom", field.getRawValue()) == null) { |
String contenuBrut = field.getRawValue(); |
field.setValue(null); |
field.setRawValue(contenuBrut); |
retour = "Veuillez sélectionner une valeur ou laisser le champ vide"; |
} |
GWT.log("Validation : "+field.getRawValue()+"-"+field.getValue(), null); |
return retour; |
} |
}); |
collectionsCombo.setTriggerAction(TriggerAction.ALL); |
collectionsCombo.setStore(collectionsStore); |
liaisonFieldSet.add(collectionsCombo, new FormData(450, 0)); |
mediateur.selectionnerCollection(this, null); |
this.add(liaisonFieldSet); |
} |
private void creerFieldsetAdministratif() { |
// Fieldset ADMINISTRATIF |
FieldSet administratifFieldSet = new FieldSet(); |
administratifFieldSet.setHeading(i18nC.collectionGeneralTitre()); |
administratifFieldSet.setCollapsible(true); |
administratifFieldSet.setLayout(Formulaire.creerFormLayout(150, LabelAlign.LEFT)); |
typesCollectionStore = new ListStore<Valeur>(); |
typesCollectionCombo = new ComboBox<Valeur>(); |
typesCollectionCombo.setTabIndex(tabIndex++); |
typesCollectionCombo.setFieldLabel(i18nC.typeCollectionNcd()); |
typesCollectionCombo.setDisplayField("nom"); |
typesCollectionCombo.setForceSelection(true); |
typesCollectionCombo.setValidator(new Validator() { |
@Override |
public String validate(Field<?> field, String value) { |
String retour = null; |
if (field.getRawValue().equals("")) { |
field.setValue(null); |
} else if (typesCollectionStore.findModel("nom", field.getRawValue()) == null) { |
String contenuBrut = field.getRawValue(); |
field.setValue(null); |
field.setRawValue(contenuBrut); |
retour = "Veuillez sélectionner une valeur ou laisser le champ vide"; |
} |
return retour; |
} |
}); |
typesCollectionCombo.setTriggerAction(TriggerAction.ALL); |
typesCollectionCombo.setStore(typesCollectionStore); |
administratifFieldSet.add(typesCollectionCombo, new FormData(250, 0)); |
mediateur.obtenirListeValeurEtRafraichir(this, "typeCollectionNcd"); |
typeCollectionBotaStore = new ListStore<Valeur>(); |
typesCollectionBotaCombo = new ComboBox<Valeur>(); |
typesCollectionBotaCombo.setTabIndex(tabIndex++); |
typesCollectionBotaCombo.setFieldLabel(i18nC.typeCollectionBotanique()); |
typesCollectionBotaCombo.setDisplayField("nom"); |
typesCollectionBotaCombo.setForceSelection(true); |
typesCollectionBotaCombo.setValidator(new Validator() { |
@Override |
public String validate(Field<?> field, String value) { |
String retour = null; |
if (field.getRawValue().equals("")) { |
field.setValue(null); |
} else if (typeCollectionBotaStore.findModel("nom", field.getRawValue()) == null) { |
String contenuBrut = field.getRawValue(); |
field.setValue(null); |
field.setRawValue(contenuBrut); |
retour = "Veuillez sélectionner une valeur ou laisser le champ vide"; |
} |
return retour; |
} |
}); |
typesCollectionBotaCombo.setTriggerAction(TriggerAction.ALL); |
typesCollectionBotaCombo.setStore(typeCollectionBotaStore); |
administratifFieldSet.add(typesCollectionBotaCombo, new FormData(250, 0)); |
mediateur.obtenirListeValeurEtRafraichir(this, "typeCollectionBota"); |
typeDepotStore = new ListStore<Valeur>(); |
typeDepotCombo = new ComboBox<Valeur>(); |
typeDepotCombo.setTabIndex(tabIndex++); |
typeDepotCombo.setFieldLabel(i18nC.typeDepot()); |
typeDepotCombo.setDisplayField("nom"); |
typeDepotCombo.setForceSelection(true); |
typeDepotCombo.setValidator(new Validator() { |
@Override |
public String validate(Field<?> field, String value) { |
String retour = null; |
if (field.getRawValue().equals("")) { |
field.setValue(null); |
} else if (typeDepotStore.findModel("nom", field.getRawValue()) == null) { |
String contenuBrut = field.getRawValue(); |
field.setValue(null); |
field.setRawValue(contenuBrut); |
retour = "Veuillez sélectionner une valeur ou laisser le champ vide"; |
} |
return retour; |
} |
}); |
typeDepotCombo.setTriggerAction(TriggerAction.ALL); |
typeDepotCombo.setStore(typeCollectionBotaStore); |
administratifFieldSet.add(typeDepotCombo, new FormData(250, 0)); |
mediateur.obtenirListeValeurEtRafraichir(this, "typeDepot"); |
TextField<String> coteChp = new TextField<String>(); |
coteChp.setTabIndex(tabIndex++); |
coteChp.setFieldLabel(i18nC.cote()); |
administratifFieldSet.add(coteChp, new FormData(450, 0)); |
NumberField nbreEchantillonChp = new NumberField(); |
nbreEchantillonChp.setFieldLabel(i18nC.nbreEchantillon()); |
nbreEchantillonChp.setToolTip(i18nC.nbreEchantillonInfo()); |
nbreEchantillonChp.setFormat(NumberFormat.getFormat("#")); |
nbreEchantillonChp.setToolTip(i18nC.champNumerique()); |
administratifFieldSet.add(nbreEchantillonChp); |
TextField<String> nomChp = new TextField<String>(); |
nomChp.setTabIndex(tabIndex++); |
nomChp.setFieldLabel(i18nC.nomCollection()); |
nomChp.setAllowBlank(false); |
nomChp.getMessages().setBlankText(i18nC.champObligatoire()); |
administratifFieldSet.add(nomChp, new FormData(450, 0)); |
ChampMultiValeurs nomsAlternatifsChp = new ChampMultiValeurs(i18nC.intituleAlternatifCollection()); |
administratifFieldSet.add(nomsAlternatifsChp); |
ChampMultiValeurs codesAlternatifsChp = new ChampMultiValeurs(i18nC.codeAlternatifCollection()); |
administratifFieldSet.add(codesAlternatifsChp); |
this.add(administratifFieldSet); |
} |
private void creerFieldsetDescription() { |
// Fieldset DESCRIPTION |
descriptionFieldSet = new FieldSet(); |
descriptionFieldSet.setHeading(i18nC.collectionDescriptionTitre()); |
descriptionFieldSet.setCollapsible(true); |
descriptionFieldSet.setLayout(Formulaire.creerFormLayout(150, LabelAlign.LEFT)); |
TextArea descriptionChp = new TextArea(); |
descriptionChp.setFieldLabel(i18nC.description()); |
descriptionFieldSet.add(descriptionChp, new FormData(550, 0)); |
TextArea descriptionSpecialisteChp = new TextArea(); |
descriptionSpecialisteChp.setFieldLabel(i18nC.descriptionSpecialiste()); |
descriptionFieldSet.add(descriptionSpecialisteChp, new FormData(550, 0)); |
TextArea historiqueChp = new TextArea(); |
historiqueChp.setFieldLabel(i18nC.historique()); |
descriptionFieldSet.add(historiqueChp, new FormData(550, 0)); |
ChampMultiValeurs urlsChp = new ChampMultiValeurs(i18nC.urlsCollection()); |
descriptionFieldSet.add(urlsChp); |
this.add(descriptionFieldSet); |
} |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof ValeurListe) { |
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees; |
rafraichirValeurListe(listeValeurs); |
} else if (nouvellesDonnees instanceof ProjetListe) { |
ProjetListe projets = (ProjetListe) nouvellesDonnees; |
rafraichirComboBox(projets, projetsStore, projetsCombo); |
} else if (nouvellesDonnees instanceof StructureListe) { |
StructureListe structures = (StructureListe) nouvellesDonnees; |
rafraichirComboBox(structures, structuresStore, structuresCombo); |
} else if (nouvellesDonnees instanceof CollectionListe) { |
CollectionListe collections = (CollectionListe) nouvellesDonnees; |
rafraichirComboBox(collections, collectionsStore, collectionsCombo); |
} else { |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null); |
} |
} |
private void rafraichirValeurListe(ValeurListe listeValeurs) { |
if (listeValeurs.getId().equals(config.getListeId("typeCollectionNcd"))) { |
rafraichirComboBox(listeValeurs, typesCollectionStore, typesCollectionCombo); |
} else if (listeValeurs.getId().equals(config.getListeId("typeCollectionBota"))) { |
rafraichirComboBox(listeValeurs, typeCollectionBotaStore, typesCollectionBotaCombo); |
} else if (listeValeurs.getId().equals(config.getListeId("typeDepot"))) { |
rafraichirComboBox(listeValeurs, typeDepotStore, typeDepotCombo); |
} else { |
GWT.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!", null); |
} |
} |
@SuppressWarnings({"unchecked"}) |
private void rafraichirComboBox(aDonneeListe<?> listeValeurs, ListStore store, ComboBox combo) { |
List<?> liste = listeValeurs.toList(); |
if (liste.size() > 0) { |
store.removeAll(); |
store.add(liste); |
store.sort("nom", SortDir.ASC); |
combo.setStore(store); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/FormulaireOnglet.java |
---|
New file |
0,0 → 1,56 |
package org.tela_botanica.client.vues; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.i18n.Constantes; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Configuration; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.Style.Scroll; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.event.Listener; |
import com.extjs.gxt.ui.client.widget.TabItem; |
import com.extjs.gxt.ui.client.widget.layout.FormLayout; |
public abstract class FormulaireOnglet extends TabItem implements Rafraichissable { |
protected Formulaire formulaire = null; |
protected Mediateur mediateur = null; |
protected Constantes i18nC = null; |
protected Configuration config = null; |
protected String mode = null; |
protected int tabIndex = 100; |
public FormulaireOnglet() { |
parametrer(this); |
addListener(Events.Select, new Listener<ComponentEvent>() { |
public void handleEvent(ComponentEvent be) { |
actualiser(); |
} |
}); |
} |
public static void parametrer(TabItem onglet) { |
onglet.setLayout(new FormLayout()); |
onglet.setStyleAttribute("padding", "10px"); |
onglet.setScrollMode(Scroll.AUTO); |
onglet.setData("acces", false); |
} |
protected void initialiserOnglet(Formulaire formulaireCourrant) { |
formulaire = formulaireCourrant; |
mediateur = formulaire.mediateur; |
i18nC = Mediateur.i18nC; |
config = (Configuration) Registry.get(RegistreId.CONFIG); |
mode = formulaire.mode; |
tabIndex = formulaire.tabIndex; |
} |
public void actualiser() { |
layout(); |
} |
} |
/trunk/src/org/tela_botanica/client/vues/CollectionForm.java |
---|
1,34 → 1,69 |
package org.tela_botanica.client.vues; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.composants.ChampMultiValeurs; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Collection; |
import org.tela_botanica.client.modeles.CollectionListe; |
import org.tela_botanica.client.modeles.Configuration; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.MenuApplicationId; |
import org.tela_botanica.client.modeles.Projet; |
import org.tela_botanica.client.modeles.ProjetListe; |
import org.tela_botanica.client.modeles.Structure; |
import org.tela_botanica.client.modeles.StructureConservation; |
import org.tela_botanica.client.modeles.StructureValorisation; |
import org.tela_botanica.client.modeles.StructureListe; |
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.Style.SortDir; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
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.SelectionChangedEvent; |
import com.extjs.gxt.ui.client.event.SelectionChangedListener; |
import com.extjs.gxt.ui.client.event.SelectionListener; |
import com.extjs.gxt.ui.client.event.WidgetListener; |
import com.extjs.gxt.ui.client.store.ListStore; |
import com.extjs.gxt.ui.client.store.Store; |
import com.extjs.gxt.ui.client.store.StoreEvent; |
import com.extjs.gxt.ui.client.store.StoreListener; |
import com.extjs.gxt.ui.client.widget.Component; |
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.TabItem; |
import com.extjs.gxt.ui.client.widget.TabPanel; |
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.ComboBox; |
import com.extjs.gxt.ui.client.widget.form.Field; |
import com.extjs.gxt.ui.client.widget.form.FieldSet; |
import com.extjs.gxt.ui.client.widget.form.HiddenField; |
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.Radio; |
import com.extjs.gxt.ui.client.widget.form.TextArea; |
import com.extjs.gxt.ui.client.widget.form.TextField; |
import com.extjs.gxt.ui.client.widget.form.Validator; |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; |
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign; |
import com.extjs.gxt.ui.client.widget.layout.ColumnData; |
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout; |
import com.extjs.gxt.ui.client.widget.layout.FormData; |
import com.extjs.gxt.ui.client.widget.layout.RowLayout; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.i18n.client.NumberFormat; |
import com.google.gwt.user.client.ui.Widget; |
public class CollectionForm extends Formulaire implements Rafraichissable { |
36,15 → 71,32 |
private Collection collection = null; |
private Collection collectionCollectee = null; |
private HashMap<String, Widget>champs = new HashMap<String, Widget>(); |
private HashMap<String,FieldSet> champsFs = new HashMap<String,FieldSet>(); |
private HashMap<String,LayoutContainer> champsLc = new HashMap<String,LayoutContainer>(); |
private HashMap<String,HiddenField<String>> champsHfs = new HashMap<String,HiddenField<String>>(); |
private HashMap<String,TextField<String>> champsTfs = new HashMap<String,TextField<String>>(); |
private HashMap<String,TextArea> champsTa = new HashMap<String,TextArea>(); |
private HashMap<String,ChampMultiValeurs> champsCmv = new HashMap<String,ChampMultiValeurs>(); |
private HashMap<String,Text> champsT = new HashMap<String,Text>(); |
private HashMap<String,ComboBox<Valeur>> champsCbv = new HashMap<String,ComboBox<Valeur>>(); |
private HashMap<String,ListStore<Valeur>> champsLsv = new HashMap<String,ListStore<Valeur>>(); |
private TabItem generalOnglet = null; |
private TabItem auteurOnglet = null; |
private TabItem publicationOnglet = null; |
private TabItem descriptionOnglet = null; |
private TabItem contenuOnglet = null; |
private TabItem documentOnglet = null; |
private TabItem inventaireOnglet = null; |
private ListStore<Projet> projetsStore; |
private ComboBox<Projet> projetsCombo; |
private ListStore<Structure> structuresStore; |
private ComboBox<Structure> structuresCombo; |
private ListStore<Collection> collectionsStore; |
private ComboBox<Collection> collectionsCombo; |
public CollectionForm(Mediateur mediateurCourrant, String modeDeCreation) { |
initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.COLLECTION); |
} |
60,6 → 112,9 |
// Onlget formulaire AUTEUR |
onglets.add(creerOngletAuteur()); |
// Onlget formulaire PUBLICATION |
onglets.add(creerOngletPublication()); |
// Onlget formulaire DESCRIPTION |
onglets.add(creerOngletDescription()); |
80,46 → 135,7 |
} |
private TabItem creerOngletGeneral() { |
generalOnglet = creerOnglet(i18nC.collectionGeneral(), "general"); |
generalOnglet.addListener(Events.Select, new Listener<ComponentEvent>() { |
public void handleEvent(ComponentEvent be) { |
//peuplerOngletGeneral(); |
generalOnglet.layout(); |
} |
}); |
//+-----------------------------------------------------------------------------------------------------------+ |
// Champs cachés |
HiddenField<String> idCollectionChp = new HiddenField<String>(); |
champs.put("idCollectionChp", idCollectionChp); |
//+-----------------------------------------------------------------------------------------------------------+ |
// Fieldset ADMINISTRATIF |
FieldSet administratifFieldSet = new FieldSet(); |
administratifFieldSet.setHeading(i18nC.collectionGeneralTitre()); |
administratifFieldSet.setCollapsible(true); |
administratifFieldSet.setLayout(creerFormLayout(120, LabelAlign.LEFT)); |
TextField<String> nomChp = new TextField<String>(); |
nomChp.setTabIndex(tabIndex++); |
nomChp.setFieldLabel(i18nC.nomCollection()); |
nomChp.setAllowBlank(false); |
nomChp.getMessages().setBlankText(i18nC.champObligatoire()); |
administratifFieldSet.add(nomChp, new FormData(450, 0)); |
generalOnglet.add(administratifFieldSet); |
//+-----------------------------------------------------------------------------------------------------------+ |
// Fieldset DESCRIPTION |
FieldSet descriptionFieldSet = new FieldSet(); |
descriptionFieldSet.setHeading(i18nC.collectionDescriptionTitre()); |
descriptionFieldSet.setCollapsible(true); |
descriptionFieldSet.setLayout(creerFormLayout(120, LabelAlign.LEFT)); |
generalOnglet.add(descriptionFieldSet); |
//+-----------------------------------------------------------------------------------------------------------+ |
// Retour |
generalOnglet = new CollectionFormGeneral(this); |
return generalOnglet; |
} |
135,6 → 151,18 |
return auteurOnglet; |
} |
private TabItem creerOngletPublication() { |
publicationOnglet = creerOnglet(i18nC.collectionPublication(), "publication"); |
publicationOnglet.addListener(Events.Select, new Listener<ComponentEvent>() { |
public void handleEvent(ComponentEvent be) { |
//peuplerOngletAuteur(); |
publicationOnglet.layout(); |
} |
}); |
return publicationOnglet; |
} |
private TabItem creerOngletDescription() { |
descriptionOnglet = creerOnglet(i18nC.collectionDescription(), "description"); |
descriptionOnglet.addListener(Events.Select, new Listener<ComponentEvent>() { |
148,7 → 176,7 |
} |
private TabItem creerOngletContenu() { |
contenuOnglet = creerOnglet(i18nC.collectionDescription(), "contenu"); |
contenuOnglet = creerOnglet(i18nC.collectionContenu(), "contenu"); |
contenuOnglet.addListener(Events.Select, new Listener<ComponentEvent>() { |
public void handleEvent(ComponentEvent be) { |
//peuplerOngletContenu(); |
160,7 → 188,7 |
} |
private TabItem creerOngletDocument() { |
documentOnglet = creerOnglet(i18nC.collectionDescription(), "document"); |
documentOnglet = creerOnglet(i18nC.collectionDocument(), "document"); |
documentOnglet.addListener(Events.Select, new Listener<ComponentEvent>() { |
public void handleEvent(ComponentEvent be) { |
//peuplerOngletDocument(); |
172,7 → 200,7 |
} |
private TabItem creerOngletInventaire() { |
inventaireOnglet = creerOnglet(i18nC.collectionDescription(), "inventaire"); |
inventaireOnglet = creerOnglet(i18nC.collectionInventaire(), "inventaire"); |
inventaireOnglet.addListener(Events.Select, new Listener<ComponentEvent>() { |
public void handleEvent(ComponentEvent be) { |
//peuplerOngletInventaire(); |
200,7 → 228,7 |
verifierApresRafraichissement(); |
} |
public void rafraichirInformation(Information info) { |
private void rafraichirInformation(Information info) { |
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) { |
GWT.log("MESSAGES:\n"+info.getMessages().toString(), null); |
} |
217,12 → 245,28 |
} |
} |
public void rafraichirValeurListe(ValeurListe listeValeurs) { |
private void rafraichirValeurListe(ValeurListe listeValeurs) { |
List<Valeur> liste = listeValeurs.toList(); |
// Test pour savoir si la liste contient des éléments |
if (liste.size() > 0) { |
String[] listesTraitables = {}; |
Boolean implemente = false; |
for (int i = 0; i < listesTraitables.length; i++) { |
String id = listesTraitables[i]; |
GWT.log(id, null); |
if (listeValeurs.getId().equals(config.getListeId(id))) { |
champsLsv.get(id).removeAll(); |
champsLsv.get(id).add(liste); |
champsCbv.get(id).setStore(champsLsv.get(id)); |
implemente = true; |
break; |
} |
} |
if (implemente == false) { |
GWT.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!", null); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/CollectionDetailVue.java |
---|
28,6 → 28,7 |
private String enteteTpl = null; |
private String generalTpl = null; |
private String auteurTpl = null; |
private String publicationTpl = null; |
private String descriptionTpl = null; |
private String contenuTpl = null; |
private String documentTpl = null; |
40,6 → 41,7 |
private TabPanel onglets = null; |
private TabItem generalOnglet = null; |
private TabItem auteurOnglet = null; |
private TabItem publicationOnglet = null; |
private TabItem descriptionOnglet = null; |
private TabItem contenuOnglet = null; |
private TabItem documentOnglet = null; |
74,6 → 76,11 |
auteurOnglet.setScrollMode(Scroll.AUTO); |
onglets.add(auteurOnglet); |
publicationOnglet = new TabItem(i18nC.collectionPublication()); |
publicationOnglet.setLayout(new AnchorLayout()); |
publicationOnglet.setScrollMode(Scroll.AUTO); |
onglets.add(publicationOnglet); |
descriptionOnglet = new TabItem(i18nC.collectionDescription()); |
descriptionOnglet.setLayout(new AnchorLayout()); |
descriptionOnglet.setScrollMode(Scroll.AUTO); |
102,6 → 109,7 |
initialiserEnteteHtmlTpl(); |
initialiserGeneralTpl(); |
initialiserAuteurTpl(); |
initialiserPublicationTpl(); |
initialiserContenuTpl(); |
initialiserDescriptionTpl(); |
initialiserDocumentTpl(); |
127,6 → 135,10 |
" <span class='{css_label}'>{i18n_code} :</span> {code}<br />"+ |
" <span class='{css_label}'>{i18n_cote} :</span> {cote}<br />"+ |
" <span class='{css_label}'>{i18n_mere} :</span> {mere}<br />"+ |
" <span class='{css_label}'>{i18n_type_ncd} :</span> {type_ncd}<br />"+ |
" <span class='{css_label}'>{i18n_type_botanique} :</span> {type_botanique}<br />"+ |
" <span class='{css_label}'>{i18n_type_depot} :</span> {type_depot}<br />"+ |
" <span class='{css_label}'>{i18n_nbre_echantillon} :</span> {nbre_echantillon}<br />"+ |
" </div>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_general_collection_titre}</h2>"+ |
136,8 → 148,6 |
" <span class='{css_label}'>{i18n_web} :</span> {web}<br />"+ |
" <span class='{css_label}'>{i18n_groupement_principe} :</span> {groupement_principe}<br />"+ |
" <span class='{css_label}'>{i18n_groupement_but} :</span> {groupement_but}<br />"+ |
" <span class='{css_label}'>{i18n_type_ncd} :</span> {type_ncd}<br />"+ |
" <span class='{css_label}'>{i18n_type_botanique} :</span> {type_botanique}<br />"+ |
" </div>"+ |
" <hr class='{css_clear}'/>"+ |
"</div>"; |
153,6 → 163,16 |
"</div>"; |
} |
private void initialiserPublicationTpl() { |
publicationTpl = |
"<div class='{css_corps}'>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_publication}</h2>"+ |
" </div>"+ |
" <hr class='{css_clear}'/>"+ |
"</div>"; |
} |
private void initialiserDescriptionTpl() { |
descriptionTpl = |
"<div class='{css_corps}'>"+ |
218,6 → 238,7 |
afficherEntete(); |
afficherIdentification(); |
afficherAuteur(); |
afficherPublication(); |
afficherDescription(); |
afficherContenu(); |
afficherDocument(); |
244,11 → 265,16 |
private void afficherIdentification() { |
Params generalParams = new Params(); |
generalParams.set("i18n_titre_identification", i18nC.titreAdministratif()); |
generalParams.set("i18n_nom_alternatif", i18nC.nomAlternatif()); |
generalParams.set("i18n_acronyme", i18nC.acronyme()); |
generalParams.set("i18n_code", i18nC.code()); |
generalParams.set("i18n_cote", i18nC.cote()); |
generalParams.set("i18n_nom_alternatif", i18nC.nomAlternatif()); |
generalParams.set("i18n_mere", i18nC.collectionMere()); |
generalParams.set("i18n_type_ncd", i18nC.typeCollectionNcd()); |
generalParams.set("i18n_type_botanique", i18nC.typeCollectionBotanique()); |
generalParams.set("i18n_type_depot", i18nC.typeDepot()); |
generalParams.set("i18n_nbre_echantillon", i18nC.nbreEchantillon()); |
generalParams.set("i18n_general_collection_titre", i18nC.collectionGeneralTitre()); |
generalParams.set("i18n_description", i18nC.description()); |
generalParams.set("i18n_description_specialiste", i18nC.descriptionSpecialiste()); |
256,9 → 282,6 |
generalParams.set("i18n_web", i18nC.siteWeb()); |
generalParams.set("i18n_groupement_principe", i18nC.groupementPrincipe()); |
generalParams.set("i18n_groupement_but", i18nC.groupementBut()); |
generalParams.set("i18n_type_ncd", i18nC.typeCollectionNcd()); |
generalParams.set("i18n_type_botanique", i18nC.typeCollectionBotanique()); |
generalParams.set("i18n_type_depot", i18nC.typeDepot()); |
String acronyme = construireTxtTruck(collection.getIdAlternatif()); |
String code = construireTxtTruck(collection.getCode()); |
273,6 → 296,11 |
generalParams.set("code", code); |
generalParams.set("cote", collection.getCote()); |
generalParams.set("mere", collection.getCollectionMereNom()); |
generalParams.set("type_ncd", typeNcd); |
generalParams.set("type_botanique", typeBota); |
generalParams.set("type_depot", typeDepot); |
generalParams.set("nbre_echantillon", collection.getBotanique().getNbreEchantillon()); |
generalParams.set("description", collection.getDescription()); |
generalParams.set("description_specialiste", collection.getDescriptionSpecialiste()); |
generalParams.set("historique", collection.getHistorique()); |
279,9 → 307,6 |
generalParams.set("web", urls); |
generalParams.set("groupement_principe", collection.getGroupementPrincipe()); |
generalParams.set("groupement_but", collection.getGroupementBut()); |
generalParams.set("type_ncd", typeNcd); |
generalParams.set("type_botanique", typeBota); |
generalParams.set("type_depot", typeDepot); |
afficherOnglet(generalTpl, generalParams, generalOnglet); |
} |
293,6 → 318,13 |
afficherOnglet(auteurTpl, auteurParams, auteurOnglet); |
} |
private void afficherPublication() { |
Params publicationParams = new Params(); |
publicationParams.set("i18n_titre_publication", i18nC.collectionPublicationTitre()); |
afficherOnglet(publicationTpl, publicationParams, publicationOnglet); |
} |
private void afficherDescription() { |
Params descriptionParams = new Params(); |
descriptionParams.set("i18n_titre_description", i18nC.collectionDescriptionTitre()); |