cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <Berengere.Ge...@sanofi-aventis.com>
Subject RE: Unifier getChild() et lookupWidget() (était Re: compiler code java)
Date Wed, 08 Feb 2006 09:03:44 GMT
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:sylvain@apache.org]
Envoyé : Tuesday, February 07, 2006 18:23
À : users-fr@cocoon.apache.org
Objet : Unifier getChild() et lookupWidget() (était Re: compiler code
java)


Berengere.Genin@sanofi-aventis.com 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:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message