[Seaside] Nested div rendering question

Brian Brown rbb at techgame.net
Thu Oct 4 04:06:19 UTC 2007


Ok, here is an off the cuff screencast the demonstrates the problem  
so we have easier context to talk about it: http://www.techgame.net/ 
~brian/evaluatorscreencast.mov (16mb quicktime movie).


The code I use in the tree component for the tree item anchors:

ALShoreWebTreeNode>>renderContentOn:

renderContentOn: html
	html anchor
		onClick: (html updater
			id: 'buttonLinkArea';
			callback: [:r | self onSelected. self renderButtonLinkEditorOn: r];
			onSuccess: (html evaluator
				callback: [:s |
					s element id: 'treeContentArea'; render: [:r | self tree parent  
parent renderTreeComponentOn: r].
					s element id: 'moveButtonArea'; render: [:r | self tree parent  
parent renderMoveButtonsOn: r].
					s element id: 'clipboardButtonsArea'; render: [:r | self tree  
parent parent renderClipboardButtonsOn: r]]));
		with: [wrappedObject renderSummaryOn: html]


Please note the callback that sets the #selectedNode in the callback,  
then renders the editor on the right hand side with  
#renderButtonLinkEditor: . Every time an item in the tree is clicked,  
the editor is updated and works great.

Here is the first part of ALWDDContentEditor>>renderActionButtonsOn:


renderActionButtonsOn: html
	
	html button class: 'editorControlSquareButton';
		onClick: (html evaluator
			callback: [:v | self buttonNewCategory] value: 'New Category';
			callback: self updateElementsBlock;
			return: false);
		disabled: self canButtonNewCategory not;
		with: 'New Category'.

... and the #updateElementsBlock

updateElementsBlock
	^ [:s |
		s element id: 'treeContentArea'; render: [:r | self  
renderTreeComponentOn: r].
		s element id: 'moveButtonArea'; render: [:r | self  
renderMoveButtonsOn: r].
		s element id: 'buttonLinkArea'; render: [:r | self  
renderButtonLinkEditorOn: r].
		s element id: 'clipboardButtonsArea'; render: [:r | self  
renderClipboardButtonsOn: r]]



  - the difference being how the #renderButtonLinkEditorOn: is being  
invokes, either in the #callback: of the SUUpdater, or in a #render:  
of SUScript.

I hope this is a little clearer now!

Thank you for taking a look at this,

- Brian


On Oct 3, 2007, at 6:59 PM, Lukas Renggli wrote:

>> I have noticed the following; if I have a div as a container, and
>> some number divs inside of it, I can use SUUpdater to update the
>> outer div with the associated render method and all the nested divs
>> also render properly.
>
> As far as I know the SUUpdater always affects the contents of the  
> selected DIV.
>
>> If I use html evaluator to update the outer div, none of the internal
>> divs get rendered. Is this the expected behavior?
>
> Can you provide two examples? I don't exactly follow.
>
> Lukas
>
> -- 
> Lukas Renggli
> http://www.lukas-renggli.ch
> _______________________________________________
> Seaside mailing list
> Seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside



More information about the seaside mailing list