Hi there!
 
Why not instead of a component the htmlFragment comes from a Page?, so in your 
javascript code, you can make a page request.
 
For example, in my Main Page:
 
class WizardPage {
  @Persist
  private String _currentPage;
 
  void onStepChanged(String toPage) {
    _currentPage = toPage;
  }
}
 
Then the javascript code can use that property to render the actual step.
 
new Ajax.Request('GET', ${currentPage}, {
   onSuccess: function (transport) {
      var replaceElement = $(...);
      replaceElement.innerHTML = transport.responseText;
      //load scripts as necessary.
    }
});
 
${currentPage} can be a string that the ComponentResources generates, just a 
detail that you already used.

And of course there should be a chain of pages to take in account.
 
________________________________

From: Borut Bolcina [mailto:[EMAIL PROTECTED]
Sent: Wed 10/10/2007 7:01 AM
To: Tapestry
Subject: T5: A component returning StreamResponse?



Hello,

I would like to create an ajax dialog (actually a series of them to act as a
wizard). The content of the dialog should change according to user
interaction and therefore create a series of steps. If this wizard is going
to have 3 steps then 3 ajax requests for dialog content would be made.

I would like each ajax request to call (different) T5 component returning
HTML fragment.

I am using jQuery to make a request

***** TEMPLATE ******
        <script>
            $().ready(function() {
              $('#ex2').jqm({ajax: '${thelink}'}).jqmShow();
            });
        </script>

***** CLASS *****
    public String getTheLink() {
        Link l = _resources.createActionLink("myAction", false);
        return l.toURI();
    }

    StreamResponse onMyAction() {
        String htmlFragment = "<p>paragraph <b>bold</b></p>";
        return new TextStreamResponse("text/html", htmlFragment);
    }


I would like the htmlFragment to be generated by T5 component for example
WizardStep1.

If I declare a component in the class above:
    @Component
    private WizardStep1 wizardStep1;

and modify method onMyAction like this

    StreamResponse onMyAction() {
        wizardStep1.setMessage("hello");
        return (StreamResponse) wizardStep1;
    }

then I get Exception:
Component ui/dialog/JQModalAjax does not contain an embedded component with
id 'wizardStep1'.

which is true, as I don't have WizardStep1 in my ui/dialog/JQModalAjax.tml


Any suggestions?



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

Reply via email to