Pharo-users
By thread
pharo-users@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- 7 participants
- 50354 messages
Re: [Pharo-users] Settings browser
by Hilaire
Le 24/03/2015 18:30, Peter Uhnák a écrit :
> take a look at WidgetExamples class>>exampleBasicControls
> one of the inputs is a morph drop list.
>
Hi Peter, I know but my question is about using such morph drop list
from the Settings browser.
Hilaire
--
Dr. Geo - http://drgeo.eu
iStoa - http://istoa.drgeo.eu
March 24, 2015
Re: [Pharo-users] Collection with memory?
by Alain Rastoul
Hi Stef
Thinking to that today, I remembered myself two excellent links on this
subject.
Googling a bit to retrieve the links gave me tons of interesting stuff
(reactive, linq etc), but those ones are "classicals" .
Erik Meijer on duality of Enumerable and Observer
http://csl.stanford.edu/~christos/pldi2010.fit/meijer.duality.pdf
and Bart De Smet about Enumerables, Observables, Pull vs Push model, Cloud
http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-Observations-on-IQbs…
I don't know if this is enough to improve your live
but I'm sure at least you will enjoy ;)
--
Regards,
Alain
March 24, 2015
Re: [Pharo-users] Starting with Pharo Issue Tracker
by Peter Uhnák
Hi,
here's a guide http://pharo.org/contribute-propose-fix
Peter
On Tue, Mar 24, 2015 at 7:26 PM, Jigyasa Grover <grover.jigyasa1(a)gmail.com>
wrote:
> Hi !
> I am clueless and would like to start off by solving a bug.
> Any suggestions ? Where do I start from ?
> Thanks and Regards
> Jigyasa Grover
>
March 24, 2015
Starting with Pharo Issue Tracker
by Jigyasa Grover
Hi !
I am clueless and would like to start off by solving a bug.
Any suggestions ? Where do I start from ?
Thanks and Regards
Jigyasa Grover
March 24, 2015
Re: [Pharo-users] Question about loading Roassal2 in Pharo4
by Javier Pimás
OK, that did the trick, thank you!
On Tue, Mar 24, 2015 at 2:22 PM, Andrei Chis <chisvasileandrei(a)gmail.com>
wrote:
> Use:
>
> Gofer new
> smalltalkhubUser: 'Moose' project: 'Glamour';
> package: 'Glamour-Tools';
> package: 'Glamour-Roassal2-Presentations';
> load
>
>
> On Tue, Mar 24, 2015 at 6:15 PM, Javier Pimás <elpochodelagente(a)gmail.com>
> wrote:
>
>> Loading Glamour-Tools was ok with:
>>
>> Gofer new
>> smalltalkhubUser: 'Moose' project: 'GToolkit';
>> package: 'Glamour-Tools';
>> load
>>
>> Yet, I don't know where to find Glamour-Roassal2-Presentations package
>>
>>
>> On Mon, Mar 23, 2015 at 5:17 PM, Andrei Chis <chisvasileandrei(a)gmail.com>
>> wrote:
>>
>>> You should also load the packages Glamour-Tools
>>> and Glamour-Roassal2-Presentations from the Glamour repo.
>>>
>>>
>>> Cheers,
>>> Andrei
>>>
>>> On Mon, Mar 23, 2015 at 8:49 PM, Javier Pimás <
>>> elpochodelagente(a)gmail.com> wrote:
>>>
>>>> Hi guys, I see the same problem with latest pharo4. I loaded gt
>>>> extensions for roassal but now I get a message not understood when
>>>> selecting the examples. I'm loading roassal and the extensions with
>>>>
>>>> Gofer it
>>>> smalltalkhubUser: 'ObjectProfile' project: 'Roassal2';
>>>> configurationOf: 'Roassal2';
>>>> loadStable.
>>>>
>>>> Gofer new
>>>> smalltalkhubUser: 'Moose' project: 'GToolkit';
>>>> package: 'GT-InspectorExtensions-CoreRoassal';
>>>> load
>>>>
>>>> am I doing something wrong?
>>>>
>>>> Cheers
>>>>
>>>> On Thu, Jan 8, 2015 at 5:17 AM, stepharo <stepharo(a)free.fr> wrote:
>>>>
>>>>> You understand what I wrote in the Pharo vision document about the
>>>>> process that we should get automated and in place before
>>>>> really be fully modular.
>>>>>
>>>>> Stef
>>>>>
>>>>> Hi,
>>>>>
>>>>> Let's not panic :).
>>>>>
>>>>> The situation is like this:
>>>>> - in Pharo 4, we have ConfigurationOfGlamourCore loaded which does not
>>>>> have the Roassal2 presentation
>>>>> - to get the Roassal2 presentation, you have to load
>>>>> ConfigurationOfGlamour (so, the full Glamour)
>>>>> - an extra problem can come from the configurations in the image not
>>>>> being the latest versions so there can be loading incompatibilities due to
>>>>> that. That is why, for the current Moose jobs we load manually the latest
>>>>> versions of the ConfigurationOf* classes (fun).
>>>>> - then you can use the GT-InspectorExtensions-CoreRoassal
>>>>>
>>>>>
>>>>> This situation has to improve, but in the meantime, you can use the
>>>>> gtoolkit or the moose 5.1 image which already has everything loaded
>>>>> correctly.
>>>>>
>>>>> Cheers,
>>>>> Doru
>>>>>
>>>>>
>>>>> On Wed, Jan 7, 2015 at 2:26 PM, Alexandre Bergel <
>>>>> alexandre.bergel(a)me.com> wrote:
>>>>>
>>>>>> You also need Glamour-Roassal2-Presentations. But the last version
>>>>>> does not seem to load.
>>>>>>
>>>>>> Any idea how to fix this situation?
>>>>>>
>>>>>> Cheers,
>>>>>> Alexandre
>>>>>> --
>>>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>>>> Alexandre Bergel http://www.bergel.eu
>>>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>>>
>>>>>>
>>>>>>
>>>>>> > On Jan 7, 2015, at 10:22 AM, Sven Van Caekenberghe <sven(a)stfx.eu>
>>>>>> wrote:
>>>>>> >
>>>>>> > Thx.
>>>>>> >
>>>>>> > I loaded GT-InspectorExtensions-CoreRoassal-AndreiChis.25
>>>>>> >
>>>>>> > but then I get
>>>>>> >
>>>>>> > Author: SvenVanCaekenberghe
>>>>>> > Date: 2015-01-07T14:20:37.659713+01:00
>>>>>> >
>>>>>> > GLMCompositePresentation(Object)>>doesNotUnderstand: #roassal2
>>>>>> > RTView>>gtInspectorViewIn:
>>>>>> > [ :eachPragma |
>>>>>> > (eachPragma selector findTokens: $:) size = 1
>>>>>> > ifTrue: [ self perform: eachPragma selector with: composite ].
>>>>>> > (eachPragma selector findTokens: $:) size = 2
>>>>>> > ifTrue: [ self perform: eachPragma selector with: composite
>>>>>> with: aGTInspector ] ] in
>>>>>> RTView(Object)>>gtInspectorPresentationsIn:inContext:
>>>>>> > Array(SequenceableCollection)>>do:
>>>>>> > RTView(Object)>>gtInspectorPresentationsIn:inContext:
>>>>>> > [ :d | each gtInspectorPresentationsIn: d inContext: self ] in [ :x
>>>>>> | (GLMCompositePresentation new with: [ :d | each
>>>>>> gtInspectorPresentationsIn: d inContext: self ]) startOn: x ] in [ :a :each
>>>>>> |
>>>>>> > a title: [ self printObjectAsAnItem: each ].
>>>>>> > a dynamicActions: [ :aPresentation | each gtInspectorActions
>>>>>> asOrderedCollection ].
>>>>>> > a titleAction: [ :aPresentation | self closeActionFor:
>>>>>> aPresentation ].
>>>>>> > a dynamic
>>>>>> > display: [ :x | (GLMCompositePresentation new with: [ :d |
>>>>>> each gtInspectorPresentationsIn: d inContext: self ]) startOn: x ] ] in [
>>>>>> :browser |
>>>>>> > browser fixedSizePanes: self class numberOfInspectorPanes.
>>>>>> > browser
>>>>>> > show: [ :a :each |
>>>>>> > a title: [ self printObjectAsAnItem: each ].
>>>>>> > a dynamicActions: [ :aPresentation | each
>>>>>> gtInspectorActions asOrderedCollection ].
>>>>>> > a titleAction: [ :aPresentation | self
>>>>>> closeActionFor: aPresentation ].
>>>>>> > a dynamic
>>>>>> > display: [ :x | (GLMCompositePresentation new
>>>>>> with: [ :d | each gtInspectorPresentationsIn: d inContext: self ]) startOn:
>>>>>> x ] ] ] in GTInspector>>compose
>>>>>> > GLMCompositePresentation(GLMPresentation)>>with:
>>>>>> > [ :x | (GLMCompositePresentation new with: [ :d | each
>>>>>> gtInspectorPresentationsIn: d inContext: self ]) startOn: x ] in [ :a :each
>>>>>> |
>>>>>> > a title: [ self printObjectAsAnItem: each ].
>>>>>> > a dynamicActions: [ :aPresentation | each gtInspectorActions
>>>>>> asOrderedCollection ].
>>>>>> > a titleAction: [ :aPresentation | self closeActionFor:
>>>>>> aPresentation ].
>>>>>> > a dynamic
>>>>>> > display: [ :x | (GLMCompositePresentation new with: [ :d |
>>>>>> each gtInspectorPresentationsIn: d inContext: self ]) startOn: x ] ] in [
>>>>>> :browser |
>>>>>> > browser fixedSizePanes: self class numberOfInspectorPanes.
>>>>>> > browser
>>>>>> > show: [ :a :each |
>>>>>> > a title: [ self printObjectAsAnItem: each ].
>>>>>> > a dynamicActions: [ :aPresentation | each
>>>>>> gtInspectorActions asOrderedCollection ].
>>>>>> > a titleAction: [ :aPresentation | self
>>>>>> closeActionFor: aPresentation ].
>>>>>> > a dynamic
>>>>>> > display: [ :x | (GLMCompositePresentation new
>>>>>> with: [ :d | each gtInspectorPresentationsIn: d inContext: self ]) startOn:
>>>>>> x ] ] ] in GTInspector>>compose
>>>>>> > BlockClosure>>glamourValueWithArgs:
>>>>>> > BlockClosure(Object)>>glamourValue:
>>>>>> > GLMDynamicPresentation(GLMPresentation)>>displayValue
>>>>>> > GLMDynamicPresentation>>currentPresentation
>>>>>> > GLMMorphicDynamicRenderer>>render:
>>>>>> > GLMMorphicDynamicRenderer class(GLMMorphicWidgetRenderer
>>>>>> class)>>render:from:
>>>>>> > GLMMorphicRenderer>>renderDynamicPresentation:
>>>>>> > GLMDynamicPresentation>>renderGlamorouslyOn:
>>>>>> > GLMMorphicRenderer(GLMRenderer)>>render:
>>>>>> > GLMMorphicTabbedRenderer(GLMMorphicWidgetRenderer)>>renderObject:
>>>>>> >
>>>>>> GLMMorphicTabbedRenderer(GLMMorphicWidgetRenderer)>>renderWithTitleOrNil:
>>>>>> > GLMMorphicTabbedRenderer>>render:
>>>>>> > GLMMorphicTabbedRenderer class(GLMMorphicWidgetRenderer
>>>>>> class)>>render:from:
>>>>>> > GLMMorphicRenderer>>renderTabbedCompositePresentation:
>>>>>> > GLMTabbedArrangement>>renderGlamorouslyOn:
>>>>>> > GLMCompositePresentation>>renderGlamorouslyOn:
>>>>>> > GLMMorphicRenderer(GLMRenderer)>>render:
>>>>>> > GLMMorphicPaneRenderer(GLMMorphicWidgetRenderer)>>renderObject:
>>>>>> > GLMMorphicPaneRenderer>>renderContainerFor:
>>>>>> > GLMMorphicPaneRenderer>>render:
>>>>>> > GLMMorphicPaneRenderer class(GLMMorphicWidgetRenderer
>>>>>> class)>>render:from:
>>>>>> > GLMMorphicRenderer>>renderPane:
>>>>>> > GLMPane>>renderGlamorouslyOn:
>>>>>> > GLMMorphicRenderer(GLMRenderer)>>render:
>>>>>> > GLMMorphicPagerRenderer(GLMMorphicWidgetRenderer)>>renderObject:
>>>>>> > GLMMorphicPagerRenderer>>actOnPaneReplaced:
>>>>>> > MessageSend>>value:
>>>>>> > MessageSend>>cull:
>>>>>> > MessageSend>>cull:cull:
>>>>>> > [ action cull: anAnnouncement cull: announcer ] in
>>>>>> AnnouncementSubscription>>deliver:
>>>>>> > BlockClosure>>on:do:
>>>>>> > [ Processor terminateActive ] in on: exception fork: handlerAction
>>>>>> > "Activate the receiver. In case of exception, fork a new
>>>>>> process, which will handle an error.
>>>>>> > An original process will continue running as if receiver
>>>>>> evaluation finished and answered nil,
>>>>>> > i.e., an expression like:
>>>>>> >
>>>>>> > [ self error: 'some error'] on: Error fork: [:ex | 123 ]
>>>>>> >
>>>>>> > will always answer nil for original process, not 123.
>>>>>> >
>>>>>> > The context stack , starting from context which sent this
>>>>>> message to receiver and
>>>>>> > up to the top of the stack will be transferred to forked
>>>>>> process, with handlerAction on top.
>>>>>> > (so when the forked process will be resuming, it will enter
>>>>>> the handlerAction)
>>>>>> > "
>>>>>> >
>>>>>> > ^ self
>>>>>> > on: exception
>>>>>> > do: [ :ex |
>>>>>> > | copy onDoCtx process handler bottom thisCtx
>>>>>> |
>>>>>> > onDoCtx := thisContext.
>>>>>> > thisCtx := onDoCtx home. "find the
>>>>>> context on stack for which this method's is sender"
>>>>>> > [ onDoCtx sender == thisCtx ]
>>>>>> > whileFalse: [
>>>>>> > onDoCtx := onDoCtx sender.
>>>>>> > onDoCtx
>>>>>> > ifNil: [
>>>>>> > "Can't find
>>>>>> our home context. seems like we're already forked
>>>>>> > and handling another exception in new
>>>>>> thread. In this case, just pass it through handler."
>>>>>> > ^
>>>>>> handlerAction cull: ex ] ].
>>>>>> > bottom := [ Processor terminateActive ]
>>>>>> asContext.
>>>>>> > onDoCtx privSender: bottom.
>>>>>> > handler := [ handlerAction cull: ex ]
>>>>>> asContext.
>>>>>> > handler privSender: thisContext sender.
>>>>>> > (Process forContext: handler priority:
>>>>>> Processor activePriority) resume. "cut the stack of current process"
>>>>>> > thisContext privSender: thisCtx.
>>>>>> > nil ] in BlockClosure>>on:fork:
>>>>>> >
>>>>>> >> On 07 Jan 2015, at 14:15, Andrei Chis <chisvasileandrei(a)gmail.com>
>>>>>> wrote:
>>>>>> >>
>>>>>> >> Hi,
>>>>>> >>
>>>>>> >> There is one extra package that you need to load from the GToolkit
>>>>>> repository: GT-InspectorExtensions-CoreRoassal
>>>>>> >> It contains all the inspector extensions that depend on roassal
>>>>>> and thus cannot be integrated into Pharo.
>>>>>> >>
>>>>>> >>
>>>>>> >> Cheers,
>>>>>> >> Andrei
>>>>>> >>
>>>>>> >> On Wed, Jan 7, 2015 at 1:35 PM, Sven Van Caekenberghe <
>>>>>> sven(a)stfx.eu> wrote:
>>>>>> >> Hi,
>>>>>> >>
>>>>>> >> I just loaded Roassal2 in Pharo4 using the following expression:
>>>>>> >>
>>>>>> >> Gofer it
>>>>>> >> smalltalkhubUser: 'ObjectProfile' project: 'Roassal2';
>>>>>> >> configurationOf: 'Roassal2';
>>>>>> >> loadStable.
>>>>>> >>
>>>>>> >> When I try one of the examples I see that I am missing some GT
>>>>>> presentations specific to Roassal. How should I load those ?
>>>>>> >>
>>>>>> >> <Screen Shot 2015-01-07 at 13.34.11.png>
>>>>>> >>
>>>>>> >> Thx,
>>>>>> >>
>>>>>> >> Sven
>>>>>> >>
>>>>>> >>
>>>>>> >>
>>>>>> >>
>>>>>> >
>>>>>> >
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> www.tudorgirba.com
>>>>>
>>>>> "Every thing has its own flow"
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Javier Pimás
>>>> Ciudad de Buenos Aires
>>>>
>>>
>>>
>>
>>
>> --
>> Javier Pimás
>> Ciudad de Buenos Aires
>>
>
>
--
Javier Pimás
Ciudad de Buenos Aires
March 24, 2015
Re: [Pharo-users] Settings browser
by Peter Uhnák
Hi,
take a look at WidgetExamples class>>exampleBasicControls
one of the inputs is a morph drop list.
Peter
On Tue, Mar 24, 2015 at 6:02 PM, Hilaire <hilaire(a)drgeo.eu> wrote:
> Hello,
>
> From the settings browser, I want a drop list populated with morph of my
> choice; for example coloured rectangle morphs: I want the user to select
> a colour from such a predefined set and not from a text list.
>
> I did not find it is possible. Did I miss something ?
>
>
>
> (aBuilder pickOne: #pointColor)
> label: 'Colour' translated;
> description: 'The default point colour.';
> default: #red;
> domainValues: {#red->Color red asMorph .
> #black-> Color black asMorph}].
>
> Thanks
>
> --
> Dr. Geo - http://drgeo.eu
> iStoa - http://istoa.drgeo.eu
>
>
>
>
March 24, 2015
Re: [Pharo-users] Question about loading Roassal2 in Pharo4
by Andrei Chis
Use:
Gofer new
smalltalkhubUser: 'Moose' project: 'Glamour';
package: 'Glamour-Tools';
package: 'Glamour-Roassal2-Presentations';
load
On Tue, Mar 24, 2015 at 6:15 PM, Javier Pimás <elpochodelagente(a)gmail.com>
wrote:
> Loading Glamour-Tools was ok with:
>
> Gofer new
> smalltalkhubUser: 'Moose' project: 'GToolkit';
> package: 'Glamour-Tools';
> load
>
> Yet, I don't know where to find Glamour-Roassal2-Presentations package
>
>
> On Mon, Mar 23, 2015 at 5:17 PM, Andrei Chis <chisvasileandrei(a)gmail.com>
> wrote:
>
>> You should also load the packages Glamour-Tools
>> and Glamour-Roassal2-Presentations from the Glamour repo.
>>
>>
>> Cheers,
>> Andrei
>>
>> On Mon, Mar 23, 2015 at 8:49 PM, Javier Pimás <elpochodelagente(a)gmail.com
>> > wrote:
>>
>>> Hi guys, I see the same problem with latest pharo4. I loaded gt
>>> extensions for roassal but now I get a message not understood when
>>> selecting the examples. I'm loading roassal and the extensions with
>>>
>>> Gofer it
>>> smalltalkhubUser: 'ObjectProfile' project: 'Roassal2';
>>> configurationOf: 'Roassal2';
>>> loadStable.
>>>
>>> Gofer new
>>> smalltalkhubUser: 'Moose' project: 'GToolkit';
>>> package: 'GT-InspectorExtensions-CoreRoassal';
>>> load
>>>
>>> am I doing something wrong?
>>>
>>> Cheers
>>>
>>> On Thu, Jan 8, 2015 at 5:17 AM, stepharo <stepharo(a)free.fr> wrote:
>>>
>>>> You understand what I wrote in the Pharo vision document about the
>>>> process that we should get automated and in place before
>>>> really be fully modular.
>>>>
>>>> Stef
>>>>
>>>> Hi,
>>>>
>>>> Let's not panic :).
>>>>
>>>> The situation is like this:
>>>> - in Pharo 4, we have ConfigurationOfGlamourCore loaded which does not
>>>> have the Roassal2 presentation
>>>> - to get the Roassal2 presentation, you have to load
>>>> ConfigurationOfGlamour (so, the full Glamour)
>>>> - an extra problem can come from the configurations in the image not
>>>> being the latest versions so there can be loading incompatibilities due to
>>>> that. That is why, for the current Moose jobs we load manually the latest
>>>> versions of the ConfigurationOf* classes (fun).
>>>> - then you can use the GT-InspectorExtensions-CoreRoassal
>>>>
>>>>
>>>> This situation has to improve, but in the meantime, you can use the
>>>> gtoolkit or the moose 5.1 image which already has everything loaded
>>>> correctly.
>>>>
>>>> Cheers,
>>>> Doru
>>>>
>>>>
>>>> On Wed, Jan 7, 2015 at 2:26 PM, Alexandre Bergel <
>>>> alexandre.bergel(a)me.com> wrote:
>>>>
>>>>> You also need Glamour-Roassal2-Presentations. But the last version
>>>>> does not seem to load.
>>>>>
>>>>> Any idea how to fix this situation?
>>>>>
>>>>> Cheers,
>>>>> Alexandre
>>>>> --
>>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>>> Alexandre Bergel http://www.bergel.eu
>>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>>
>>>>>
>>>>>
>>>>> > On Jan 7, 2015, at 10:22 AM, Sven Van Caekenberghe <sven(a)stfx.eu>
>>>>> wrote:
>>>>> >
>>>>> > Thx.
>>>>> >
>>>>> > I loaded GT-InspectorExtensions-CoreRoassal-AndreiChis.25
>>>>> >
>>>>> > but then I get
>>>>> >
>>>>> > Author: SvenVanCaekenberghe
>>>>> > Date: 2015-01-07T14:20:37.659713+01:00
>>>>> >
>>>>> > GLMCompositePresentation(Object)>>doesNotUnderstand: #roassal2
>>>>> > RTView>>gtInspectorViewIn:
>>>>> > [ :eachPragma |
>>>>> > (eachPragma selector findTokens: $:) size = 1
>>>>> > ifTrue: [ self perform: eachPragma selector with: composite ].
>>>>> > (eachPragma selector findTokens: $:) size = 2
>>>>> > ifTrue: [ self perform: eachPragma selector with: composite
>>>>> with: aGTInspector ] ] in
>>>>> RTView(Object)>>gtInspectorPresentationsIn:inContext:
>>>>> > Array(SequenceableCollection)>>do:
>>>>> > RTView(Object)>>gtInspectorPresentationsIn:inContext:
>>>>> > [ :d | each gtInspectorPresentationsIn: d inContext: self ] in [ :x
>>>>> | (GLMCompositePresentation new with: [ :d | each
>>>>> gtInspectorPresentationsIn: d inContext: self ]) startOn: x ] in [ :a :each
>>>>> |
>>>>> > a title: [ self printObjectAsAnItem: each ].
>>>>> > a dynamicActions: [ :aPresentation | each gtInspectorActions
>>>>> asOrderedCollection ].
>>>>> > a titleAction: [ :aPresentation | self closeActionFor: aPresentation
>>>>> ].
>>>>> > a dynamic
>>>>> > display: [ :x | (GLMCompositePresentation new with: [ :d |
>>>>> each gtInspectorPresentationsIn: d inContext: self ]) startOn: x ] ] in [
>>>>> :browser |
>>>>> > browser fixedSizePanes: self class numberOfInspectorPanes.
>>>>> > browser
>>>>> > show: [ :a :each |
>>>>> > a title: [ self printObjectAsAnItem: each ].
>>>>> > a dynamicActions: [ :aPresentation | each
>>>>> gtInspectorActions asOrderedCollection ].
>>>>> > a titleAction: [ :aPresentation | self closeActionFor:
>>>>> aPresentation ].
>>>>> > a dynamic
>>>>> > display: [ :x | (GLMCompositePresentation new
>>>>> with: [ :d | each gtInspectorPresentationsIn: d inContext: self ]) startOn:
>>>>> x ] ] ] in GTInspector>>compose
>>>>> > GLMCompositePresentation(GLMPresentation)>>with:
>>>>> > [ :x | (GLMCompositePresentation new with: [ :d | each
>>>>> gtInspectorPresentationsIn: d inContext: self ]) startOn: x ] in [ :a :each
>>>>> |
>>>>> > a title: [ self printObjectAsAnItem: each ].
>>>>> > a dynamicActions: [ :aPresentation | each gtInspectorActions
>>>>> asOrderedCollection ].
>>>>> > a titleAction: [ :aPresentation | self closeActionFor: aPresentation
>>>>> ].
>>>>> > a dynamic
>>>>> > display: [ :x | (GLMCompositePresentation new with: [ :d |
>>>>> each gtInspectorPresentationsIn: d inContext: self ]) startOn: x ] ] in [
>>>>> :browser |
>>>>> > browser fixedSizePanes: self class numberOfInspectorPanes.
>>>>> > browser
>>>>> > show: [ :a :each |
>>>>> > a title: [ self printObjectAsAnItem: each ].
>>>>> > a dynamicActions: [ :aPresentation | each
>>>>> gtInspectorActions asOrderedCollection ].
>>>>> > a titleAction: [ :aPresentation | self closeActionFor:
>>>>> aPresentation ].
>>>>> > a dynamic
>>>>> > display: [ :x | (GLMCompositePresentation new
>>>>> with: [ :d | each gtInspectorPresentationsIn: d inContext: self ]) startOn:
>>>>> x ] ] ] in GTInspector>>compose
>>>>> > BlockClosure>>glamourValueWithArgs:
>>>>> > BlockClosure(Object)>>glamourValue:
>>>>> > GLMDynamicPresentation(GLMPresentation)>>displayValue
>>>>> > GLMDynamicPresentation>>currentPresentation
>>>>> > GLMMorphicDynamicRenderer>>render:
>>>>> > GLMMorphicDynamicRenderer class(GLMMorphicWidgetRenderer
>>>>> class)>>render:from:
>>>>> > GLMMorphicRenderer>>renderDynamicPresentation:
>>>>> > GLMDynamicPresentation>>renderGlamorouslyOn:
>>>>> > GLMMorphicRenderer(GLMRenderer)>>render:
>>>>> > GLMMorphicTabbedRenderer(GLMMorphicWidgetRenderer)>>renderObject:
>>>>> >
>>>>> GLMMorphicTabbedRenderer(GLMMorphicWidgetRenderer)>>renderWithTitleOrNil:
>>>>> > GLMMorphicTabbedRenderer>>render:
>>>>> > GLMMorphicTabbedRenderer class(GLMMorphicWidgetRenderer
>>>>> class)>>render:from:
>>>>> > GLMMorphicRenderer>>renderTabbedCompositePresentation:
>>>>> > GLMTabbedArrangement>>renderGlamorouslyOn:
>>>>> > GLMCompositePresentation>>renderGlamorouslyOn:
>>>>> > GLMMorphicRenderer(GLMRenderer)>>render:
>>>>> > GLMMorphicPaneRenderer(GLMMorphicWidgetRenderer)>>renderObject:
>>>>> > GLMMorphicPaneRenderer>>renderContainerFor:
>>>>> > GLMMorphicPaneRenderer>>render:
>>>>> > GLMMorphicPaneRenderer class(GLMMorphicWidgetRenderer
>>>>> class)>>render:from:
>>>>> > GLMMorphicRenderer>>renderPane:
>>>>> > GLMPane>>renderGlamorouslyOn:
>>>>> > GLMMorphicRenderer(GLMRenderer)>>render:
>>>>> > GLMMorphicPagerRenderer(GLMMorphicWidgetRenderer)>>renderObject:
>>>>> > GLMMorphicPagerRenderer>>actOnPaneReplaced:
>>>>> > MessageSend>>value:
>>>>> > MessageSend>>cull:
>>>>> > MessageSend>>cull:cull:
>>>>> > [ action cull: anAnnouncement cull: announcer ] in
>>>>> AnnouncementSubscription>>deliver:
>>>>> > BlockClosure>>on:do:
>>>>> > [ Processor terminateActive ] in on: exception fork: handlerAction
>>>>> > "Activate the receiver. In case of exception, fork a new
>>>>> process, which will handle an error.
>>>>> > An original process will continue running as if receiver
>>>>> evaluation finished and answered nil,
>>>>> > i.e., an expression like:
>>>>> >
>>>>> > [ self error: 'some error'] on: Error fork: [:ex | 123 ]
>>>>> >
>>>>> > will always answer nil for original process, not 123.
>>>>> >
>>>>> > The context stack , starting from context which sent this
>>>>> message to receiver and
>>>>> > up to the top of the stack will be transferred to forked
>>>>> process, with handlerAction on top.
>>>>> > (so when the forked process will be resuming, it will enter
>>>>> the handlerAction)
>>>>> > "
>>>>> >
>>>>> > ^ self
>>>>> > on: exception
>>>>> > do: [ :ex |
>>>>> > | copy onDoCtx process handler bottom thisCtx |
>>>>> > onDoCtx := thisContext.
>>>>> > thisCtx := onDoCtx home. "find the
>>>>> context on stack for which this method's is sender"
>>>>> > [ onDoCtx sender == thisCtx ]
>>>>> > whileFalse: [
>>>>> > onDoCtx := onDoCtx sender.
>>>>> > onDoCtx
>>>>> > ifNil: [
>>>>> > "Can't find
>>>>> our home context. seems like we're already forked
>>>>> > and handling another exception in new
>>>>> thread. In this case, just pass it through handler."
>>>>> > ^
>>>>> handlerAction cull: ex ] ].
>>>>> > bottom := [ Processor terminateActive ]
>>>>> asContext.
>>>>> > onDoCtx privSender: bottom.
>>>>> > handler := [ handlerAction cull: ex ]
>>>>> asContext.
>>>>> > handler privSender: thisContext sender.
>>>>> > (Process forContext: handler priority:
>>>>> Processor activePriority) resume. "cut the stack of current process"
>>>>> > thisContext privSender: thisCtx.
>>>>> > nil ] in BlockClosure>>on:fork:
>>>>> >
>>>>> >> On 07 Jan 2015, at 14:15, Andrei Chis <chisvasileandrei(a)gmail.com>
>>>>> wrote:
>>>>> >>
>>>>> >> Hi,
>>>>> >>
>>>>> >> There is one extra package that you need to load from the GToolkit
>>>>> repository: GT-InspectorExtensions-CoreRoassal
>>>>> >> It contains all the inspector extensions that depend on roassal and
>>>>> thus cannot be integrated into Pharo.
>>>>> >>
>>>>> >>
>>>>> >> Cheers,
>>>>> >> Andrei
>>>>> >>
>>>>> >> On Wed, Jan 7, 2015 at 1:35 PM, Sven Van Caekenberghe <sven(a)stfx.eu>
>>>>> wrote:
>>>>> >> Hi,
>>>>> >>
>>>>> >> I just loaded Roassal2 in Pharo4 using the following expression:
>>>>> >>
>>>>> >> Gofer it
>>>>> >> smalltalkhubUser: 'ObjectProfile' project: 'Roassal2';
>>>>> >> configurationOf: 'Roassal2';
>>>>> >> loadStable.
>>>>> >>
>>>>> >> When I try one of the examples I see that I am missing some GT
>>>>> presentations specific to Roassal. How should I load those ?
>>>>> >>
>>>>> >> <Screen Shot 2015-01-07 at 13.34.11.png>
>>>>> >>
>>>>> >> Thx,
>>>>> >>
>>>>> >> Sven
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >
>>>>> >
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> www.tudorgirba.com
>>>>
>>>> "Every thing has its own flow"
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Javier Pimás
>>> Ciudad de Buenos Aires
>>>
>>
>>
>
>
> --
> Javier Pimás
> Ciudad de Buenos Aires
>
March 24, 2015
Re: [Pharo-users] Question about loading Roassal2 in Pharo4
by Javier Pimás
Loading Glamour-Tools was ok with:
Gofer new
smalltalkhubUser: 'Moose' project: 'GToolkit';
package: 'Glamour-Tools';
load
Yet, I don't know where to find Glamour-Roassal2-Presentations package
On Mon, Mar 23, 2015 at 5:17 PM, Andrei Chis <chisvasileandrei(a)gmail.com>
wrote:
> You should also load the packages Glamour-Tools
> and Glamour-Roassal2-Presentations from the Glamour repo.
>
>
> Cheers,
> Andrei
>
> On Mon, Mar 23, 2015 at 8:49 PM, Javier Pimás <elpochodelagente(a)gmail.com>
> wrote:
>
>> Hi guys, I see the same problem with latest pharo4. I loaded gt
>> extensions for roassal but now I get a message not understood when
>> selecting the examples. I'm loading roassal and the extensions with
>>
>> Gofer it
>> smalltalkhubUser: 'ObjectProfile' project: 'Roassal2';
>> configurationOf: 'Roassal2';
>> loadStable.
>>
>> Gofer new
>> smalltalkhubUser: 'Moose' project: 'GToolkit';
>> package: 'GT-InspectorExtensions-CoreRoassal';
>> load
>>
>> am I doing something wrong?
>>
>> Cheers
>>
>> On Thu, Jan 8, 2015 at 5:17 AM, stepharo <stepharo(a)free.fr> wrote:
>>
>>> You understand what I wrote in the Pharo vision document about the
>>> process that we should get automated and in place before
>>> really be fully modular.
>>>
>>> Stef
>>>
>>> Hi,
>>>
>>> Let's not panic :).
>>>
>>> The situation is like this:
>>> - in Pharo 4, we have ConfigurationOfGlamourCore loaded which does not
>>> have the Roassal2 presentation
>>> - to get the Roassal2 presentation, you have to load
>>> ConfigurationOfGlamour (so, the full Glamour)
>>> - an extra problem can come from the configurations in the image not
>>> being the latest versions so there can be loading incompatibilities due to
>>> that. That is why, for the current Moose jobs we load manually the latest
>>> versions of the ConfigurationOf* classes (fun).
>>> - then you can use the GT-InspectorExtensions-CoreRoassal
>>>
>>>
>>> This situation has to improve, but in the meantime, you can use the
>>> gtoolkit or the moose 5.1 image which already has everything loaded
>>> correctly.
>>>
>>> Cheers,
>>> Doru
>>>
>>>
>>> On Wed, Jan 7, 2015 at 2:26 PM, Alexandre Bergel <
>>> alexandre.bergel(a)me.com> wrote:
>>>
>>>> You also need Glamour-Roassal2-Presentations. But the last version does
>>>> not seem to load.
>>>>
>>>> Any idea how to fix this situation?
>>>>
>>>> Cheers,
>>>> Alexandre
>>>> --
>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>> Alexandre Bergel http://www.bergel.eu
>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>
>>>>
>>>>
>>>> > On Jan 7, 2015, at 10:22 AM, Sven Van Caekenberghe <sven(a)stfx.eu>
>>>> wrote:
>>>> >
>>>> > Thx.
>>>> >
>>>> > I loaded GT-InspectorExtensions-CoreRoassal-AndreiChis.25
>>>> >
>>>> > but then I get
>>>> >
>>>> > Author: SvenVanCaekenberghe
>>>> > Date: 2015-01-07T14:20:37.659713+01:00
>>>> >
>>>> > GLMCompositePresentation(Object)>>doesNotUnderstand: #roassal2
>>>> > RTView>>gtInspectorViewIn:
>>>> > [ :eachPragma |
>>>> > (eachPragma selector findTokens: $:) size = 1
>>>> > ifTrue: [ self perform: eachPragma selector with: composite ].
>>>> > (eachPragma selector findTokens: $:) size = 2
>>>> > ifTrue: [ self perform: eachPragma selector with: composite
>>>> with: aGTInspector ] ] in
>>>> RTView(Object)>>gtInspectorPresentationsIn:inContext:
>>>> > Array(SequenceableCollection)>>do:
>>>> > RTView(Object)>>gtInspectorPresentationsIn:inContext:
>>>> > [ :d | each gtInspectorPresentationsIn: d inContext: self ] in [ :x |
>>>> (GLMCompositePresentation new with: [ :d | each gtInspectorPresentationsIn:
>>>> d inContext: self ]) startOn: x ] in [ :a :each |
>>>> > a title: [ self printObjectAsAnItem: each ].
>>>> > a dynamicActions: [ :aPresentation | each gtInspectorActions
>>>> asOrderedCollection ].
>>>> > a titleAction: [ :aPresentation | self closeActionFor: aPresentation
>>>> ].
>>>> > a dynamic
>>>> > display: [ :x | (GLMCompositePresentation new with: [ :d | each
>>>> gtInspectorPresentationsIn: d inContext: self ]) startOn: x ] ] in [
>>>> :browser |
>>>> > browser fixedSizePanes: self class numberOfInspectorPanes.
>>>> > browser
>>>> > show: [ :a :each |
>>>> > a title: [ self printObjectAsAnItem: each ].
>>>> > a dynamicActions: [ :aPresentation | each
>>>> gtInspectorActions asOrderedCollection ].
>>>> > a titleAction: [ :aPresentation | self closeActionFor:
>>>> aPresentation ].
>>>> > a dynamic
>>>> > display: [ :x | (GLMCompositePresentation new
>>>> with: [ :d | each gtInspectorPresentationsIn: d inContext: self ]) startOn:
>>>> x ] ] ] in GTInspector>>compose
>>>> > GLMCompositePresentation(GLMPresentation)>>with:
>>>> > [ :x | (GLMCompositePresentation new with: [ :d | each
>>>> gtInspectorPresentationsIn: d inContext: self ]) startOn: x ] in [ :a :each
>>>> |
>>>> > a title: [ self printObjectAsAnItem: each ].
>>>> > a dynamicActions: [ :aPresentation | each gtInspectorActions
>>>> asOrderedCollection ].
>>>> > a titleAction: [ :aPresentation | self closeActionFor: aPresentation
>>>> ].
>>>> > a dynamic
>>>> > display: [ :x | (GLMCompositePresentation new with: [ :d | each
>>>> gtInspectorPresentationsIn: d inContext: self ]) startOn: x ] ] in [
>>>> :browser |
>>>> > browser fixedSizePanes: self class numberOfInspectorPanes.
>>>> > browser
>>>> > show: [ :a :each |
>>>> > a title: [ self printObjectAsAnItem: each ].
>>>> > a dynamicActions: [ :aPresentation | each
>>>> gtInspectorActions asOrderedCollection ].
>>>> > a titleAction: [ :aPresentation | self closeActionFor:
>>>> aPresentation ].
>>>> > a dynamic
>>>> > display: [ :x | (GLMCompositePresentation new
>>>> with: [ :d | each gtInspectorPresentationsIn: d inContext: self ]) startOn:
>>>> x ] ] ] in GTInspector>>compose
>>>> > BlockClosure>>glamourValueWithArgs:
>>>> > BlockClosure(Object)>>glamourValue:
>>>> > GLMDynamicPresentation(GLMPresentation)>>displayValue
>>>> > GLMDynamicPresentation>>currentPresentation
>>>> > GLMMorphicDynamicRenderer>>render:
>>>> > GLMMorphicDynamicRenderer class(GLMMorphicWidgetRenderer
>>>> class)>>render:from:
>>>> > GLMMorphicRenderer>>renderDynamicPresentation:
>>>> > GLMDynamicPresentation>>renderGlamorouslyOn:
>>>> > GLMMorphicRenderer(GLMRenderer)>>render:
>>>> > GLMMorphicTabbedRenderer(GLMMorphicWidgetRenderer)>>renderObject:
>>>> >
>>>> GLMMorphicTabbedRenderer(GLMMorphicWidgetRenderer)>>renderWithTitleOrNil:
>>>> > GLMMorphicTabbedRenderer>>render:
>>>> > GLMMorphicTabbedRenderer class(GLMMorphicWidgetRenderer
>>>> class)>>render:from:
>>>> > GLMMorphicRenderer>>renderTabbedCompositePresentation:
>>>> > GLMTabbedArrangement>>renderGlamorouslyOn:
>>>> > GLMCompositePresentation>>renderGlamorouslyOn:
>>>> > GLMMorphicRenderer(GLMRenderer)>>render:
>>>> > GLMMorphicPaneRenderer(GLMMorphicWidgetRenderer)>>renderObject:
>>>> > GLMMorphicPaneRenderer>>renderContainerFor:
>>>> > GLMMorphicPaneRenderer>>render:
>>>> > GLMMorphicPaneRenderer class(GLMMorphicWidgetRenderer
>>>> class)>>render:from:
>>>> > GLMMorphicRenderer>>renderPane:
>>>> > GLMPane>>renderGlamorouslyOn:
>>>> > GLMMorphicRenderer(GLMRenderer)>>render:
>>>> > GLMMorphicPagerRenderer(GLMMorphicWidgetRenderer)>>renderObject:
>>>> > GLMMorphicPagerRenderer>>actOnPaneReplaced:
>>>> > MessageSend>>value:
>>>> > MessageSend>>cull:
>>>> > MessageSend>>cull:cull:
>>>> > [ action cull: anAnnouncement cull: announcer ] in
>>>> AnnouncementSubscription>>deliver:
>>>> > BlockClosure>>on:do:
>>>> > [ Processor terminateActive ] in on: exception fork: handlerAction
>>>> > "Activate the receiver. In case of exception, fork a new
>>>> process, which will handle an error.
>>>> > An original process will continue running as if receiver
>>>> evaluation finished and answered nil,
>>>> > i.e., an expression like:
>>>> >
>>>> > [ self error: 'some error'] on: Error fork: [:ex | 123 ]
>>>> >
>>>> > will always answer nil for original process, not 123.
>>>> >
>>>> > The context stack , starting from context which sent this
>>>> message to receiver and
>>>> > up to the top of the stack will be transferred to forked
>>>> process, with handlerAction on top.
>>>> > (so when the forked process will be resuming, it will enter the
>>>> handlerAction)
>>>> > "
>>>> >
>>>> > ^ self
>>>> > on: exception
>>>> > do: [ :ex |
>>>> > | copy onDoCtx process handler bottom thisCtx |
>>>> > onDoCtx := thisContext.
>>>> > thisCtx := onDoCtx home. "find the
>>>> context on stack for which this method's is sender"
>>>> > [ onDoCtx sender == thisCtx ]
>>>> > whileFalse: [
>>>> > onDoCtx := onDoCtx sender.
>>>> > onDoCtx
>>>> > ifNil: [
>>>> > "Can't find our
>>>> home context. seems like we're already forked
>>>> > and handling another exception in new
>>>> thread. In this case, just pass it through handler."
>>>> > ^ handlerAction
>>>> cull: ex ] ].
>>>> > bottom := [ Processor terminateActive ]
>>>> asContext.
>>>> > onDoCtx privSender: bottom.
>>>> > handler := [ handlerAction cull: ex ] asContext.
>>>> > handler privSender: thisContext sender.
>>>> > (Process forContext: handler priority:
>>>> Processor activePriority) resume. "cut the stack of current process"
>>>> > thisContext privSender: thisCtx.
>>>> > nil ] in BlockClosure>>on:fork:
>>>> >
>>>> >> On 07 Jan 2015, at 14:15, Andrei Chis <chisvasileandrei(a)gmail.com>
>>>> wrote:
>>>> >>
>>>> >> Hi,
>>>> >>
>>>> >> There is one extra package that you need to load from the GToolkit
>>>> repository: GT-InspectorExtensions-CoreRoassal
>>>> >> It contains all the inspector extensions that depend on roassal and
>>>> thus cannot be integrated into Pharo.
>>>> >>
>>>> >>
>>>> >> Cheers,
>>>> >> Andrei
>>>> >>
>>>> >> On Wed, Jan 7, 2015 at 1:35 PM, Sven Van Caekenberghe <sven(a)stfx.eu>
>>>> wrote:
>>>> >> Hi,
>>>> >>
>>>> >> I just loaded Roassal2 in Pharo4 using the following expression:
>>>> >>
>>>> >> Gofer it
>>>> >> smalltalkhubUser: 'ObjectProfile' project: 'Roassal2';
>>>> >> configurationOf: 'Roassal2';
>>>> >> loadStable.
>>>> >>
>>>> >> When I try one of the examples I see that I am missing some GT
>>>> presentations specific to Roassal. How should I load those ?
>>>> >>
>>>> >> <Screen Shot 2015-01-07 at 13.34.11.png>
>>>> >>
>>>> >> Thx,
>>>> >>
>>>> >> Sven
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >
>>>> >
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> www.tudorgirba.com
>>>
>>> "Every thing has its own flow"
>>>
>>>
>>>
>>
>>
>> --
>> Javier Pimás
>> Ciudad de Buenos Aires
>>
>
>
--
Javier Pimás
Ciudad de Buenos Aires
March 24, 2015
Settings browser
by Hilaire
Hello,
>From the settings browser, I want a drop list populated with morph of my
choice; for example coloured rectangle morphs: I want the user to select
a colour from such a predefined set and not from a text list.
I did not find it is possible. Did I miss something ?
(aBuilder pickOne: #pointColor)
label: 'Colour' translated;
description: 'The default point colour.';
default: #red;
domainValues: {#red->Color red asMorph .
#black-> Color black asMorph}].
Thanks
--
Dr. Geo - http://drgeo.eu
iStoa - http://istoa.drgeo.eu
March 24, 2015
Re: [Pharo-users] Using Google service discovery API's with Pharo Smalltalk by Richard J. Prinz
by Andy Burnett
Sven wrote
<<<
I hadn't seen this posted on the mailing list, but this is really cool
stuff.
Using Google service discovery API's with Pharo Smalltalk by Richard J.
Prinz
http://www.min.at/prinz/?x=entry:entry150318-104537 <
http://www.min.at/prinz/?x=entry:entry150318-104537;comments:1#comments>
>>>
I totally agree with this. I have played with the code, and started
writing some code which manipulates the Google services. It is really
powerful.
Also, Richard has developed a slick way of dealing with OAuth when running
a client app. This is great!
March 24, 2015