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 15:45:27 GMT
Et oui, tout arrive: ça marche!!!

En fait, je n'étais pas loin avec mon idée de conflit avec mon showForm ....

J' ai tout simplement mis mon premier Showform (ligne 17) à la place du second (ligne 37).

Ainsi, tout est fait depuis le flowscript.

Merci à tous, votre aide m'a été très précieuse.

Bérengère

	-------- Message d'origine-------- 
	De: Berengere.Genin@sanofi-aventis.com 
	Date: mer. 08/02/2006 15:58 
	À: users-fr@cocoon.apache.org 
	Cc: 
	Objet: 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
<fd:javascript>
	
	Mon fichier => multipage_model.xml:
	[...]
	<fd:repeater-action command="add-row" id="addlocus" repeater="all_locus">
	  <fd:label>Add locus</fd:label>
	        <fd:on-action>
	                <fd:javascript>
	                        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");
	                </fd:javascript>
	         </fd:on-action>
	</fd:repeater-action>
	[...]
	
	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 : Berengere.Genin@sanofi-aventis.com
	[mailto:Berengere.Genin@sanofi-aventis.com]
	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 : Berengere.Genin@sanofi-aventis.com
	[mailto:Berengere.Genin@sanofi-aventis.com]
	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
	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
	
	
	---------------------------------------------------------------------
	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
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message