Take the one of Simon instead.
I tried to not make Moose depends on FAMIX2, but this is a hell...
Will provide an up-to-date soon
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
I was taking a quick look at DefaultEntityState and I have a few
questions about its purpose, related to the instance variables
declared inside:
- entity: easy enough, link back to the moose entity
- properties: cache for properties like metric values....
- attributes: cache for attributes? (like derived attributes?) why in
a different slot? And why is it an array of Association and not a
dictionary like properties
- groups: cache for groups? But it is currently useless as there is no
accessor to fill it up
--
Simon
Hi all,
When I import packages with references between classes,
I have nothing in myClass1>>outgoingReferences, but there is the good
thing in myClass2>>incomingReferences
Is it the importer which doesn't work ?
Thanks.
Cheers
---
Jannik Laval
PhD Student - Rmod Team - INRIA
Certified Project Management Associate (IPMA)
http://www.jannik-laval.euhttp://rmod.lille.inria.fr
---
Hi All,
David R. and I are playing with Glamour, a cool framework to define
browsers. Currently, the Moose browser @ Pharo uses OB. Although it
works fine, it sticks to the Smalltalk way of browsing code, which we
find a bit limited.
I apology in advance for cutting & pasting code here. We defined the
following method:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
mooseFinder
| browser |
browser := GLMFinder new .
browser list
display: [:each | each entities];
when: [:each | "(each isKindOf: MooseAbstractGroup)" each ==
MooseModel root ].
browser list
title: 'Classes';
display: [:each | each allClasses ];
when: [:each | (each isKindOf: MooseAbstractGroup) and: [each
allClasses notEmpty] ].
browser list
title: 'Methods';
display: [:each | each allMethods ];
when: [:each | (each isKindOf: MooseAbstractGroup) and: [each
allMethods notEmpty] ].
browser list
title: 'Superclasses';
display: [:each | each superclassHierarchyGroup ];
when: [:each | (each isKindOf: FAMIXClass) and: [each
superclassHierarchyGroup notEmpty]].
browser list
title: 'Subclasses';
display: [:each | each subclassHierarchy ];
when: [:each | (each isKindOf: FAMIXClass) and: [each
subclassHierarchy notEmpty]].
^ browser
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
It shows up a small MacOSX-like finder that shows classes,
superclasses and subclasses. Very cool!
Few questions now:
- Lists (Classes, Methods, Superclasses, Subclasses) are statically
defined. In Moose however, these are defined with pragmas. How can we
describe the automatic generations of lists?
- If we want to embed this browser into a bigger one, how do we pass
the right-most selected element ? Using a GLMTableLayoutBrowser, one
would do a "browser sendTo: #outer -> #selectedElement from:
#element" (modulo names). Here, we need something like "browser
sendTo: #outer -> #lastSelection".
Cheers,
David & Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Dear List,
I am currently working on a C importer based on srcML output. I
created an extension of FAMIX3 (I am working with Pharo) since FAMIX3
did not express procedural languages.
Essentially, 4 classes defines this extension:
- CAFunction subclass of FAMIXBehaviouralEntity
- CAInclue subclass of FAMIXAssociation
- CAModule subclass of FAMIXScopingEntity
- CAVariable subclass of FAMIXGlobalVariable
An instance of CAModule is intended to describe a C Module, instance
being generated from a C file. I think this should be the right way
to do.
On the other hand, there are FAMIXFolder and FAMIXFile. Ideally, a C
file should be seen as a file _and_ as a module. The class FAMIXFile
contains useful methods, that I would like to use on a CAModule. But
having one instance of CAModule and one instance of FAMIXFile per .c
file is clearly suboptimal.
My intuitions argues for creating a trait TFAMIXFile, that will be
used by both FAMIXFile and CAModule.
Any comment on this trait?
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
I just stumble upon the case when adding Famix.SourceAnchor to the
metamodel. It does not make much sense to make SourceAnchor a subclass
of FamixEntity.
Yet a common way to 'get' the Famix metamodel (found here and there in
the code) is to use FAMIXEntity withAllSubclasses (which misses
SourceAnchor)
Yet another way is to use PackageInfo, but then I need to know all
packages in which Famix extensions have been defined.
Any suggestion?
Note: we dont have this problem with MooseModel, because MooseModel
uses MooseEntity withAllSubclasses :)
but I dont want to always have this dependency on Moose when loading
Famix alone
--
Simon
Hi All,
Running HismoTest raises an error. Apparently, FAMIXSourceAnchor seems
to be not properly fame described.
A "MooseModel resetMeta does not help. FAMIXSourceAnchor is a subclass
of MooseEntity, whereas in its annotation states it is a subclass of
Object. I tried to replace Object by MooseEntity but same result.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi Alex,
I need some new features in sqMondrian:
- to fix a width for MOLabelShape (method width: )
- preserve the height of a MORectangleShape when a MOLabelShape is
inserted in it
- have the property text: working in MORectangleShape
- edges in top of the figure
- fix edges :
this code doesn't work fine:
----
| view |
view := MOViewRenderer new.
view interaction popupText: [:e | e asString].
view nodes: (1 to: 2) forEach: [:each |
view interaction popupText: [:e | e asString].
view nodes: (1 to: 5).
view gridLayout].
view edges: view domain
from: [:ea | ea]
to: [:ea | ea+1]
fromGlobal: false
toGlobal: false.
view open
----
Cheers
---
Jannik Laval
PhD Student - Software Quality - INRIA
Certified Project Management Associate (IPMA)
http://www.jannik-laval.euhttp://rmod.lille.inria.fr
---
Hi All!
I cleaned a bit MOViewRenderer by removing all methods that set event
handlers. In other words, if you were used to write:
view popupText: [:each | ... ].
You now need to do
view interaction popupText: [:each | ... ].
Spring is coming, need to clean a bit.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi Jannik,
I fixed the problem you described with the gap. If you now set a
gapSize to 0, you should not get a gap between subnodes and the
encapsulating node.
Let me know whether it is fine.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.