Today we created a tool with stephane:
I'm a kind of loader that know how to save and load list of packages.
First when you have a configuration of packages that you want to version
use:
(Pay attention version and save first your packages, we are talking here
about saving a list of packages not the packages themselves)
publishNewVersion
it will create a new method scriptXXX on the
MooseConfigurationRepository
You can then version this class in the package containing the Reloader
class.
In another image once you load this new version you can reload the
configuration you save using the method
reload: aNumber
and it will load all the packages you previously specified.
Under the cover, we need a way to know which packages to save and where to
load them.
Here is how this information is specified right now, it can be modified
using accessors.
defaultSavedPackagesPatternNames
^ #(#('Moose-Tests-Algos-InformationRetrieval*' '
http://www.squeaksource.com/MooseAlgos') #('Moose-Settings*' '
http://www.squeaksource.com/Moose') #('ConfigurationOfNewECompletion*' '
http://ss3.gemstone.com/ss/NEC') #('Fame-Example*' '
http://www.squeaksource.com/Fame')
#('Moose-Tests-Algos-FormalConceptAnalysis*' '
http://www.squeaksource.com/MooseAlgos') #('CollectionExtensions*' '
http://www.squeaksource.com/CollectionExtensions') #('Grease-Core*' '
http://www.squeaksource.com/Seaside30') #('PetitSmalltalk*' '
http://source.lukas-renggli.ch/petit') #('Mondrian-Visitor*' '
http://www.squeaksource ......)
Currently, it kills squeaksource but we will retry with a wait between
each package and it should works.
This tool is available at:
http://www.smalltalkhub.com/mc/StephaneDucasse/MooseReloader/main
--
*Guillaume Larcheveque*
Hi everybody,
last question for today :-)
Is there a converter which converts from MSE 3.0 to 2.1 format?
I'm obviously trying to visualize some Java code with Code City. The
MSE was created using verveinej. I know that the inFamix paid version
can produce MSE 2.1 output, but if somehow possible I would prefer an
open source / non-paid solution.
Maybe, is there an older version of verveinej available which would
produce MSE 2.1? Or was verveinej producing MSE 3.0 from the
beginning?
Thanks a lot and best regards,
Torben
Status: New
Owner: ----
CC: alexandr...(a)gmail.com
Labels: Type-Defect Priority-Medium Component-Mondrian Milestone-4.7
New issue 798 by tudor.gi...(a)gmail.com: Mondrian should store edges in the
most specific parent of the from/to nodes
http://code.google.com/p/moose-technology/issues/detail?id=798
The edges should be stored in the most specific parent of the from and to
nodes, and not in the parent of the node in which they are defined.
This is because the layout takes this information into account. For
example, the below layout does not show a tree inside node 1.
view := MOViewRenderer new.
view node: 1 forIt: [
view shape label.
view nodes: (10 to: 11).
view treeLayout.
].
view edgesFromAssociations: {10 -> 11}.
view open.
In experimenting to understand ROMondrianExample>>attachPointOn:
I broke into the execution as follows: "forEach: [:cls | self haltOnce."
now if I highlight and inspect 'view shape line' I get a ROLine.
but if I highlight and inspect 'view shape rectangle' I get a
ROMondrianViewBuilder rather than the expected something like ROBox.
This seems wrong that these are not consistent.
cheers, -ben
I think the following would be the start of a good example of how
Roassal works...
| view rawView el1 el2 edge line |
rawView := ROView new.
el1 := ROElement new.
el1 extent: 50@50.
el1 + ROBox red + ROCircle yellow + ROLabel @ RODraggable.
rawView add: el1.
rawView open
...except that it would be nice if the ROLabel could be centred.
In addition, being able to place the ROLabel in various "offset"
locations, I think that would satisfy a lot of my composition
requirements - for example building a transformer compound symbol with
two overlapping circles and two labels for "equipment tag" and "power
size". To that effect it would be great if ROLabel or similar could
have a callback mechanism to get different attributes from the model.
Alternatively I guess I could make a new subclass of ROShape that draws
such that directly.
cheers -ben
Referring to the attached graph, what is the best way to approach the
following in Roassal.
Currently with Mondrian I produce a produce a custom shape using the
forms builder in #mondrianShape, which is a method of my ModelRoot
class. Referring to the attached graph, as an example this shows the
class name "Substation" above the instance "SS1" and has a space for
contained items to be displayed within it.
>>mondrianShape
| builder |
builder := MOFormsBuilder new.
builder column; center; fill; pref; grow.
builder
row; center; pref; fill; grow;
row; center; pref; fill; grow;
row; center; pref; fill; grow.
builder x: 1 y: 1 add: ( MORectangleShape new text:
#strippedClassName; textAlignment: #left; borderColor: Color white ) .
builder x: 1 y: 2 add: ( MORectangleShape new text: #localName;
textAlignment: #left ) .
builder x: 1 y: 3 add: ( MORectangleShape new ) .
builder x: 1 y: 3 add: ( MOChildrenShape new ) .
^builder shape
In conjunction with the use of MOChildrenShape above, class ModelRoot
also has method #addSubViewTo: which descends through contained classes
- for example instance "primary" inside "T1" inside "SS2" inside "Figure
8..."
>>addSubViewTo: aMOViewRenderer
aMOViewRenderer
node: self
using: self mondrianShape
forIt:
[
self children do:
[ :child |
child addSubViewTo: aMOViewRenderer.
]
]
My initial issues in migrating this to Roassal are:
1. Roassal appears to not provide any methods that have "using:" in them.
2. Roassal appears to not support MOFormsBuilder
It may be that I am accessing to much internal methods. The code above
was the result of evolutionary hacking as I was learning Mondrian. I
would be happy to re-architect if someone can advise best practice for
Roassal.
cheers -ben
Just to give you an idea of where I would like to end up... referring to
the attached [1] & [2]. I am looking to be able to generate a first
layout from data by applying a layout, but then mostly move nodes around
and draw links manually - then save and load these layouts. I imagine
that similar might be useful for software analysis wanting to
intuitively arrange a few nodes to annotate together for printing
purposes - saving different zoomed in "views" of the system under analysis.
One thing I am contemplating is whether one of my "busbar" shapes could
be defined to have several regularly spaced attachpoints, with the
attachpoints themselves optionally visible - either full time or when
hovering over a shape.
Also I'd like to be able to group shapes that a layout can act on as a
whole. A little different from the MOFormsBuilder, it would just be
offsets relative to each other, to the point where interactively you
could multi-select nodes and "Group" them to be acted on by a layout as
a whole.
I've also marked a couple of other ideas on these attached files.
[1] Roassal Use Case - Motor Control Centre Single Line Diagram (small).pdf
[2] Roassal Use Case - Industrial Plant Power Distribution Single Line
Diagram (small).pdf
cheers, -ben