Thanks you peter !!!

finally we solved the problem just using hidden values to retrieve again
from the DB the correct object ... also need to do lot of tricks ("non
tapestry") to get also validation working inside the dojo dialog.

Anyway this is working now.

sincerely,
              robert

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

I had the issue with the submit button not doing anything until I included
it in the dialog box's body, but I didn't experience any other issues.

There is a Dialog component in the latest 4.1.1 snapshot... maybe you
should
try that (if you're not using it already).

Sorry, that's as much as I can say!

--
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 16:45:53 +0100
>
>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

_________________________________________________________________
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

Reply via email to