On Sep 16, 2011, at 5:46 PM, mpescuma(a)libero.it wrote:
> Hi Stephane...
> I'm a developer that needs to extract some information from moose analysis (ex. properties and its values) ... exists a way to do this from a java or c++ program without launching the moose user interface ?
You can script moose by passing a script on the command line. You could also conect via a socket.
> My goal is this: starting from a java project, build with inFusion the .mse project... then without launching the moose user interfarce extract the moose analysis with specific library API (has the moose an api library ?) ... building around this a my program or user interface.
> Can I access to moose analisys using a specific library ? Exists this way ? If yes, how can do it ?
No for the moment the VM does not let us simply talk to objects inside it.
> If no, can moose suite produce a file (or something of equivalent) with his analysis of the project, the same that I can see with the user interface ?
sure there exporters in tab separated formats. Now writing a specific exporter should be easy and I would look at the one that export and filter
mse files. Andre (when you are back from holidays) can you give michele some pointers?
>
> thanks a lot,
> Michele.
Hi,
I'm making some progress here... but now I need another feature.
As I'm using glamour and magritte to present some data who is persistent, I need to being able to react to a #save call on a magritte presentation.
For instance... in my browser:
...
browser transmit
to: #detail;
from: #list;
andShow: [ :presenter |
presenter magritte
title: [ :anItem | anItem asString ];
act: [ :presentation :anItem | self removeItem: anItem ]
icon: LWUIIcons / #userTrash
entitled: 'Borrar' ].
...
how can I know if user pressed #save and there is a modified object there? (to update persistent repository)
working with plain magritte, I'd do:
...
anObject asMorph
onAnswer: [ :value | blah, blah ];
morph.
...
...so... is there a way in glamour to react to updated objects?
cheers,
Esteban
Hello,
I am running two different versions of VerveineJ and I have two different
problems:
1. When running the following command from the freshly downloaded verveineJ
sh verveinej.sh -Xmx 2000m -
/Users/ubhatti/Desktop/moosedata/Openbravo-3.0MP2.1/src/org/openbravo/
I get:
Exception in thread "main" java.lang.IllegalStateException: invalid
environment settings
at org.eclipse.jdt.core.dom.ASTParser.getClasspath(ASTParser.java:248)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java:970)
at fr.inria.verveine.extractor.java.VerveineJParser.parse(Unknown Source)
at fr.inria.verveine.extractor.java.VerveineJParser.main(Unknown Source)
2. When running this command on a copy of VJ downloaded in June and running
this command:
sh verveinej.sh -Xmx 4000m -
/Users/ubhatti/Desktop/moosedata/Openbravo-3.0MP2.1/src/
I get:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at sun.reflect.GeneratedMethodAccessor23.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at ch.akuhn.fame.internal.MethodAccess.write(MethodAccess.java:98)
at
ch.akuhn.fame.fm3.PropertyDescription.writeAll(PropertyDescription.java:334)
at ch.akuhn.fame.parser.Importer$Elem$Attr.maybeEnd(Importer.java:95)
at ch.akuhn.fame.parser.Importer$Elem$Attr.endAttribute(Importer.java:85)
at ch.akuhn.fame.parser.Importer$Elem.endAttribute(Importer.java:126)
at ch.akuhn.fame.parser.Importer.endAttribute(Importer.java:233)
at ch.akuhn.fame.parser.Parser.attributeNode(Parser.java:123)
at ch.akuhn.fame.parser.Parser.elementNode(Parser.java:166)
at ch.akuhn.fame.parser.Parser.accept(Parser.java:105)
at ch.akuhn.fame.parser.Importer.readFrom(Importer.java:269)
at ch.akuhn.fame.Repository.importMSE(Repository.java:195)
at ch.akuhn.fame.Repository.importMSEFile(Repository.java:200)
at fr.inria.verveine.core.VerveineParser.linkToExisting(Unknown Source)
at fr.inria.verveine.extractor.java.VerveineJParser.parse(Unknown Source)
at fr.inria.verveine.extractor.java.VerveineJParser.main(Unknown Source)
The second problem is about parameterizing the VM. I have tried various
parameters but its not working. I'm surely doing something wrong here but
cant figure it out.
thanx in advance,
Usman
Hi,
I'm again working with glamour.
I have this browser:
buildBrowser
| browser |
browser := GLMTabulator new
column: #list;
column: #detail;
yourself.
browser transmit
to: #list;
andShow: [ :presenter |
presenter list
title: [ self crudClass description label ];
act: [ self addItem ]
icon: LWUIIcons / #listAdd
entitled: 'Agregar';
selectionAct:[ :presentation :anItem | self removeItem: anItem ]
icon: LWUIIcons / #userTrash
entitled: 'Borrar';
updateOn: LWUIItemRemoved from: [ self announcer ];
display: [ self itemsSortedIfNecessary ] ].
browser transmit
to: #detail;
from: #list;
andShow: [ :presenter |
presenter magritte
title: [ :anItem | anItem asString ];
updateOn: LWUIItemRemoved from: [ self announcer ];
act: [ :presentation :anItem | self removeItem: anItem ]
icon: LWUIIcons / #userTrash
entitled: 'Borrar' ].
^browser
(don't take into account the spanish words :) )
the idea is this: I'm making a simple CRUD for some classes... and this is the problem:
1) when calling "removeItem", I update the list, and everything works fine... but I removed an element from the list, so... selection shouldn't be valid anymore, and the magritte presentation should be erased... and this does not happens.
2) I added the #updateOn:from: send to magritte presentation to see if something happens... and no, it never receives the update :(
so... I think there is a need to fix both problems: list presentations should trigger transmit update if selection no longer valid, and magritte presentation should react to updates.
Is that ok?
cheers,
Esteban
Hi,
I am trying to replicate the figure present on the following webpage:
http://www.themoosebook.org/book/internals/famix/core
The purpose is to include the figure in the document describing Famix 3.0 in
detail. So far working through examples, I have been able to produce this
script:
|famixClasses|
famixClasses := (FAMIXEntity withAllSubclasses select: [: aClass | aClass
name beginsWith: 'FAMIX']).
view shape rectangle withText size: 10.
view nodes: famixClasses.
view shape: (MOOrthoHorizontalLineShape new).
view edgesFrom: #superclass.
view horizontalDominanceTreeLayout horizontalGap: 20; verticalGap: 7.
I need help in removing Famix from the prefix of the class names and add
attribute information in a UML like format.
thanx
Usman
Hi guys
I would like to know if at the fame level we can tag a method as an
extension of a fame package.
I saw that class implements annotation methods which contain this tag and
I'm curious.
I thought that we could do it with fame (when I remember the meta model of
fame).
I imagine that I can query all the methods with that label but does fame
infrastructure provides a query?
Then I was thinking that we get comment at the meta level but this is not
the case (is it true?) so for now we will use
Smalltalk class comments.
Stef
How can I access the comment once I get the FM3Description?
For example below I would like to access the MSEComment.
to motivate an asnwer: after we will go over all the comments (class comment
and attribute comments and write them in a nice way and
generate a documentation automatically
isWrite
<MSEProperty: #isWrite type: #Boolean>
<MSEComment: 'Write access'>
^isWrite
Tx
Stef