Smalltalk 在Seaside中渲染组件:改进Warender流的隐喻>&燃气轮机;渲染:到WAComponent>&燃气轮机;renderContentOn:

Smalltalk 在Seaside中渲染组件:改进Warender流的隐喻>&燃气轮机;渲染:到WAComponent>&燃气轮机;renderContentOn:,smalltalk,seaside,Smalltalk,Seaside,我需要帮助理解从WARenderer>>render:开始执行后续的执行链 我已经能够想出一个隐喻来帮助我理解流程。隐喻的形式是对象之间的对话。然而,这个比喻并不完全。在它中间有一个海湾,我需要帮助填满。 这就是比喻 myRenderer呈现:myComponent。 myR:嘿,component,我相信您最了解如何在任何渲染器上渲染自己。你能向我坦白吗 myComponent渲染器:myRenderer。 myC:当然!不过,我需要一些用于渲染的上下文 myComponent renderW

我需要帮助理解从
WARenderer>
WAComponent>
的流程,当呈现程序被发送时,
\render:
消息,其中组件作为Seaside(Smalltalk web框架)中的参数

如下所示:
arender渲染:一个组件

我试图捕捉组件和渲染器如何在Seaside中一起渲染的直觉。因此,我从推荐的渲染方法开始:

aRenderer渲染:组件

并从
warender>>render:
开始执行后续的执行链

我已经能够想出一个隐喻来帮助我理解流程。隐喻的形式是对象之间的对话。然而,这个比喻并不完全。在它中间有一个海湾,我需要帮助填满。

这就是比喻

myRenderer呈现:myComponent。

myR:嘿,component,我相信您最了解如何在任何渲染器上渲染自己。你能向我坦白吗

myComponent渲染器:myRenderer。

myC:当然!不过,我需要一些用于渲染的上下文

myComponent renderWithContext:MyRenderContext.

myR:那么,你想要上下文?你得到的就是背景

myComponent renderWithContext:aRenderContext.

此时存在我需要帮助填补的鸿沟

aRenderContext访客访问:myComponent。

也许在这一点上

aRenderVisitor访问:myComponent。

aRV:Ping!你在家吗?我能过来吗

myComponent接受:aRenderVisitor。

myC:是的。快过来

aRenderVisitor访问inter:myComponent。

aRV:好的,马上就到

然后,在
RenderVisitor>>访问inter:

  • 使用此渲染的上下文(从aRenderVisitor获得)重新创建渲染器(由myComponent)

  • WAComponent>>renderContentOn:
    在myComponent上使用创建的呈现器作为参数调用,并且

  • 然后刷新渲染器

这就是比喻。我可以照原样做。但如果有人能帮我塞住这些洞,把它打好,我会很感激的