- From: John Boyer <boyerj@ca.ibm.com>
- Date: Wed, 10 Feb 2010 10:53:28 -0800
- To: "Leigh L. Klotz, Jr." <Leigh.Klotz@xerox.com>
- Cc: public-forms@w3.org, Erik Bruchez <ebruchez@orbeon.com>
- Message-ID: <OF0E5F0122.E8E8F69D-ON882576C6.0065EF0C-882576C6.0067C786@ca.ibm.com>
Just for the sake of considering all possibiIites, I wonder if the problem can be looked at differently, through the lens of alternate possible solutions. What you're doing, essentially, is turning a set of asynchronous submissions into a synchronous process in that you want xforms-model-construct-done to block until they complete. So, one solution is to use synchronous submissions. I assume there is a reason not related to correctness, such as performance, as to why you don't want this alternative. So, next up is still the fact that you want to run a set of asynch submissions and then do the UI creation after that. The UI creation is the default processing of xforms-model-construct-done. In the past, we have had no way to conditionally cancel the default action of an event. You either cancel it all the time or not at all. But now we have that capability to conditionally run an action and, I assume through XML Events 2, to conditionally stop propagation and cancel the default action. These seem like more generalized capabilities that we need for many reasons besides queuing up and consolidating submission results. Wouldn't it be sufficient, then, to 1) launch a sequence of async submissions 2) cancel the default action of xforms-model-construct-done on the condition that the submissions are not completed 3) optionally also stop the propagation of xforms-ready on the same condition 4) record the completion of each submission via its xforms-submit-done event 5) when the xforms-submit-done of each occurs, if the condition of all submissions being done is reached, then dispatch xforms-model-construct-done again, followed by xforms-ready. I think one of your technical requirement has to do with having an easy way for your processor to tell whether or not to delay the delivery of an HTML page to the client side. Stopping the propagation of xforms-ready would do that, if your processor delivers HTML to the user in response to xforms-ready on the document root rather than on, say, the model. Equally important, though, is that on the client side, the same strategy does not block the operation of the client engine. Instead, the user is presented with a very basic interface until the submissions complete. The net here is that this kind of solution rationalizes the technical needs of both types of processors and doesn't really require the addition of much if any new capabilities. The only new thing is ensuring XML Events 2 has the capabilities described above, which as I said we seem to have need of in other scenarios. Best regards, John M. Boyer, Ph.D. STSM, Lotus Forms Workplace, Portal and Collaboration Software IBM Victoria Software Lab E-Mail: boyerj@ca.ibm.com Blog: http://www.ibm.com/developerworks/blogs/page/JohnBoyer Blog RSS feed: http://www.ibm.com/developerworks/blogs/rss/JohnBoyer?flavor=rssdw From: "Leigh L. Klotz, Jr." <Leigh.Klotz@xerox.com> To: public-forms@w3.org Date: 02/10/2010 10:30 AM Subject: Re: XForms initialization use case in response to ACTION-606 I like xxf:join-submissions, but I wonder if it might be necessary to specify the start point, instead of relying on the form load as the start point. It may be more important do to this once we incorporate components, because it would allow for better isolation of components. I can also imagine that even with current XForms, it may be necessary to specify a join start point that begins at some later point in the lifecycle. It may be that we can also use the start-point concept to control the trigger/action/send+ relationship to trigger re-enablement, as the trigger could wait for all its initiated actions. Additionally, it may be possible to expand the start-point to something ath would help identify and operate on outstanding submission requests and disambiguate their results (especially in the case of multiple outstanding submissions from the same submission element). While it is possible to incorporate unique request values in the GET parameters or the POST entity (and pass them back to the response), it may be that offering built-in tracking all the way from the send or submission all the way though to the xforms-submit-done or -error event context info would be fairly easy to implement (as it's nearly required for xxf:join-submissions anyway) and convenient for application authors. With unique ids (or serial numbers) for outstanding submissions, we also would obtain the ability to query submissions for progress, and to cancel them. Leigh.
Received on Wednesday, 10 February 2010 18:54:06 UTC