[Seaside] [VW] Seaside/VW Support - Time & Date Classes
Jon Paynter
kittle at mail.yans.net
Tue Feb 15 16:32:50 CET 2005
Michel,
I was wonderng the same things myself.
Thanks for the explaination, and keep up the good work with maintaining the port.
Jon.
---------- Original Message ----------------------------------
From: Michel Bany <m.bany at wanadoo.fr>
Reply-To: "The Squeak Enterprise Aubergines Server - general discussion."
Date: Sat, 12 Feb 2005 10:43:44 +0100
>
>> Michel,
>> I was wondering if there is a reason that there are two Date and Time
>> classes in the VW port? As far as I can tell, there is no additional
>> behavior. The classes are Squeak.Date, Seaside.Date and Squeak.Time &
>> Seaside.Time. It seems this also applies to the class Color.
>>
>Yes Brett, there is a reason. Here are the details, sorry for being long.
>
>A large amount of the port work consists in making VisualWorks look like
>Squeak for Seaside.
>For this purpose, we need to add conveniency methods to the base
>VisualWorks library
>and also a bunch of new classes to implement some of the Squeak API. At
>some point in time
>I got the idea to extract all of the "squeakisation" stuff and to create
>a separate bundle. So I created
>that bundle named "Squeak" where I collected the squeakisation items
>needed for Seaside and,
>while at it, I collected more squeakisation stuff from other sources. At
>the same time, I was having
>problems porting the cookies expiration logic, because Seaside relies on
>the Squeak Chronology
>framework for this. Also at the same time, there were discussions (on
>the VWNC mailing list I believe)
>regarding the availability of class DateAndTime in VisualWorks. So I
>decided to port the Chronology
>classes to VisualWorks and I created bundle "Squeak-Chronos". Bundles
>"Squeak" and "Squeak-Chronos"
>were designed independently of Seaside.
>
>As can be expected bundle "Squeak-Chronos" has some classes that
>conflict with the base VisualWorks
>library, namely, Date, Time, and TimeZone (TimeStamp in Squeak does not
>conflict with Timestamp).
>Fortunately VisualWorks has namespaces that can handle that.
>
>However, the Seaside namespace imports both the Squeak and the Smalltalk
>namespace, therefore
>references to these three class names are ambiguous. Since I did not
>want to patch the Seaside
>source code to replace all occurences of those ambiguous names by fully
>qualified names, I used
>a naughty trick to define classes Date, Time and TimeZone in the Seaside
>namespace as subclasses
>of Date, Time, TimeZone from the Squeak namespace, just to resolve the
>ambiguity transparently
>for Seaside. This also ensures that Seaside uses the Squeak
>implementation of these three classes
>making the Seaside port easier and quicker, since I do not have to care
>about Date and Time
>differences between Squeak and VW.
>
>For the Color class, I used the same naughty trick, in a different
>context. Seaside contains extensions
>to the Color class. However the Color class does not exist in
>VisualWorks but exists in the "Squeak"
>bundle, defined in the Squeak namespace as a subclass of VW ColorValue.
>When importing the
>Seaside code into VisualWorks, the Color extensions (for some reason)
>could not be assigned to
>Squeak.Color, therefore I created Seaside.Color (subclass of
>Squeak.Color) so that Seaside
>extensions to Color could be loaded. Note that Seaside does not use the
>Color any longer since
>the Seaside-Contrib package was discontinued.
>
>A final note. You may want to try if Seaside would work with the Date
>and Time from the base
>VisualWorks library. Just change the superclass of Seaside.Date and
>Seaside.Time to be Core.Date
>and Core.Time and see how it goes.
>
>Enjoy,
>Michel.
>
>_______________________________________________
>Seaside mailing list
>Seaside at lists.squeakfoundation.org
>http://lists.squeakfoundation.org/listinfo/seaside
>
More information about the Seaside
mailing list