All,

Let me start by saying that I *really* like the dialog mechanism in
shale. Dialogs as first-class citizens have been on my wish list for
quite a while, and now we have it. Totally cool.

At the same time, I have to say that some of it feels a little bit
uncomfortable and I mean the exit mechanism in particular.

This is what http://struts.apache.org/shale/ says about it today:

=======================================================================
EndState - Terminates the current dialog (popping the stack if we are
inside a subdialog), and returns a logical outcome (to drive transition)
in one of two ways: 
      * If a view identifier was configured, cause that view to be
        rendered and return the logical outcome from the application
        action that is invoked (just like a ViewState, but also
        terminates the dialog).
      * If no view identifier was configured (meaning that the parent
        dialog will be responsible for rendering the response to the
        current request), simply return the logical outcome that caused
        this EndState to be selected.
=======================================================================

Maybe it's just my ignorance; in that case, I'll apologize up front.

However, I assumed that it would have been possible to perceive
(sub)dialogs as black box components.  But it appears that I (as the
enclosing dialog) need to understand the inner state transitions of the
subdialog in order to be able to respond to its outcome. ("...simply
return the logical outcome that caused this EndState to be selected.") 

I'm not really that interested how the dialog arrived at a certain
EndState; quite frankly, I couldn't care less. The only thing that I
really care about the particular EndState in which we arrived at the end
of the subdialog. 

UML 2.0 sub state machines also have a different notion. The only things
defined on the outside of a sub state machine are its potential exit
points. The enclosing state machines can use these exit points to bind
it to the transitions that are relevant in their own domain.

I'm also having a hard time to understand this line "If no view
identifier was configured (meaning that the parent dialog will be
responsible for rendering the response to the current request)..." Does
that imply that dialogs without a view identifier in the EndStates can
only be invoked by other dialogs? It seems that this time the dialog
itself needs to be aware of the way the way that it is going to be used,
right?

Would it be an option to change this into a slightly different approach?
Like, assuming that the enclosing dialog (as long as there is any) will
always be responsible for selecting a view based on some attribute of
the EndState of the subdialog? (And to revert to the view id if there's
nothing on the call stack able to deal with the EndState?)

Thanks,

Wilfred

-- 
_________________________________________________________________
Wilfred Springer                Phone  : +31 (0)3 3451 5736
Software Architect              Mobile : +31 (0)6 2295 7321
Client Solutions                Fax    : +31 (0)3 3451 5734
Enterprise Web Services         Mail   : [EMAIL PROTECTED]
Sun Microsystems Netherlands    AIM    : wilfred springer
http://blogs.sun.com/wilfred/


NOTICE: This email message is for the sole use of the intended
recipient(s) and may contain confidential and privileged
information. Any unauthorized review, use, disclosure or distribution
is prohibited. If you are not the intended recipient, please contact
the sender by reply email and destroy all copies of the original
message.


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

Reply via email to