MooseGroups 101

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

MooseGroups 101

Uko2
Hi everyone.

Probably I’ve missed something, but how does it work in a way that when you select “All methods” in MooseFinder you get a FAMIXMethodGroup, and not just a MooseGroup? I’ve checked all the methods of FAMIXMethodGroup and all references to FAMIXMethodGroup, but I can’t figure it out.

Cheers
Uko
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: MooseGroups 101

Uko2
Hail to the Pharo! I’ve figured it out by putting a breakpoint in FAMIXMethodGroup instance creations. And I have to say that there is quite a lot of meta-magic involved :)


On 12 Nov 2013, at 23:04, Yuriy Tymchuk <[hidden email]> wrote:

> Hi everyone.
>
> Probably I’ve missed something, but how does it work in a way that when you select “All methods” in MooseFinder you get a FAMIXMethodGroup, and not just a MooseGroup? I’ve checked all the methods of FAMIXMethodGroup and all references to FAMIXMethodGroup, but I can’t figure it out.
>
> Cheers
> Uko
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: MooseGroups 101

Tudor Girba-2
Hi Uko,

Groups are essential for Moose. When we have one entity, we have polymorphism and because of that we can nicely map menu items and scripting methods on unary messages. To have the same on groups of objects, we needed to have polymorphism as well.

The magic related to the type inference is more interesting when you interactively choose entities to go in a group. Then, based on the type of the elements, the group type changes at runtime. This dynamic typing logic is documented here:
MooseGroupTest>>testGroupType

Let me know if you have more questions.

Cheers,
Doru

p.s. When trying to understand a class in Pharo, it is always a good idea to check the superclasses :)




On Tue, Nov 12, 2013 at 11:51 PM, Yuriy Tymchuk <[hidden email]> wrote:
Hail to the Pharo! I’ve figured it out by putting a breakpoint in FAMIXMethodGroup instance creations. And I have to say that there is quite a lot of meta-magic involved :)


On 12 Nov 2013, at 23:04, Yuriy Tymchuk <[hidden email]> wrote:

> Hi everyone.
>
> Probably I’ve missed something, but how does it work in a way that when you select “All methods” in MooseFinder you get a FAMIXMethodGroup, and not just a MooseGroup? I’ve checked all the methods of FAMIXMethodGroup and all references to FAMIXMethodGroup, but I can’t figure it out.
>
> Cheers
> Uko
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



--

"Every thing has its own flow"

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: MooseGroups 101

Uko2

On 13 Nov 2013, at 06:36, Tudor Girba <[hidden email]> wrote:

Hi Uko,

Groups are essential for Moose. When we have one entity, we have polymorphism and because of that we can nicely map menu items and scripting methods on unary messages. To have the same on groups of objects, we needed to have polymorphism as well.

The magic related to the type inference is more interesting when you interactively choose entities to go in a group. Then, based on the type of the elements, the group type changes at runtime. This dynamic typing logic is documented here:
MooseGroupTest>>testGroupType

Let me know if you have more questions.

I figured it out myself. The only thing is that when you look at existing implementations you can’t see what you have to do to make it work. But now I see that there is a little guide in MooseGroup comments. 

Uko



Cheers,
Doru

p.s. When trying to understand a class in Pharo, it is always a good idea to check the superclasses :)




On Tue, Nov 12, 2013 at 11:51 PM, Yuriy Tymchuk <[hidden email]> wrote:
Hail to the Pharo! I’ve figured it out by putting a breakpoint in FAMIXMethodGroup instance creations. And I have to say that there is quite a lot of meta-magic involved :)


On 12 Nov 2013, at 23:04, Yuriy Tymchuk <[hidden email]> wrote:

> Hi everyone.
>
> Probably I’ve missed something, but how does it work in a way that when you select “All methods” in MooseFinder you get a FAMIXMethodGroup, and not just a MooseGroup? I’ve checked all the methods of FAMIXMethodGroup and all references to FAMIXMethodGroup, but I can’t figure it out.
>
> Cheers
> Uko
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



--

"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev