[Seaside] Can I know if a WATask answered?
jtuchel at objektfabrik.de
jtuchel at objektfabrik.de
Mon Nov 3 10:32:17 UTC 2014
Hi Mariano,
I am not sure if I understand your question/problem completely. So I'll
just write down some occasional thoughts on things that may or may not
be of use to you ;-)
Am 31.10.14 um 16:52 schrieb Mariano Martinez Peck:
> Hi guys,
>
> There is an scenario that I don't know how to deal. I have a main
> component that displays tabs. Each tabs render a component. This
> component could be anything, including a task. The tab has correctly
> defined the #children. And the way the tab displays its current
> contents (a component) is via: "self activeTabComponent renderOn: html"
>
I am using VA Smalltalk, and there are no Continuations there, so I
either use show:onAnswer: or the direct rendering of child components
like you do.
> The problem is if "activeTabComponent" is a Task. Since I am not doing
> not replacing anything (calling), I do not use #call: but #renderOn:
> as displayed above. The task can, at any point in time, or when the
> user clicks "Finish" do a "self answer: nil". I don't know what
> happens with this "self answer:" because I didn't do a #call: to that
> task.
>
Hmm. There are several things to note here. First, you can always use
onAnswer: to execute a Block whenever a component answers. So there is
no need call: a component in order to get an answer. The only difference
is that this is a Block that gets executed as sson as the component
answers:, but it doesn't halt the normal execution of a calling method
as in call:/answer:.
So you can always do something like;
self activeTabComponent: (MyTaskOrComponent new onAnswer: [:answer| self
handleAnswer: answer]).
Another cool place to use this if you have a JQDialog and need its
answer when it's closed.
> Anyway... I would like to hook from my main component and I would like
> to know if the task has answered or even if the #go method finished so
> that I can automatically close the tab and remove this task. Of
> course, I can pass the main component to the task, and then from the
> task itself tell the main component that he has finished...but I don't
> like this very much.
Although I fully agree: Sometimes it is the only thing that works. Apart
from some publish/subscribe mechanism like Announcements. But
Announcements are dangerous if you don't clean up subscriptions once
your component is gone. I once hunted for strange duplicate INSERTs to
the Database, just to find out that some old Components still handled
announcements although they had long disappeared from the tree of
visible components... I lost a couple of hours if not days with this ;-)
Does this help? If not, maybe you can give a few more details on your
situation.
Happy day at the Seaside,
Joachim
>
> Any idea?
>
> Thanks in advance
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
--
-----------------------------------------------------------------------
Objektfabrik Joachim Tuchel mailto:jtuchel at objektfabrik.de
Fliederweg 1 http://www.objektfabrik.de
D-71640 Ludwigsburg http://joachimtuchel.wordpress.com
Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20141103/4e0ef115/attachment.htm
More information about the seaside
mailing list