[Seaside] Re: Modal dialogs that appear with their "background"

Iwan Vosloo iwan at reahl.org
Thu Jun 5 06:15:09 UTC 2014

On 04/06/2014 17:29, Stephan Eggermont wrote:
> Is there a specific reason you don't want to use a WAComponent subclass to do this?


Any solution should do, as long as we can call a method that blocks and 
returns with the answer. I did try with a WAComponent also that embeds 
the current component, but with similar results.

I will have a look at your code as mentioned in your other email too. In 
the mean time, I have come up with something that works. Not sure how 
idiomatic this is of seaside though:

WAComponent subclass: #DialogHolder                   "An empty 
component that can be replaced by the dialog later"

WADecoration subclass: #DialogDecoration            "A Decoration that 
adds a DialogHolder to its decoratedComponent"
     instanceVariableNames: 'holder'

     super initialize.
     holder := DialogHolder new

DialogDecoration>>renderContentOn: html
     html render: holder.
     self renderNextOn: html

     ^ holder

Then, the method that makes it appear, on a WAComponent subclass:

ask: aString
     | dialog answer |
     dialog := DialogDecoration new.
     self session presenter addDecoration: dialog.
     answer := dialog holder
             (WAYesOrNoDialog new
                 addMessage: aString;
     self session presenter removeDecoration: dialog

- Iwan

More information about the seaside mailing list