Yes, yes ... for sure... that was an error ...

Then you have no idea :(

Have you had this problem with your component ?

thanks you in advance,
        robert

On 11/9/06, Peter Beshai <[EMAIL PROTECTED]> wrote:

Hi,

Unless you just made a typo in the email, your loop is defined as :
<component id="loop" type="Form">

Should probably be:
<component id="loop" type="For">

Other than that, I have no ideas. Good luck!


--
Peter Beshai - Using Tapestry 4.1.1

Pure Mathematics Student
University of Waterloo





>From: "Roberto Ramírez Vique" <[EMAIL PROTECTED]>
>Reply-To: "Tapestry users" <users@tapestry.apache.org>
>To: "Tapestry users" <users@tapestry.apache.org>
>Subject: Re: PageRenderSupport problem (Body component is in template)
>Date: Thu, 9 Nov 2006 12:03:57 +0100
>
>Hello Peter and everybody !
>
>I'm using tapestry 4.0, jdk 1.5 and tomcat 5.5.
>
>I'm doing more or less the same as all of you, but I have a question.
>
>My dojo dialogs are though to be places where the user can write
>information
>and send it back to the server: like a way to have forms that sends
>information to the server. My problem now is that all these dojo dialogs
>needs a form in the same div because otherwise the submit buttons in the
>dojo doesn't do anything. I understand that these dojo dialogs are
>rewritten
>in any other place (in the DOM structure) and that's the problem why the
>submit button doesn't work.
>Well I have some of these popups working for list of elements, which are
>modified with a dojo dialog. When I tried to save the current element
(I'm
>using a tag-selected of a submit button, as explained down) I always get
>the
>last element as the modified one... Any of you have had this problem with
>multiple forms ? Because is a problem of having multiple forms in a page,
>because just with one form it works (but i can't have just one form due
the
>dojo dialog).
>
>
>The way I tried to select the current element is very simple (and works
>with
>a single form in a page, but not with a multiple form in a page):
>HTML
><span jwcid="loop">
>    <div jwcid="dojoDialog">
>        <form jwcid="innerForm">
>            <input type="text" jwcid="name"/>
>            <input type="submit" jwcid="submitButton"/>
>        </form>
>    </div>
></span>
>
>PAGE
><component id="loop" type="Form">
>    <binding name="source" value="elementList"/>
>    <binding name="value" value="currentElement"/>
></component>
>
><component id="personDetails" type="DojoDialogContainer"/>
>
><component id="innerForm" type="Form"/>
>
><component id="name" type="TextField">
>    <binding name="value" value="currentElement.name"/>
></component>
>
><component id="submitButton" type="Submit">
>    <binding name="selected" value="selectedElement"/>
>    <binding name="tag" value="currentElement"/>
>    <binding name="action" value="listener:onSubmit"/>
></component>
>
>In the java code I get the "selectedElement" always as the last element
>from
>the elementList but always with the correct values.
>
>Any explanation, help, idea or something will be really appreciated,
>       robert
>
>
>
>On 10/18/06, Peter Beshai <[EMAIL PROTECTED]> wrote:
>>
>>Great that fixed it up :-)
>>
>>You said you had wrapped the Dialog component just yesterday, but I
don't
>>see it in the tapestry-framework trunk. Is there somewhere I can go and
>>see
>>how you implemented it?
>>
>>Oh I have another question... I had to put the .jwc  and .script file in
>>the
>>WEB-INF directory. It seems more standard to keep them in the same
>>location
>>as the .java file. Do I need to configure something to be able to store
>>everything in one place?
>>
>>Anyway, here's the code I used, any suggestions are welcome!
>>
>>Dialog.java::
>>import java.util.HashMap;
>>import java.util.Map;
>>
>>import org.apache.tapestry.AbstractComponent;
>>import org.apache.tapestry.IComponent;
>>import org.apache.tapestry.IMarkupWriter;
>>import org.apache.tapestry.IRequestCycle;
>>import org.apache.tapestry.IScript;
>>import org.apache.tapestry.PageRenderSupport;
>>import org.apache.tapestry.TapestryUtils;
>>import org.apache.tapestry.dojo.DojoUtils;
>>import org.apache.tapestry.dojo.IWidget;
>>import org.apache.tapestry.json.JSONObject;
>>
>>public abstract class Dialog extends AbstractComponent implements
IWidget
>>{
>>     /** id. */
>>     public abstract String getIdParameter();
>>
>>     /** component that handles closing the dialog */
>>     public abstract IComponent getCloser();
>>
>>     /** component that handles showing the dialog */
>>     public abstract IComponent getShower();
>>
>>     /** bgColor */
>>     public abstract String getBgColor();
>>
>>     /** bgOpacity */
>>     public abstract Double getBgOpacity();
>>
>>     /** toggle */
>>     public abstract String getToggle();
>>
>>     /** toggleDuration */
>>     public abstract Integer getToggleDuration();
>>
>>     /** Injected script. */
>>     public abstract IScript getScript();
>>
>>     public void renderWidget(IMarkupWriter writer, IRequestCycle cycle)
>>     {
>>         renderComponent(writer, cycle);
>>     }
>>
>>     @SuppressWarnings("unchecked")
>>     protected void renderComponent(IMarkupWriter writer, IRequestCycle
>>cycle)
>>     {
>>         if(cycle.isRewinding()) {
>>             renderBody(writer, cycle);
>>             return;
>>         }
>>         // configure the node
>>         writer.begin("div");
>>         writer.attribute("id", getIdParameter());
>>
>>         renderInformalParameters(writer, cycle);
>>         renderBody(writer, cycle);
>>
>>         writer.end();
>>
>>         // configure the widget
>>         JSONObject obj = DojoUtils.parseJSONParameter(this, "options");
>>         obj.put("widgetId", getId());
>>         obj.put("toggle", getToggle());
>>         obj.put("toggleDuration", getToggleDuration());
>>         obj.put("bgColor", getBgColor());
>>         obj.put("bgOpacity", getBgOpacity());
>>
>>         // setup script includes
>>         Map scriptParms = new HashMap();
>>         scriptParms.put("id", getIdParameter());
>>         scriptParms.put("props", obj.toString());
>>         scriptParms.put("closer", getCloser().getId());
>>         scriptParms.put("shower", getShower().getId());
>>         PageRenderSupport pageRenderSupport =
>>TapestryUtils.getPageRenderSupport(cycle, this);
>>
>>         getScript().execute(this, cycle, pageRenderSupport,
scriptParms);
>>     }
>>}
>>
>>Dialog.script::
>><?xml version="1.0"?>
>><!DOCTYPE script PUBLIC
>>   "-//Apache Software Foundation//Tapestry Script Specification 3.0
//EN"
>>   "http://jakarta.apache.org/tapestry/dtd/Script_3_0.dtd";>
>><script>
>><input-symbol key="id" required="yes" />
>><input-symbol key="props" required="yes" />
>><input-symbol key="closer" required="yes" />
>><input-symbol key="shower" required="yes" />
>>     <body>
>>         <unique>
>>             dojo.require("dojo.widget.Dialog");
>>             dojo.require("tapestry.widget.Widget");
>>         </unique>
>>     </body>
>>     <initialization>
>>         tapestry.widget.synchronizeWidgetState("${id}", "dialog",
>>${props});
>>
>>dojo.widget.byId("${id}").setCloseControl(dojo.byId("${closer}"));
>>         dojo.widget.byId("${id}").setShowControl(dojo.byId
("${shower}"));
>>     </initialization>
>></script>
>>
>>Dialog.jwc::
>><?xml version="1.0" encoding="UTF-8"?>
>><!DOCTYPE component-specification PUBLIC
>>   "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
>>   "http://tapestry.apache.org/dtd/Tapestry_4_0.dtd";>
>>
>><component-specification class="com.mycom.tapestry.Dialog"
>>         allow-body="yes"
>>         allow-informal-parameters="yes">
>>
>>   <description>
>>   Creates a dojo dialog widget
>>   </description>
>>
>>   <parameter name="closer" required="yes"/>
>>   <parameter name="shower" required="yes"/>
>>
>>   <parameter name="bgColor" default-value="literal:white" />
>>   <parameter name="bgOpacity" default-value="0.5" />
>>   <parameter name="toggle" default-value="literal:fade"/>
>>   <parameter name="toggleDuration" default-value="250"/>
>>
>>   <parameter name="id" property="idParameter" default-value="id"/>
>>
>>   <inject property="script" type="script" object="Dialog.script"/>
>>
>></component-specification>
>>
>>
>>Peter Beshai
>>
>> >From: "Jesse Kuhnert" <[EMAIL PROTECTED]>
>> >Reply-To: "Tapestry users" <users@tapestry.apache.org>
>> >To: "Tapestry users" <users@tapestry.apache.org>
>> >Subject: Re: PageRenderSupport problem (Body component is in template)
>> >Date: Wed, 18 Oct 2006 12:31:25 -0400
>> >
>> >Without the benefit of knowing what your component code is doing I am
>>going
>> >to guess that you are attempting to render your dialog component
during
>>a
>> >Form "rewind" cycle.
>> >
>> >The best thing to do in your case is check for cycle.isRewinding() and
>>skip
>> >over all blocks except for renderBody() .
>> >
>> >On 10/18/06, Peter Beshai <[EMAIL PROTECTED]> wrote:
>> >>
>> >>Sorry if this idea seems silly, but this is the first custom
>> >>component/dojo
>> >>widget wrapper I have made, so it basically just does the same thing
as
>> >>calling dojo.widget.byId("yourDlgId").show().
>> >>
>> >>My dialog takes a 'shower' and a 'closer' (IComponents) as required
>> >>parameters -- I wasn't sure the best way to do this... but I thought
it
>> >>would allow more flexibility by doing it this way.
>> >>
>> >>My script looks like this: (Dialog.script)
>> >>
>> >><?xml version="1.0"?>
>> >><!DOCTYPE script PUBLIC
>> >>   "-//Apache Software Foundation//Tapestry Script Specification 3.0
>>//EN"
>> >>   "http://jakarta.apache.org/tapestry/dtd/Script_3_0.dtd";>
>> >><script>
>> >><input-symbol key="id" required="yes" />
>> >><input-symbol key="props" required="yes" />
>> >><input-symbol key="closer" required="yes" />
>> >><input-symbol key="shower" required="yes" />
>> >>     <body>
>> >>         <unique>
>> >>             dojo.require("dojo.widget.Dialog");
>> >>             dojo.require("tapestry.widget.Widget");
>> >>         </unique>
>> >>     </body>
>> >>     <initialization>
>> >>         tapestry.widget.synchronizeWidgetState("${id}", "dialog",
>> >>${props});
>> >>
>> >>dojo.widget.byId("${id}").setCloseControl(dojo.byId("${closer}"));
>> >>         dojo.widget.byId("${id}").setShowControl(dojo.byId
>>("${shower}"));
>> >>     </initialization>
>> >></script>
>> >>
>> >>So when I click on my shower (my form submit button) it pops up the
>>dialog
>> >>that has the closer (cancel button) and then instantaneously throws
the
>> >>exception.
>> >>
>> >>It took me a lot longer than 10 minutes to make this (a couple of
>>hours!!)
>> >>but after it was done it all seems very simple. I just couldn't find
>>any
>> >>documentation anywhere about it, so I just read through some source
and
>> >>tried putting things together.
>> >>
>> >>When you say "I'm assuming it's not just a simple
>> >>dojo.widget.byId("yourDlgId").show()" are you implying that if it is
>>just
>> >>doing that, I ought to just use dojo directly in my template?
>> >>
>> >>Thanks,
>> >>Peter Beshai
>> >>
>> >>
>> >> >From: "Jesse Kuhnert" <[EMAIL PROTECTED]>
>> >> >Reply-To: "Tapestry users" <users@tapestry.apache.org>
>> >> >To: "Tapestry users" <users@tapestry.apache.org>
>> >> >Subject: Re: PageRenderSupport problem (Body component is in
>>template)
>> >> >Date: Tue, 17 Oct 2006 22:54:39 -0400
>> >> >
>> >> >So what does it do after loading up? I'm assuming it's not just a
>>simple
>> >> >dojo.widget.byId("yourDlgId").show() ?
>> >> >
>> >> >I created the same component in 4.1.1 yesterday btw. (Took me all
of
>>ten
>> >> >minutes!, of course that is expected..)
>> >> >
>> >> >On 10/17/06, Peter Beshai <[EMAIL PROTECTED]> wrote:
>> >> >>
>> >> >>Hi,
>> >> >>
>> >> >>I have created a wrapper for the dojo component Dialog and it
works
>> >>fine
>> >> >>(in
>> >> >>general!), but I have a problem when I use it with my form. I want
>>to
>> >>have
>> >> >>the dialog appear when I submit the form (ie, the form submit
button
>>is
>> >> >>the
>> >> >>show controller) and the dialog will basically have a cancel
button
>> >>(close
>> >> >>controller and Submit component with type cancel).
>> >> >>
>> >> >>The dialog loads fine, but soon after loading it throws an
>>exception:
>> >> >>Component FileUpload/uploadingDialog requires rendering support,
but
>>no
>> >> >>PageRenderSupport object has been stored into the request cycle.
>>This
>> >> >>object
>> >> >>is typically provided by a Body component. You should add a Body
>> >>component
>> >> >>to your template.
>> >> >>
>> >> >>I do have a body component defined : <body jwcid="[EMAIL PROTECTED]">.
>> >> >>
>> >> >>Any ideas how to fix this problem?
>> >> >>
>> >> >>FYI in my Dialog.java file I have in the renderComponent function:
>> >> >>PageRenderSupport pageRenderSupport =
>> >> >>TapestryUtils.getPageRenderSupport(cycle, this);
>> >> >>getScript().execute(this, cycle, pageRenderSupport, scriptParms);
>> >> >>
>> >> >>
>> >> >>Peter Beshai
>> >> >>
>> >> >>_________________________________________________________________
>> >> >>Essayez la nouvelle génération de recherche avec Live Search.
>> >> >>http://www.live.com/?mkt=fr-ca
>> >> >>
>> >> >>
>> >>
>> >>---------------------------------------------------------------------
>> >> >>To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> >>For additional commands, e-mail: [EMAIL PROTECTED]
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >> >--
>> >> >Jesse Kuhnert
>> >> >Tapestry/Dojo/(and a dash of TestNG), team member/developer
>> >> >
>> >> >Open source based consulting work centered around
>> >> >dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com
>> >>
>> >>_________________________________________________________________
>> >>Découvrez Live Search de votre PC ou de votre appareil mobile dès
>> >>aujourd'hui. http://www.live.com/?mkt=fr-ca
>> >>
>> >>
>> >>---------------------------------------------------------------------
>> >>To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >>For additional commands, e-mail: [EMAIL PROTECTED]
>> >>
>> >>
>> >
>> >
>> >--
>> >Jesse Kuhnert
>> >Tapestry/Dojo/(and a dash of TestNG), team member/developer
>> >
>> >Open source based consulting work centered around
>> >dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com
>>
>>_________________________________________________________________
>>Voyez vos amis en faisant un appel vidèo dans Windows Live Messenger
>>http://imagine-msn.com/messenger/launch80/default.aspx?locale=fr-ca
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
>--
>Robert Ramírez Vique
>Computer Science Engineer

_________________________________________________________________
Achetez ce que vous voulez, quand vous voulez sur Sympatico / MSN
Magasiner

http://magasiner.sympatico.msn.ca/content/shp/?ctId=101,ptnrid=176,ptnrdata=081805


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Robert Ramírez Vique
Computer Science Engineer

Reply via email to