New file |
0,0 → 1,175 |
package org.tela_botanica.client.composants; |
|
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.configuration.Configuration; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
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.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.vues.Formulaire; |
|
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.layout.ColumnData; |
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout; |
|
public class ChampMultiValeursMultiTypes extends ChampMultiValeurs implements Rafraichissable { |
|
private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG); |
private String idListeType = null; |
private String idListeCombo = null; |
|
public ChampMultiValeursMultiTypes() { |
super(false, true, null, 0, 0); |
} |
|
public ChampMultiValeursMultiTypes(String label) { |
super(false, true, label, 0, 0); |
} |
|
public ChampMultiValeursMultiTypes(String label, int largeurTotale, int largeurType) { |
super(false, true, label, largeurTotale, largeurType); |
} |
|
public ChampMultiValeursMultiTypes(String label, int largeurTotale, boolean combobox) { |
super(true, true, label, largeurTotale, largeurTotale); |
} |
|
public ChampMultiValeursMultiTypes(String label, int largeurTotale, int largeurType, boolean combobox) { |
super(true, true, label, largeurTotale, largeurType); |
} |
|
public void initialiserType(String idListe) { |
initialiserType(idListe, null); |
} |
|
public void initialiserType(String idListe, Sequenceur sequenceur) { |
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR); |
idListeType = idListe; |
mediateur.obtenirListeValeurEtRafraichir(this, idListeType, sequenceur); |
} |
|
public void initialiserCombobox(String idListe) { |
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR); |
this.idListeCombo = idListe; |
mediateur.obtenirListeValeurEtRafraichir(this, idListeCombo, null); |
} |
|
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof ValeurListe) { |
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees; |
if (listeValeurs.getId().equals(config.getListeId(idListeType))) { |
Formulaire.rafraichirComboBox(listeValeurs, types); |
} else if (listeValeurs.getId().equals(config.getListeId(idListeCombo))) { |
Formulaire.rafraichirComboBox(listeValeurs, champValeurCombo, "id_valeur"); |
} |
} |
} |
|
public void ajouterValeur(final String texte, final String type, final String id) { |
|
LayoutContainer colonneConteneur = new LayoutContainer(); |
colonneConteneur.setLayout(new ColumnLayout()); |
valeurs.put(id + aDonnee.SEPARATEUR_TYPE_VALEUR + texte, colonneConteneur); |
|
Text champType = new Text(); |
champType.setText(type + " : "); |
champType.setWidth(largeurType); |
colonneConteneur.add(champType, new ColumnData(largeurType)); |
|
// on recupere le nom de la valeur à partir de son id |
|
String texteValeur = texte; |
if (estComboBox) { |
ListStore<Valeur> valeursStore = champValeurCombo.getStore(); |
Valeur objetValeur = valeursStore.findModel("id_valeur", texte); |
if (objetValeur != null) { |
texteValeur = objetValeur.getNom(); |
} |
} |
|
Text champValeur = new Text(); |
champValeur.setText(texteValeur); |
champValeur.setWidth(largeurChamp); |
colonneConteneur.add(champValeur, new ColumnData(largeurChamp)); |
|
Button supprimerBouton = new Button(); |
supprimerBouton.setIcon(Images.ICONES.supprimer()); |
supprimerBouton.setText(boutonSupprimerLabel); |
supprimerBouton.setData("valeur", id + aDonnee.SEPARATEUR_TYPE_VALEUR + 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(); |
} |
}); |
colonneConteneur.add(supprimerBouton, new ColumnData(largeurBouton)); |
|
// Ajout du layout de la valeur au layout principal |
principalLayout.add(colonneConteneur); |
|
// Ajout de la valeur au champ récapitulatif des valeurs ajoutées |
if (estComboBox && champValeurCombo.getValue() != null) { |
ajouterValeurAuRecapitulatif(champValeurCombo.getValue().getId(), id); |
} else { |
ajouterValeurAuRecapitulatif(texte, id); |
} |
reinitialiserChamp(); |
actualiserLayoutGlobal(); |
} |
|
public void ajouterValeurAuRecapitulatif(String texte, String id) { |
String texteRecapitulatif = ""; |
if (champRecapitulatif.getValue() != null) { |
texteRecapitulatif = champRecapitulatif.getValue(); |
} |
texteRecapitulatif += id + aDonnee.SEPARATEUR_TYPE_VALEUR + texte + aDonnee.SEPARATEUR_VALEURS; |
champRecapitulatif.setValue(texteRecapitulatif); |
} |
|
public void peupler(String chaineExistante) { |
|
if (valeurs.size() > 0) { |
reinitialiser(); |
} |
if (chaineExistante != null && !chaineExistante.trim().equals("")) { |
String[] valeurs = chaineExistante.split(aDonnee.SEPARATEUR_VALEURS); |
for (int i = 0; i < valeurs.length; i++) { |
String[] idEtValeur = valeurs[i].split(aDonnee.SEPARATEUR_TYPE_VALEUR); |
if (idEtValeur.length == 2) { |
String idType = idEtValeur[0]; |
String idValeur = idEtValeur[1]; |
|
ListStore<Valeur> typeStore = types.getStore(); |
Valeur objetType = typeStore.findModel("id_valeur", idType); |
String texteType = ""; |
if (objetType != null) { |
texteType = objetType.getNom(); |
} else { |
texteType = idType; |
} |
|
ajouterValeur(idValeur, texteType, idType); |
} else { |
InfoLogger.display("ChampMultiValeursMultiTypes > méthode peupler", "Erreur dans le split d'une valeur, chaine="+chaineExistante, true); |
} |
} |
} |
} |
} |
Property changes: |
Added: svn:mergeinfo |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/ChampMultiValeursMultiTypes.java:r1383-1511 |
Merged /branches/v1.0-syrah/src/org/tela_botanica/client/composants/ChampMultiValeursMultiTypes.java:r1136-1367 |
Merged /trunk/src/org/tela_botanica/client/composants/ChampMultiValeursMultiTypes.java:r11-720,1209-1382 |