Alexandre Bergel a écrit :
> Before removing the preference class, maybe you could rename it simply 
> at the beginning.
Hi Alexandre,
yes, we will do it with care.
Anyway we are far from being ready to remove it :(.
Before we remove it, we have to make sure that all client classes from 
pharo are re-factored
such that they don't need it anymore.
Cheers
Alain
>
> Alexandre
>
>
> On 28 May 2009, at 03:08, Alain Plantec wrote:
>
>> Hi all,
>>
>> We have to make important decisions about squeak/pharo compatibility 
>> regarding the new setting package.
>> The problem is that some packages (as Polymorph but also OB, 
>> ecompletion and certainly a lot of others) are
>> included in pharo (aka pharo-dev) but are also used by squeak and the 
>> compatibility is now an issue because we plan
>> to remove the Preferences class from Pharo.
>> So, I'm looking for advices about that...
>> Any feedback ?
>>
>> Cheers
>> Alain
>>
>> From: Alain Plantec <[email protected]>
>> Date: 27 May 2009 13:21:25 GMT-04:00
>> To: Gary Chambers <[email protected]>
>> Subject: Re: preferences refactoring
>> Reply-To: [email protected]
>>
>>
>> Gary Chambers a écrit :
>>> Hi Alain.
>>>
>>> I guess I may have to fork the Pharo/Squeak specific areas. Not an 
>>> easy job!
>> yes, not really cool.
>>
>> what about the following:
>> I make the assumption  that  DiffMorph is using the 
>> browseWithPrettyPrint preference.
>> For pharo, you can create a new package with a PolymorphSettings class:
>>
>> ----------------------
>> PolymorphSettings class>>browseWithPrettyPrint
>>   <setting>
>>   ^ BrowseWithPrettyPrint ifNil: [ BrowseWithPrettyPrint := 
>> (SettingManager newSetting: 'bla bla') ... ]
>>
>> PolymorphSettings class>>initialize
>>   self browseWithPrettyPrint whenChangedSend: #prettyPrinting: to: 
>> DiffMorph
>> ----------------------
>>
>> For squeak you can also create a new package with a 
>> PolymorphPreferences class:
>>
>> ----------------------
>> PolymorphPreferences class>>initialize
>>   (Preferences preferenceAt: #browseWithPrettyPrint) ifNil:[
>>       Preferences
>>           addPreference: #browseWithPrettyPrint
>>            categories: #(browsing)
>>           default: true
>>           balloonHelp: 'Enable, or ...'.
>>       (Preferences preferenceAt: browseWithPrettyPrint)
>>           changeInformee: self
>>           changeSelector: #browseWithPrettyPrintChanged.
>>       self browseWithPrettyPrintChanged].
>> PolymorphPreferences class>>browseWithPrettyPrintChanged
>>   DiffMorph prettyPrinting: Preferences browseWithPrettyPrint
>>
>> ----------------------
>>
>> and as you pointed out, DiffMorph has also its own class variable for 
>> the preference.
>>
>> DiffMorph class>>prettyPrinting: aBoolean
>>   PrettyPrinting := aBoolean
>>
>> DiffMorph class>>prettyPrinting
>>   ^ PrettyPrinting
>>
>>
>> Thus, in Pharo PolymorphSettings is loaded and the DiffMorph class 
>> variable changes are handled via the setting.
>> In Squeak, PolymorphPreferences is loaded and the DiffMorph class 
>> variable updating relies on the changeInformee hook.
>>
>> a little bit ugly but I guess this is the price to pay for 
>> compatibility.
>>
>> what do you think ?
>>
>> Cheers
>> Alain
>>>
>>> To start I'll refactor Polymorph to use class side accessors for any 
>>> use of preferences. That way Squeak can delegate to Preferences 
>>> whilst Pharo can use the pragma based settings.
>>>
>>> E.g.
>>> DiffMorph>>setText can do
>>>
>>> self class colorWhenPrettyPrinting value
>>>
>>> In Squeak:
>>>
>>> DiffMorph class>>colorWhenPrettyPrinting
>>> ^Preferences colorWhenPrettyPrinting
>>>
>>> In Pharo:
>>>
>>> DiffMorph class>>colorWhenPrettyPrinting
>>> ^ColorWhenPrettyPrinting ifNil: [
>>>   ColorWhenPrettyPrinting := (SettingManager newSetting: 'Color 
>>> pretty print') default: false]
>>>
>>> Regards, Gary
>>>
>>> ----- Original Message ----- From: "Alain Plantec" 
>>> <[email protected]>
>>> To: "Gary Chambers" <[email protected]>
>>> Sent: Friday, May 22, 2009 3:56 PM
>>> Subject: preferences refactoring
>>>
>>>
>>>> Hi Gary,
>>>> During the migration from old preferences to the new setting 
>>>> framework,
>>>> some methods I'm changing can be from Polymorph packages.
>>>> I just like to know if I have to send to you polymorph specific 
>>>> parts ?
>>>> or what is the rule ?
>>>> As an example, DiffMorph>>setText will be touched by the removal of 
>>>> the #colorWhenPrettyPrinting
>>>> preference. Do I have to send to you a Polymorph specific part ?
>>>> Thanks
>>>> Alain
>>>
>>>
>>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to