New file |
0,0 → 1,152 |
package org.tela_botanica.client.composants; |
|
|
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.images.Images; |
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.ButtonEvent; |
import com.extjs.gxt.ui.client.event.SelectionListener; |
import com.extjs.gxt.ui.client.store.ListStore; |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
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.layout.ColumnData; |
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout; |
import com.extjs.gxt.ui.client.widget.layout.RowLayout; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.user.client.ui.Image; |
|
public class ChampMultiValeursMultiTypes extends ChampMultiValeurs implements Rafraichissable{ |
|
private String idListeType; |
private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG); |
|
public ChampMultiValeursMultiTypes() { |
super(true, null, 0); |
} |
|
public ChampMultiValeursMultiTypes(String label) { |
super(true, label, 0); |
} |
|
public ChampMultiValeursMultiTypes(String label, int largeurTotale) { |
super(true, label, largeurTotale); |
} |
|
public void initialiserType(String idListeType, Mediateur mediateur) { |
this.idListeType = idListeType; |
mediateur.obtenirListeValeurEtRafraichir(this, idListeType); |
} |
|
public ListStore getStore() { |
return this.types.getStore(); |
} |
|
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof ValeurListe) { |
|
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees; |
|
// Créer une liste de valeurs |
List<Valeur> liste = new ArrayList<Valeur>(); |
for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) { |
liste.add(listeValeurs.get(it.next())); |
} |
|
if (listeValeurs.getId().equals(config.getListeId(idListeType))) { |
|
ListStore<Valeur> store = getStore(); |
store.removeAll(); |
store.add(liste); |
types.setStore(store); |
} |
|
} |
} |
|
public void ajouterValeur(final String texte, final String type, final String id) { |
|
LayoutContainer colonneLayout = new LayoutContainer(); |
colonneLayout.setLayout(new ColumnLayout()); |
valeurs.put(id + "##" + texte, colonneLayout); |
|
Text champTxt = new Text(); |
champTxt.setText(type + ": "); |
|
int largeurType = type.length() * 10; |
colonneLayout.add(champTxt, new ColumnData(largeurType)); |
|
Text champTxt2 = new Text(); |
champTxt2.setText(texte); |
colonneLayout.add(champTxt2, new ColumnData(largeurTotale - largeurType - largeurBouton)); |
|
Button supprimerBouton = new Button(); |
supprimerBouton.setIcon(Images.ICONES.supprimer()); |
supprimerBouton.setText(boutonSupprimerLabel); |
supprimerBouton.setData("valeur", id + "##" + texte); |
supprimerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
String valeur = ce.getComponent().getData("valeur"); |
LayoutContainer valeurLayout = valeurs.get(valeur); |
principalLayout.remove(valeurLayout); |
|
valeurs.remove(valeur); |
|
supprimerValeurDuRecapitulatif(valeur); |
|
actualiserLayoutGlobal(); |
} |
}); |
colonneLayout.add(supprimerBouton, new ColumnData(largeurBouton)); |
|
// Ajout du layout de la valeur au layout principal |
principalLayout.add(colonneLayout); |
|
// Ajout de la valeur au champ récapitulatif des valeurs ajoutées |
ajouterValeurAuRecapitulatif(texte, id); |
reinitialiserChamp(); |
actualiserLayoutGlobal(); |
} |
|
public void reinitialiserChamp() { |
champTexte.setValue(valeurParDefaut); |
types.reset(); |
} |
|
public void ajouterValeurAuRecapitulatif(String texte, String id) { |
String texteRecapitulatif = ""; |
if (champRecapitulatif.getValue() != null) { |
texteRecapitulatif = champRecapitulatif.getValue(); |
} |
texteRecapitulatif += id + "##" + texte + ";;"; |
champRecapitulatif.setValue(texteRecapitulatif); |
} |
|
public void peupler(String chaineExistante) { |
|
if (chaineExistante != null && !chaineExistante.trim().equals("")) { |
String[] valeurs = chaineExistante.split(";;"); |
for (int i = 0; i < valeurs.length; i++) { |
String[] idEtValeur = valeurs[i].split("##"); |
String id = idEtValeur[0]; |
String valeur = idEtValeur[1]; |
|
Valeur objetValeur = types.getStore().findModel("abreviation",id); |
String texte = objetValeur.getNom(); |
ajouterValeur(valeur, texte, id); |
} |
} |
} |
} |