Hi Dennis,
Sorry for my late answer.
> I looked at the following method:
>
> ROPopup>>createElementFor: element
> ^ ROElement new
> add: (ROElement new
> + ((ROLabel
> text: (text roValue: element model)) color: textColor))
> + box copy;
> yourself
>
>
> and noticed some things:
> • A ROElement is create inside another. Out of curiosity: why is this necessary?
Look at the following example:
The popup shows "hello" in a gray background. There are two elements here. The gray background and the white text.
> • When doing ROElement new, these elements are NOT added to the same view, the given element is in, thus these elements dont use the same zOrdering. What view is this? Where is it from and why is it a different one?
You are very right. The two elements are not added in the same view. It took us some time to come up with that solution. The reason is that you do not want to have the same camera for the view and the popup. Consider the following example:
-=-=-=-=-=-=-=-=-=-=-=-=
| view el stack |
stack := ROViewStack new.
view := ROView new.
el := ROElement on: 123.
el + ROBox.
el @ (ROPopup new receivingView: stack).
el @ RODraggable.
view on: ROMouseClick do: [ :event | ROZoomInMove new on: view ].
view add: el.
stack addView: view.
stack open
-=-=-=-=-=-=-=-=-=-=-=-=
Do a bit of clicking on the background and raise the popup. You get something like:
The node is large and the popup has its original size.
Now, if you remove the "receivingView: stack" as in:
-=-=-=-=-=-=-=-=-=-=-=-=
| view el stack |
stack := ROViewStack new.
view := ROView new.
el := ROElement on: 123.
el + ROBox.
el @ (ROPopup new).
el @ RODraggable.
view on: ROMouseClick do: [ :event | ROZoomInMove new on: view ].
view add: el.
stack addView: view.
stack open
-=-=-=-=-=-=-=-=-=-=-=-=
You will have a big popup. Rather ugly isn't it?
> • The created elements will have a zIndex of zero, since none is set.
> To make popups work in the case a view uses ROBasicZOrdering I changed the method in the following way:
>
> ROPopup>>createElementFor: element
> ^ (ROElement new view: element view; zIndex: element zIndex + 1; yourself)
> add: ((ROElement new view: element view; zIndex: element zIndex + 1; yourself)
> + ((ROLabel
> text: (text roValue: element model)) color: textColor))
> + box copy;
> yourself
>
>
> These changes should not affect the normal use case.
>
> I don't know if this is the correct way to do this, or if there are maybe underlaying issues with zIndex in general which should be adressed first.
>
> What do you think?
If I understand correctly, you want to use the zIndex to always have the popup above the pointed element. Normally, this is not necessary since the popup is the last in the drawing queue (since it is added when a MOMouseEnter is raised). However, I see this is not always the case since you are using zIndexes: you may have elements with a different zIndex and the popup has still 0 as zIndex.
But why "+1" ? The popup should be above all the other nodes shouldn't it? It could therefore be 10000 instead no?
> I attached the code if you want to merge it in.
I have no problem to include your change, I am just trying to figure out the usage scenario first.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi,
I'm building a MooseModel for a development session, in which, by now, I'm just storing some details about the method invocations performed by the user.
Apart from the name of the session and other small meta-data, my session knows the receivers (i.e., Smalltalk classes) of the method invocations performed during the session.
I'm pretty new to Moose & FAMIX but I managed to have a working MooseModel that I can easily browse in the MoosePanel. Here are the steps I made:
- Added pragmas to the Session's field accessors I'm interested in
- Added the visit: method
- Added the annotation method on the class side
Now, I've a problem. The field containing the receivers (i.e., the set of Smalltalk classes which is defined as a property of my MooseModel) is a MooseGroup.
My goal is that such property is a FAMIXClassGroup so that I can use some of the utility methods defined for FAMIXClassGroup's to do some data analysis.
Any help is appreciated and also feedback about the process I followed to build my MooseModel.
Thanks in advance,
Roberto
Hi all,
I used to create moose models in the following way:
systemName := 'Moose'
^ MooseModel root entityStorage at: systemName ifAbsent: [
model := MooseModel new.
model name: systemName.
importer := MooseSqueakClassPackageImporterTask new.
importer importingContext mergeClassAndMetaclass.
importer runCandidateOperator.
importer model: model;
addFromPackagesNamed: (MooseScripts packageNamesFor: systemName, '*') ;
addFromPackagesNamed: (MooseScripts packageNamesFor: 'ConfigurationOf',
systemName);
runWithProgress.
^ model install
].
But the class MooseSqueakClassPackageImporterTask does no longer exists.
What is the correct way to create a moose model?
Cheers,
Dennis
Soem work on the roassal front :)
Thanks Mathieu
Begin forwarded message:
> From: mathieubmddehouck(a)mailoo.org
> Subject: Some Radial News
> Date: April 9, 2013 2:29:43 PM GMT+02:00
> To: Stephane Ducasse <stephane.ducasse(a)inria.fr>, Alexandre Bergel <abergel(a)dcc.uchile.cl>, Tudor Girba <tudor(a)tudorgirba.com>
>
> Hello
>
>
> I've worked on radial tree, and i have good results.
>
> The code needs improvements, but it does work well.
>
>
> I'll add bezier curves tomorrow I hope.
>
>
> And then I'll focus on force based.
>
>
> But what do you want the force based layout to do ?
>
> I mean there's already one, so what does not work with it ?
>
>
> I've add some picture of my work.
>
>
> Mathieu
>
>
Hi,
When I was at the PharoConf + MooseDay, Doru in one of his talks used a really cool method to, given a set of classes, provides all the common superclasses to build a cool system complexity. Any of you remembers or knows that message?
Thanks in advance,
Roberto
Katja noticed that the rendering machine was running out of disk space. She might be able to free some up this afternoon
Stephan
Verstuurd vanaf mijn iPhone
https://www.youtube.com/watch?v=9xRVzzjgPu8
Rendering and uploading (probably 1 or 2 a day):
Data Migration with Moose
FileSystem-Git
Pharo CLI
Building UIs with Spec
MongoDB
Fuel & Tanker
Others: later
Stephan