Hi,
I now fixed the providerTypes error (including a test). Please try with the latest Moose
6.0 image.
Cheers,
Doru
On Aug 10, 2016, at 3:49 PM, Tudor Girba
<tudor(a)tudorgirba.com> wrote:
Hi,
Welcome back :)
On Aug 10, 2016, at 9:04 AM, Meinert Schwartau
<m.schwartau(a)gmail.com> wrote:
Hi,
I want to display the dependencies between my classes. I wonder why the following code
does not work, it displays the classes in a circle but not the edges between them. I’m
using Moose 6 und Pharo 5 (downloaded yesterday) and evaluated the following code in the
moose panel in the evaluator:
|view|
view := RTMondrian new.
view nodes: ArrayedCollection withAllSubclasses.
view edges: (ArrayedCollection withAllSubclasses) from: [ :cls | cls yourself ] to: [
:cls | cls referencedClasses ].
view circleLayout.
view
In your script, from:to: connects one source node with one target node returned by
evaluating the corresponding blocks. However, your to: blocks return a collection, and the
engine will try to find a node that has that collection as a model.
What you want is to iterate over all items in the collection and connect the source node
to each of the target nodes.
To this end, you should use toAll:
|view|
view := RTMondrian new.
view nodes: ArrayedCollection withAllSubclasses.
view edges source: (ArrayedCollection withAllSubclasses) connectFrom: [ :cls | cls
yourself ] toAll: [ :cls | cls referencedClasses ].
view circleLayout.
view
Then I tried to display the dependencies between my own classes (parsed by jdt2famix) but
got an exception. After clicking on All classes in the moose panel I entered the following
code in the evaluator:
|view allClasses|
view := RTMondrian new.
allClasses := self allClasses.
view nodes: allClasses.
view edges: allClasses from: [ :cls | cls yourself ] to: [ :cls | cls providerTypes].
view circleLayout.
view
If I execute the code above, I get an “MessageNotUnderstood: reveiver of “atScope:” is
nil” exception. If I remove the “view edges: allClasses from: [ :cls | cls yourself ]
to: [ :cls | cls providerTypes].” statement I don’t get an exception, the RTMondorian view
opens, but no classes are displayed as dots in the view.
Indeed, thanks for reporting.
I also noticed a bug in MooseQuery during the computation of messages like providerTypes.
The problem appears when the opposite part of a relationship is nil. For example, when you
have an invocation and the target cannot be resolved, the invocation will point to nil,
and Moose gets unhappy. This is a problem in Moose and we need to solve it.
Cheers,
Doru
Any suggestions?
Best regards
Meinert
_______________________________________________
Moose-dev mailing list
Moose-dev(a)list.inf.unibe.ch
https://www.list.inf.unibe.ch/listinfo/moose-dev
--
www.tudorgirba.com
www.feenk.com
"If you can't say why something is relevant,
it probably isn't."