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)
在myComponent上使用创建的呈现器作为参数调用,并且WAComponent>>renderContentOn:
- 然后刷新渲染器