9,16 → 9,25 |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.MenuApplicationId; |
import org.tela_botanica.client.modeles.commentaire.Commentaire; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.util.UtilArray; |
import org.tela_botanica.client.util.UtilString; |
import org.tela_botanica.client.vues.Formulaire; |
|
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.store.ListStore; |
import com.extjs.gxt.ui.client.widget.MessageBox; |
import com.extjs.gxt.ui.client.widget.form.CheckBox; |
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.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.layout.FormData; |
import com.extjs.gxt.ui.client.widget.layout.FormLayout; |
|
27,6 → 36,7 |
|
private Commentaire commentaire; |
|
private ComboBox<Projet> projetsCombo = null; |
private TextField<String> titreChp; |
private TextArea texteChp; |
private ChampSliderPourcentage ponderationChp; |
73,6 → 83,46 |
} |
|
private void creerChamps() { |
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 (projetsCombo.getStore().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(new ListStore<Projet>()); |
projetsCombo.addStyleName(ComposantClass.OBLIGATOIRE); |
projetsCombo.addListener(Events.Valid, new Listener<BaseEvent>() { |
@Override |
public void handleEvent(BaseEvent be) { |
Projet valeur = projetsCombo.getValue(); |
// Gestion du style obligatoire |
projetsCombo.removeStyleName(ComposantClass.OBLIGATOIRE); |
projetsCombo.removeStyleName(ComposantClass.OBLIGATOIRE_OK); |
if (valeur != null) { |
projetsCombo.addStyleName(ComposantClass.OBLIGATOIRE_OK); |
} else { |
projetsCombo.addStyleName(ComposantClass.OBLIGATOIRE); |
} |
} |
}); |
panneauFormulaire.add(projetsCombo, new FormData(450, 0)); |
mediateur.selectionnerProjet(this, null); |
|
titreChp = new TextField<String>(); |
titreChp.setFieldLabel(i18nC.commentaireTitre()); |
titreChp.addStyleName(ComposantClass.OBLIGATOIRE); |
95,6 → 145,10 |
if (nouvellesDonnees instanceof Commentaire) { |
// Si on a reçu les details d'une publication |
rafraichirCommentaire((Commentaire) nouvellesDonnees); |
} else if (nouvellesDonnees instanceof ProjetListe) { |
ProjetListe projets = (ProjetListe) nouvellesDonnees; |
Formulaire.rafraichirComboBox(projets, projetsCombo); |
setValeurComboProjets(); |
} else if (nouvellesDonnees instanceof Information) { |
rafraichirInformation((Information) nouvellesDonnees); |
} else { |
113,6 → 167,23 |
peuplerFormulaire(); |
} |
|
private String getValeurComboProjets() { |
String valeur = ""; |
if (projetsCombo.getValue() != null) { |
valeur = projetsCombo.getValue().getId(); |
} |
return valeur; |
} |
private void setValeurComboProjets() { |
if (projetsCombo.getStore() != null ) { |
if (mode.equals(Formulaire.MODE_MODIFIER) && commentaire != null) { |
projetsCombo.setValue(projetsCombo.getStore().findModel("id_projet", commentaire.getIdProjet())); |
} else if (mode.equals(Formulaire.MODE_AJOUTER)) { |
projetsCombo.setValue(projetsCombo.getStore().findModel("id_projet", mediateur.getProjetId())); |
} |
} |
} |
|
private void rafraichirInformation(Information info) { |
String type = info.getType(); |
if (type.equals("ajout_commentaire") || type.equals("modif_commentaire")) { |
187,6 → 258,7 |
} |
|
private void peuplerFormulaire() { |
setValeurComboProjets(); |
titreChp.setValue(commentaire.getTitre()); |
texteChp.setValue(commentaire.getTexte()); |
ponderationChp.peupler(commentaire.getPonderation()); |
197,6 → 269,8 |
private Commentaire collecterCommentaire() { |
Commentaire commentaireCollectee = (Commentaire) commentaire.cloner(new Commentaire()); |
|
commentaireCollectee.setIdProjet(getValeurComboProjets()); |
|
String titre = titreChp.getValue(); |
commentaireCollectee.setTitre(titre); |
|