[Seaside] new header api

Ramon Leon ramon.leon at allresnet.com
Fri Nov 3 15:39:16 UTC 2006


> -----Original Message-----
> From: seaside-bounces at lists.squeakfoundation.org 
> [mailto:seaside-bounces at lists.squeakfoundation.org] On Behalf 
> Of Philippe Marschall
> Sent: Thursday, October 26, 2006 11:46 AM
> To: The Squeak Enterprise Aubergines Server - general discussion.
> Subject: [Seaside] new header api
> 
> Hi
> 
> Now that both Seaside 2.7a1 and 2.6b1 have the "new" header 
> API i think its time to write something short about it so 
> people don't have to ask.
> 
> The old header API was suffering from the same problems as 
> the old renderer API. Just to add an stylesheet with media 
> and title you had to copy and paste about 4 methods. Addional 
> 4 for alternate stylesheets. If you wanted a new conditional 
> import you needed to copy and paste a 3 LOC method.  And so 
> on. So we followed the same path like the Canvas API and made 
> use of cascades.
> 
> The new API offers four base methods to create elements
> - base, for base elements
> - if, for conditional imports
> - link, for link elements
> - meta, for meta elements
> - script, for script elements
> 
> Most of the time will want to use one of these two 
> convenience methods:
> - javascript, for javascripts
> - stylesheet, for css stylesheets
> 
> See WABaseElement, WAConditionalComment, WALinkElement, 
> WAMetaElement and WAScriptElement for details
> 
> examples:
> 
> aRoot stylesheet
>     url: 'styles/blue.css'
> 
> aRoot stylesheet
>     document: 'a { color:red; }'
> 
> aRoot javascript
>     url: 'scripts/scriptaculous.css'
> 
> aRoot if lessThan; ie7; do: [
>     aRoot javascripts
>         url: 'iehacks.js' ]
> 
> stuff that was just awkward to do with the old api:
> 
> aRoot link beAlternateStylesheet; beCss;
>     addProjection; addPrint;
>     title: 'Blue';
>     url: 'styles/blue.css'
> 
> Contrary to the Canvas renderer API the new header API in the 
> background still used the old implementation. So you will 
> have to implement no methods like #rendererClass.
> 
> If you use the old API on Seaside 2.7a1 and have the 
> development toolbar on you will get a warning pointing to 
> where you use the old API. These methods include the code 
> that you should replace yours with.
> 
> Philippe


Nice work on the new header stuff, just trying it out.  I love the
deprecated code warning.

Ramon Leon
http://onsmalltalk.com  



More information about the Seaside mailing list