[ 
https://issues.apache.org/jira/browse/CLK-582?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bob Schellink closed CLK-582.
-----------------------------

    Resolution: Invalid

This is a question for the user list rather than JIRA

> No field validation on FormTable
> --------------------------------
>
>                 Key: CLK-582
>                 URL: https://issues.apache.org/jira/browse/CLK-582
>             Project: Click
>          Issue Type: Bug
>          Components: extras
>    Affects Versions: 1.5.3
>         Environment: Linux Apache mySQL
>            Reporter: Christophe FOIRET
>            Priority: Critical
>
> I built a page with a search Form and two FormTable
> When i select a value in the SelectList of the search Form, i fill the two 
> FormTable 
> Each FormTable contains a required Field
> When i click on the Valid Button, there is no control and the required fields 
> which are not filled are not yellow (like in your example), the page is 
> refreshed and the two FormTable are empty ...
> I tried this case without search Form and the control is well done ... 
> Could you give me quickly an answer to this issue, i think that the search 
> Form disturbs the Form Table behavior
> See the code below : 
> .htm code file 
> <br>
> <h2>$title</h2>
> <br>
> $formSearch
> $tableInterv
> $tableTps
> .java code file
> package vdo.actedu.page;
> import java.util.List;
> import net.sf.click.control.Form;
> import net.sf.click.control.Option;
> import net.sf.click.control.Select;
> import net.sf.click.control.Submit;
> import net.sf.click.control.TextField;
> import net.sf.click.extras.control.FieldColumn;
> import net.sf.click.extras.control.FormTable;
> import vdo.actedu.hibernate.Atelier;
> import vdo.actedu.hibernate.AtelierDAO;
> import vdo.actedu.hibernate.AtelierIntervenant;
> import vdo.actedu.hibernate.AtelierIntervenantDAO;
> import vdo.actedu.hibernate.AtelierTemps;
> import vdo.actedu.hibernate.AtelierTempsDAO;
> public class MoveInscriptionPage extends BorderPage {
>       public String title = "Transfert d'inscriptions";
>       public String atelierId = "";
>     public Form formSearch = new Form();
>     public FormTable tableInterv = new FormTable();
>     public FormTable tableTps = new FormTable();
>     Atelier atelier = new Atelier();
>     //Déclaration listes de sélection
>     private Select atelierSceSelect = new Select("atelier.libelle","Atelier 
> Source");
>     private Select atelierSelect    = new Select("atelier.id","Atelier 
> Cible");
>     private Select intervSceSelect  = new Select("intervenant.nom");
>     private Select intervSelect     = new Select("intervenant.id");
>     private Select tempsSceSelect   = new Select("temps.libelle");
>     private Select tempsSelect      = new Select("temps.id");
>     List<Atelier> ateliers = new AtelierDAO().findAll();
>     List<AtelierIntervenant> intervenantsSce = null;
>     List<AtelierIntervenant> intervenantsCible = null;
>     List<AtelierTemps> tempsSce = null;
>     List<AtelierTemps> tempsCible = null;
>     public MoveInscriptionPage() {
>       //Formulaire intégrant la liste de sélection Atelier Cible
>       formSearch.setErrorsPosition("middle");
>       formSearch.setLabelAlign("right");
>       atelierSceSelect.setReadonly(true);
>       formSearch.add(atelierSceSelect);
>       atelierSelect.add(new Option(0,""));
>               atelierSelect.addAll(ateliers,"id","libelle");
>               atelierSelect.setListener(this,"onChangeAtelier");
>       atelierSelect.setAttribute("onChange","form.submit()");
>       formSearch.add(atelierSelect);
>       //Tableau listant les Intervenants de l'atelier Cible
>         tableInterv.setClass("cgvo");
>         tableInterv.setHoverRows(true);
>       tableInterv.getForm().setErrorsPosition("middle");
>       tableInterv.getForm().setButtonAlign("center");
>       tableInterv.getForm().setLabelAlign("right");
>         FieldColumn column = new FieldColumn("intervenant.id", "Intervenant 
> Source", intervSceSelect);
>         column.getField().setReadonly(true);
>         tableInterv.addColumn(column);
>         column = new FieldColumn("intervenant.nom", "Intervenant Cible", 
> intervSelect);
>         column.getField().setRequired(true);
>         tableInterv.addColumn(column);
>       //Tableau listant les Temps de l'atelier Cible
>         tableTps.setClass("cgvo");
>         tableTps.setHoverRows(true);
>       tableTps.getForm().setErrorsPosition("middle");
>       tableTps.getForm().setButtonAlign("center");
>       tableTps.getForm().setLabelAlign("right");
>       column = new FieldColumn("temps.id", "Temps Source", tempsSceSelect);
>       column.getField().setReadonly(true);
>         tableTps.addColumn(column);
>         column = new FieldColumn("temps.libelle", "Temps Cible", tempsSelect);
>         column.getField().setRequired(true);
>         tableTps.addColumn(column);
>       //Boutons Valider et Retour liés aux TableForm
>       Submit validButton = new Submit("    Valider    ", this, "onValid");
>       validButton.setAttribute("class","button1");
>       Submit cancelButton = new Submit("   Retour   ", this, "onCancel");
>       cancelButton.setAttribute("class","button1");
>       tableTps.getForm().add(validButton);
>       tableTps.getForm().add(cancelButton);
>     }
>     public boolean onChangeAtelier() {
>       //Peuplement de la table des Intervenants de l'Atelier Source
>         intervenantsSce = new 
> AtelierIntervenantDAO().findByAtelierString(atelierSceSelect.getValue());
>       
> intervSceSelect.addAll(intervenantsSce,"intervenant.id","intervenant.nom");
>         tableInterv.setRowList(intervenantsSce);
>       //Peuplement de la liste de sélection des Intervenants Cible
>       intervenantsCible = new AtelierIntervenantDAO().findByAtelier(new 
> Integer(atelierSelect.getValue()));
>       intervSelect.add(new Option(0,""));
>       
> intervSelect.addAll(intervenantsCible,"intervenant.id","intervenant.nom");
>       //Peuplement de la table des Temps de l'Atelier Source
>         tempsSce = new 
> AtelierTempsDAO().findByAtelierString(atelierSceSelect.getValue());
>         tempsSceSelect.addAll(tempsSce,"temps.id","temps.libelle");
>         tableTps.setRowList(tempsSce);
>       //Peuplement de la liste de sélection des Temps Cible
>       tempsCible = new AtelierTempsDAO().findByAtelier(new 
> Integer(atelierSelect.getValue()));
>       tempsSelect.add(new Option(0,""));
>       tempsSelect.addAll(tempsCible,"temps.id","temps.libelle");
>       return true;
>     }
>     public void onInit() {
>       atelierId = getContext().getRequestParameter("id");
>         //Si l'id de l'atelier est renseigné et que l'on n'est pas en Post 
> (Bouton Enregistrer)
>         if (atelierId != null && !getContext().isPost()) {
>               //On récupère l'atelier passé en paramètre
>               atelier = new AtelierDAO().findById(new Integer(atelierId));
>               //Mise en session de l'Atelier
>               getContext().setSessionAttribute("atelier",atelier);
>         } else
>               //On récupère l'atelier de la session
>               atelier = (Atelier)getContext().getSessionAttribute("atelier");
>         //Mise à jour du libellé de l'Atelier Source
>               atelierSceSelect.add(atelier.getLibelle());
>     }
>     public boolean onValid() {
>       if (tableInterv.getForm().isValid() && tableTps.getForm().isValid()) {
>             //Transfert des Inscriptions
>       }
>         return true;
>     }
>     public boolean onCancel() {
>             setRedirect(AdmAtelierPage.class);
>         return true;
>     }
>     public boolean onSecurityCheck() {
>         if (getContext().hasSession()) {
>             return true;
>         } else {
>             setRedirect(LoginPage.class);
>             return false;
>         }
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to