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); |
} |
} |
} |
|