RE: Unifier getChild() et lookupWidget() (était Re: compiler code java)
C'est encore moi... J'ai tenté de mettre mon bout de javascript dans mon xml de definition entre deux balise Mon fichier => multipage_model.xml: [...] Add locus var form = event.source.form; var repeater = form.lookupWidget("page3/all_locus"); repeater.addRow(); var row = repeater.getRow(0); var field = row.lookupWidget("name"); field.setValue("APOE"); [...] Dans ce cas, ça fonctionne, mais uniquement quand je clique sur mon bouton "Add locus"... Bref ce n'est pas encore ça... Existe-il un autre endroit plus adapté? Sûrement, mais il se cache :-) Merci Bérengère -Message d'origine- De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Envoyé : Wednesday, February 08, 2006 12:16 À : users-fr@cocoon.apache.org Objet : RE: Unifier getChild() et lookupWidget() (était Re: compiler code java) 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 À : users-fr@cocoon.apache.org 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 32var repeater = form.lookupWidget("page3/all_locus"); 33repeater.addRow(); 34var row = repeater.getRow(0); 35var field = row.getChild("locus"); 36field.setValue("6p"); 37form.showForm("multipage-display-pipeline.jx"); 38var docXMLResult = null; 39fileXMLResult = "/evrdata/BIOANALYSE/pubmed/" + domaine + "/" + disease + "/" + disease2 + "/savep" + PMID + "- result.xml"; 40if (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 = for
RE: Unifier getChild() et lookupWidget() (était Re: compiler code java)
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 À : users-fr@cocoon.apache.org 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 32var repeater = form.lookupWidget("page3/all_locus"); 33repeater.addRow(); 34var row = repeater.getRow(0); 35var field = row.getChild("locus"); 36field.setValue("6p"); 37form.showForm("multipage-display-pipeline.jx"); 38var docXMLResult = null; 39fileXMLResult = "/evrdata/BIOANALYSE/pubmed/" + domaine + "/" + disease + "/" + disease2 + "/savep" + PMID + "- result.xml"; 40if (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 47var fileXML = ""; 48if (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} 53saveDocument(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 58if (disease2 != null) { 59 form.save(doc); 60 saveDocument(doc, makeTargetURI(fileXML)); 61 } else { 62 form.save(doc); 63 saveDocument(doc, makeTargetURI(fileXML)); 64} 65cocoon.sendPage("xmlresult-display-pipeline.jx",
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 32var repeater = form.lookupWidget("page3/all_locus"); 33repeater.addRow(); 34var row = repeater.getRow(0); 35var field = row.getChild("locus"); 36field.setValue("6p"); 37form.showForm("multipage-display-pipeline.jx"); 38var docXMLResult = null; 39fileXMLResult = "/evrdata/BIOANALYSE/pubmed/" + domaine + "/" + disease + "/" + disease2 + "/savep" + PMID + "- result.xml"; 40if (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 47var fileXML = ""; 48if (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} 53saveDocument(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 58if (disease2 != null) { 59 form.save(doc); 60 saveDocument(doc, makeTargetURI(fileXML)); 61} else { 62 form.save(doc); 63 saveDocument(doc, makeTargetURI(fileXML)); 64} 65cocoon.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 À : users-fr@cocoon.apache.org 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
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 WallezAnyware 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]