En fait, les infos sont bien pris en compte dans mon binding, mais ne s'affiche pas dans mon formulaire (interface html)... Peut-être que je dois préciser qqch dans mon xml de définition? Merci Bérengère
-----Message d'origine----- De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Envoyé : Wednesday, February 08, 2006 10:04 À : [email protected] Objet : RE: Unifier getChild() et lookupWidget() (était Re: compiler code java) En effet, je pensais que ça allait marcher avec lookupWidget()que j'utilise a d'autre moment dans mon flowscript, et ça fonctionne très bien... Je me suis permise de remettre mon extrait de code (lignes 31-37) dans son contexte...j'ai peut-être fait une autre erreur qui rend ce passage invisible (mais aucun message d'erreur). - Ne pensez-vous pas que cela pose problème que je fasse un showForm à la ligne 17 , et que je recommence à la ligne 37? Sinon, mon repeater en lui même fonctione, car quand je suis dans mon formulaire je peux ajouter , supprimer des lignes sans problème, mais quand il s'agit de lui imposer des lignes dans mon flowscript...c'est une autre paire de manche... Merci pour tous vos conseils. Bérengère 1 function do_multipage() { 2 var data = new Object(); 3 4 data.resultList = new Array(3); 5 data.resultList[0] = {value:"", label:"Résultat?"}; 6 [...] 7 8 // crée le formulaire à partir d'un fichier de définition 9 var form = new Form("forms/multipage_model.xml"); 10 11 // charge le fichier de personnalisation 12 var doc = Packages.javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); 13 doc.appendChild(doc.createElement("RESULTS")); 14 15 // fichier de binding 16 form.createBinding("forms/multipage_binding.xml"); 17 form.showForm("multipage-display-pipeline.jx",data); 18 19 20 // enregistre les modifications du formulaire dans le fichier de perso. 21 var domaine = form.lookupWidget("page1/domaine").getValue(); 22 var disease = form.lookupWidget("page1/disease").getValue(); 23 var disease2 = form.lookupWidget("page1/disease2").getValue(); 24 25 //Parsing du fichier XML downloade 26 var docXML = loadDocument( "/evrdata/BIOANALYSE/WEB/PUBMEDnew/analyser"); 27 var processor = cocoon.getComponent(Packages.org.apache.excalibur.xml.xpath.XPathProcessor.ROLE ); 28 var PMID = Packages.org.apache.cocoon.xml.dom.DOMUtil.getValueOf( docXML,"/PubmedArticleSet/PubmedArticle/MedlineCitation/PMID", "DefaultValue",processor); 29 var pmid = form.lookupWidget("page3/pmid"); 30 pmid.setValue(PMID); 31 //Initiation de mon repeater 32 var repeater = form.lookupWidget("page3/all_locus"); 33 repeater.addRow(); 34 var row = repeater.getRow(0); 35 var field = row.getChild("locus"); 36 field.setValue("6p"); 37 form.showForm("multipage-display-pipeline.jx"); 38 var docXMLResult = null; 39 fileXMLResult = "/evrdata/BIOANALYSE/pubmed/" + domaine + "/" + disease + "/" + disease2 + "/savep" + PMID + "- result.xml"; 40 if (new java.io.File(fileXMLResult).exists()) { 41 docXMLResult = loadDocument(fileXMLResult); 42 var processor = cocoon.getComponent(Packages.org.apache.excalibur.xml.xpath.XPathProcessor.ROLE ); 43 var Nodelist = Packages.org.apache.cocoon.xml.dom.DOMUtil.selectNodeList( docXMLResult,"/RESULTS/LocusSet/Annotation",processor); 44 var locus = form.lookupWidget("page3/all_locus").getRow(0).getChild("locus").setValue("6p13"); 45 } 46 //Sauvegarde du fichier XML pubmed 47 var fileXML = ""; 48 if (disease2 != null) { 49 fileXML = "/evrdata/BIOANALYSE/pubmed/" + domaine + "/" + disease + "/" + disease2 + "/p" + PMID + ".xml"; 50 } else { 51 fileXML = "/evrdata/BIOANALYSE/pubmed/" + domaine + "/" + disease + "/p" + PMID + ".xml"; 52 } 53 saveDocument(docXML, fileXML); 54 55 // save the DOM-tree back to an XML file, the makeTargetURI 56 // function makes a modified filename so that the 57 // original document is not overwritten 58 if (disease2 != null) { 59 form.save(doc); 60 saveDocument(doc, makeTargetURI(fileXML)); 61 } else { 62 form.save(doc); 63 saveDocument(doc, makeTargetURI(fileXML)); 64 } 65 cocoon.sendPage("xmlresult-display-pipeline.jx", 66 {title: "Here's the resulting document", document: doc} 67 ); 68 } -----Message d'origine----- De : Sylvain Wallez [mailto:[EMAIL PROTECTED] Envoyé : Tuesday, February 07, 2006 18:23 À : [email protected] Objet : Unifier getChild() et lookupWidget() (était Re: compiler code java) [EMAIL PROTECTED] wrote: > Je récapitule: > Voilà ce que j'ai ecrit: > var repeater = form.getChild("page3/all_locus"); > Il faut utiliser form.lookupWidget("page3/all_locus"). getChild cherche uniquement dans les fils directs, alors que lookupWidget interprète le chemin. Je sais, c'est subtil et pas évident. Que pensez-vous, chers z'utilisateurs, que dans le Cocoon 2.1.9 à venir, on unifie les fonctions getChild() et lookupWidget() ? Sylvain -- Sylvain Wallez Anyware Technologies http://bluxte.net http://www.anyware-tech.com Apache Software Foundation Member Research & Technology Director --------------------------------------------------------------------- Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/ Pour vous desinscrire : mailto:[EMAIL PROTECTED] Autres commandes : mailto:[EMAIL PROTECTED] --------------------------------------------------------------------- Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/ Pour vous desinscrire : mailto:[EMAIL PROTECTED] Autres commandes : mailto:[EMAIL PROTECTED] --------------------------------------------------------------------- Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/ Pour vous desinscrire : mailto:[EMAIL PROTECTED] Autres commandes : mailto:[EMAIL PROTECTED]
