RE: Unifier getChild() et lookupWidget() (était Re: compiler code java)

2006-02-08 Par sujet Berengere.Genin

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)

2006-02-08 Par sujet Berengere.Genin
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)

2006-02-08 Par sujet Berengere.Genin
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)

2006-02-07 Par sujet Sylvain Wallez

[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]