Hi
There is a new layout for packing rectangle nodes.
Gofer new
smalltalkhubUser: '' project: 'RoassalAlgorithm';
package:
'Roassal-New';
load
---------------------------------------------------------------------------------------------------
"Source code: ROMondrianExample>>miniMapOn:"
"Preambule. It includes
the initialization. "
| view rawView |
rawView := ROView new.
view :=
ROMondrianViewBuilder view: rawView.
"-------------"
"-------------"
view shape rectangle
width: [ :cls | cls numberOfVariables * 5 ];
height: #numberOfMethods;
color: (Color r: 0 g: 1 b: 1 ).
view nodes:
Collection withAllSubclasses.
"1 to: view nodes size by: 2 do: [ :ea
||i e| e := view nodes at: ea.
i := e width.
e width: e height.
e
height: i.
e extent: e width @ e height ] ."
view layout:((
RORectanglePacking new)ratioWidth: 2 height: 1; padding:
3).
"-------------"
"-------------"
"Below is the initiation of the
menu and opening the visualization"
ROEaselMorphic new populateMenuOn:
view.
view
open.
------------------------------------------------------------------------------------------------------
Try it and give me feedback, please.
Regards
Mathieu
Hello,
I'm doing an internship in the INRIA team RMod for 3 month. During this
internship, I would like to export Moose on the web.
I know there is a REST library on Seaside and we would to use it.
Have you got some pointers or links on resources that I can use to doing
this ?
Thanks
Vincent BLONDEAU
Student in Software Engineering and Statistics
Polytech Lille
Dear All,
Juraj has been working on a new builder for Roassal. Imagine something like Mondrian for to define Matrixes. The idea is to port DSM on Roassal
Juraj did an excellent job at defining the infrastructure to easily defines matrixes and DSM.
Here is the incantation to load the builder:
Gofer new
smalltalkhubUser: 'JurajKubelka' project: 'RoassalProposals';
package: 'RoassalGraphBuilders';
load.
(Smalltalk globals at: #RODependencyMatrixBuilderTest) browse.
Here is a list of small doits with their respective screenshots:
-=-=-=-=-=-=-=-=-=-=-=-=
| view builder |
view := ROView new.
builder := RODependencyMatrixBuilder new.
builder model: (Array with: true with: false).
builder dependencyBoolean: #xor:.
builder gapSize: 0.
builder on: view.
view open
-=-=-=-=-=-=-=-=-=-=-=-=
-=-=-=-=-=-=-=-=-=-=-=-=
| view builder objects |
objects := ROShape withAllSubclasses.
view := ROView new.
view @ RODraggable.
builder := RODependencyMatrixBuilder new.
builder model: objects.
builder dependency: #superclass.
builder gapSize: 0.
builder on: view.
view open
-=-=-=-=-=-=-=-=-=-=-=-=
-=-=-=-=-=-=-=-=-=-=-=-=
| view builder |
view := ROView new.
builder := RODependencyMatrixBuilder new.
builder model: (1 to: 5).
builder dependencyModel: [ :model :r :c | r + c ].
builder dependencyShape: ROLabel green.
builder on: view.
view open
-=-=-=-=-=-=-=-=-=-=-=-=
In a Roassal Easel opened on a class group:
-=-=-=-=-=-=-=-=-=-=-=-=
| builder |
builder := RODependencyMatrixBuilder new.
builder model: classGroup.
builder rowShape text: [ :element | element model name asString ].
builder columnShape text: ''.
builder dependencyModel: [ :model :r :c | r queryAllOutgoingInvocations atClassScope includes: c ].
builder dependencyShape: (ROBox new color: [ :el | el model ifTrue: [ Color red ] ifFalse: [ Color white ] ]; extent: 20 @ 20).
builder gapSize: 0.
builder on: view raw.
builder sort: [ :model | model queryAllOutgoingInvocations atClassScope size ].
-=-=-=-=-=-=-=-=-=-=-=-=
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi,
I am not sure what you mean when you say an object that knows how to add to the result. Basically, you would need to build for each production the object and collect the meaningful ones in the outer scope.
Here is something that would work for your example:
a := 'AAA' asParser ==> [:token | #a].
b := 'BBB' asParser ==> [:token | #b].
c := 'CCC' asParser ==> [:token | #c].
meaningful := a / b / c.
other := (meaningful / #newline asParser) negate star flatten.
log := (meaningful / other) delimitedBy: #newline asParser.
result := log end parse: 'AAA
AAA
BBB
CCC
AAA
other text
CCC
BBB
other text'.
result select: #isSymbol
I am CC-ing the moose mailing list because these questions tend to find better answers there.
Cheers,
Doru
On May 27, 2013, at 11:07 PM, Juan Ignacio Vaccarezza <juanvaccarezza(a)gmail.com> wrote:
> Hi all,
>
> First of all thanks for the amazing work and aswers to all. Having said that, the problem:
>
> I need to parse a log, a model that represents the lo is the following:
>
> '
> AAA
> AAA
> BBB
> Line I don't care which can contain anything that is not AAA BBB or CCC
> CCC
> AAA
> CCC
> BBB
> Line I don't care which can contain anything that is not AAA BBB or CCC
> '
>
> I manage to write the grammar which parses this, but then I would lilke to have all the log info digested on a result object which behaves something like this:
>
> resutlObject as size --> 3
> resultObject bs size --> 2
> restulIbject cs size -->2
>
> The option that im using now is that individual parsers (meaning the parser for AAA,BBB,CCC,etc) actually retunrs an object that knows how to add themselves to the result and then, I iterate over the parser's array result asking to each object to add itself to the result.
>
> Is there a better solution?
>
> Thanks to all,
> Juan.
--
www.tudorgirba.com
"It's not how it is, it is how we see it."
See <https://ci.inria.fr/moose/job/moose-latest-dev-4.8/524/>
------------------------------------------
Started by timer
Started by upstream project "fame" build number 76
originally caused by:
Started by timer
Started by upstream project "glamour" build number 119
originally caused by:
Started by timer
Started by upstream project "gtoolkit" build number 109
originally caused by:
Started by timer
Building remotely on moose-slave in workspace <https://ci.inria.fr/moose/job/moose-latest-dev-4.8/ws/>
Deleting project workspace... done
[moose-latest-dev-4.8] $ /bin/sh -xe /tmp/hudson7440857360844265151.sh
+ bash
+ wget --quiet -O - http://get.pharo.org/20+vmLatest
Downloading the latest 20 Image:
http://files.pharo.org/image/20/latest.zip
Pharo.image
Downloading the latest pharoVM:
http://files.pharo.org/vm/pharo/linux/pharo-linux-latest.zip
pharo-vm/pharo
Downloading PharoV10.sources:
http://files.pharo.org/image//PharoV10.sources.zip
Downloading PharoV20.sources:
http://files.pharo.org/image//PharoV20.sources.zip
Creating starter scripts pharo and pharo-ui
Please install the 32bit libraries
sudo aptitude install ia32-libs
+ ./pharo Pharo.image save moose-latest-dev-4.8
+ REPO=http://www.smalltalkhub.com/mc/Moose/Moose/main
+ ./pharo moose-latest-dev-4.8.image config http://www.smalltalkhub.com/mc/Moose/Moose/main ConfigurationOfMoose --install=development
[31m[33m
===============================================================================
Notice: Installing ConfigurationOfMoose development
===============================================================================
[0m[0m+ ./pharo moose-latest-dev-4.8.image mooseimagesetup
+ ./pharo moose-latest-dev-4.8.image moosetest --junit-xml-output
[31m[33m
===============================================================================
Notice: Running tests in 132 Packages
===============================================================================
[0m[0m[31mError: index out of range
[0mTabSelectorMorph(Object)>>error:
TabSelectorMorph(Morph)>>privateAddAllMorphs:atIndex:
TabSelectorMorph(Morph)>>addAllMorphs:
TabSelectorMorph>>updateTabs
TabSelectorMorph>>extent:
TabSelectorMorph(Morph)>>bounds:
TabSelectorMorph(Morph)>>layoutInBounds:
TableLayout>>layoutLeftToRight:in:
TableLayout>>layout:in:
PanelMorph(Morph)>>doLayoutIn:
PanelMorph(Morph)>>fullBounds in Block: [self doLayoutIn: self layoutBounds]
BlockClosure>>on:do:
PanelMorph(Morph)>>fullBounds
LazyTabGroupMorph(Morph)>>submorphBounds in Block: [:m | | subBox | m visible...
Array(SequenceableCollection)>>do:
LazyTabGroupMorph(Morph)>>submorphBounds
LazyTabGroupMorph(Morph)>>privateFullBounds
LazyTabGroupMorph(Morph)>>doLayoutIn:
LazyTabGroupMorph(Morph)>>fullBounds in Block: [self doLayoutIn: self layoutBounds]
BlockClosure>>on:do:
LazyTabGroupMorph(Morph)>>fullBounds
LazyTabGroupMorph(Morph)>>layoutProportionallyIn:
ProportionalLayout>>layout:in: in Block: [:m | m layoutProportionallyIn: newBounds]
Array(SequenceableCollection)>>do:
PanelMorph(Morph)>>submorphsDo:
ProportionalLayout>>layout:in:
PanelMorph(Morph)>>doLayoutIn:
PanelMorph(Morph)>>fullBounds in Block: [self doLayoutIn: self layoutBounds]
BlockClosure>>on:do:
PanelMorph(Morph)>>fullBounds
[0mBuild step 'Execute shell' marked build as failure
Archiving artifacts
Recording test results
ERROR: Failed to archive test reports
hudson.util.IOException2: remote file operation failed: <https://ci.inria.fr/moose/job/moose-latest-dev-4.8/ws/> at hudson.remoting.Channel@4ce1e2b3:moose-slave
at hudson.FilePath.act(FilePath.java:848)
at hudson.FilePath.act(FilePath.java:825)
at hudson.tasks.junit.JUnitParser.parse(JUnitParser.java:87)
at hudson.tasks.junit.JUnitResultArchiver.parse(JUnitResultArchiver.java:122)
at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:134)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:810)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:785)
at hudson.model.Build$BuildExecution.post2(Build.java:183)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:732)
at hudson.model.Run.execute(Run.java:1568)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:236)
Caused by: hudson.util.IOException2: Failed to read <https://ci.inria.fr/moose/job/moose-latest-dev-4.8/ws/Glamour-Tests-Morphic…>
at hudson.tasks.junit.TestResult.parse(TestResult.java:244)
at hudson.tasks.junit.TestResult.parse(TestResult.java:163)
at hudson.tasks.junit.TestResult.parse(TestResult.java:140)
at hudson.tasks.junit.TestResult.<init>(TestResult.java:116)
at hudson.tasks.junit.JUnitParser$ParseResultCallable.invoke(JUnitParser.java:117)
at hudson.tasks.junit.JUnitParser$ParseResultCallable.invoke(JUnitParser.java:90)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2309)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
Caused by: org.dom4j.DocumentException: Error on line 109 of document file://<https://ci.inria.fr/moose/job/moose-latest-dev-4.8/ws/Glamour-Tests-Morphic…> : XML document structures must start and end within the same entity. Nested exception: XML document structures must start and end within the same entity.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.dom4j.io.SAXReader.read(SAXReader.java:264)
at hudson.tasks.junit.SuiteResult.parse(SuiteResult.java:129)
at hudson.tasks.junit.TestResult.parse(TestResult.java:227)
... 15 more
Caused by: org.xml.sax.SAXParseException; systemId: file://<https://ci.inria.fr/moose/job/moose-latest-dev-4.8/ws/Glamour-Tests-Morphic…;> lineNumber: 109; columnNumber: 1; XML document structures must start and end within the same entity.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:391)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1404)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.endEntity(XMLDocumentFragmentScannerImpl.java:882)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.endEntity(XMLDocumentScannerImpl.java:582)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.endEntity(XMLEntityManager.java:1370)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1740)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipChar(XMLEntityScanner.java:1393)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2769)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:819)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:748)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
... 18 more
Hello,
I have made changes to the PetitJava package (in a local directory - in
interim steps I broke a lot of tests),and would not like to share it back
out in the correct repository.
I am unable to actually load anything to SmalltalkHub (PetitJava)
repository at all, however. If I setup the Monticello configuration with
no login information, I get a 403 error returned. If I set it up with my
login credentials, I get a 500 error returned instead.
If I need to be added to this project, could someone please add me?
thanks,
Chris Cunningham
Hi Jan,
Please do not forget to let us know when you have merged your nice First and Follow modifications to PetitParser.
Also, regarding the inspector and visualization, please feel free to commit them as well as extensions to GTInspector.
Cheers,
Doru
--
www.tudorgirba.com
"Every thing has its own flow."
Hi,
i loaded Spy into a fresh Pharo 2.0 image.
After adding new packages to the image, the Hapao Wizard does not show these
newly added packages.
Should i submit a bug at the moose-technology google issue tracker?
M.
--
View this message in context: http://forum.world.st/Hapao-Wizard-does-not-show-newly-added-packages-tp468…
Sent from the Moose mailing list archive at Nabble.com.
Dear all,
I have submitted a gsoc project called SciSmalltalk. This is a new
Smalltalk project, similar to existing scientific libraries like
NumPy, SciPy for Python or SciRuby for Ruby. SciSmalltalk already
provide basic functionalities under MIT licence: complex and
quaternions extensions, random number generator, fuzzy algorithms,
LAPACK linear algebra package, Didier Besset's numerical methods, ...
We want to extend SciSmalltalk to solve ODE (Ordinary Differential
Equations).
I you are a gsoc mentors, I would like to encourage you to give your
vote to this project !
I believe this really important if we want to offer new alternatives
for people who want to made science, mathematics, statistics and big
data with Smalltalk !
The student for this project is very capable, because she is a
mathematician student. We definitively need to support girls
involvement in Smalltalk development and computer science !
Thank you.
Regards,
--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/
We have submitted a project to improve and extend FAST (Famix-AST
metamodel).
If you are a GSOC mentors I would like to encourage you to vote for this
project (and give it the highest note ;-) ).
I believe it will open many new opportunities for Moose in terms of
metrics computation at the level of the model, refactoring
possibilities, rule checking (MooseLint), language convertion, new
queries, etc.
The student for this project already worked with us in the past (on
Pharo) and he is capable of doing it.
nicolas
--
Nicolas Anquetil -- RMod research team (Inria)
Hi!
We've just made an experiment about fading and wiggling edges. Try the following:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
"Preambule. It includes the initialization. "
| rawView view |
rawView := ROView new.
view := ROMondrianViewBuilder view: rawView.
"enter your script below"
"-------------"
"-------------"
"To send to the mailing list"
view interaction
dynamicEdgeToAll: [ :model | (1 to: model) collect: [ :v | v // 2 ] ]
usingFading: (ROLine red width: 5; attachPoint: ROCenteredAttachPoint instance).
view shape rectangle size: 20.
view nodes: (1 to: 20).
view circleLayout.
"-------------"
"-------------"
"Below is the initiation of the menu and opening the visualization"
ROEaselMorphic new populateMenuOn: view.
view open
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi,
It's me again. Sorry for bothering you but I'm not able to load Moose from my ConfigurationOf in a fresh 2.0 image…
I tried every possible version: minimal, stable, default, and development but it does not load correctly.
Either I got a..
- SmallInteger>>#add: error which leads me to https://pharo.fogbugz.com/f/cases/10395/ but I cannot understand the fix.
- With development (or default) I got a SmallInteger(Object)>>doesNotUnderstand: #isEmpty.
- Some missing dependencies with BlockContext
I'm wondering if someone can please take a fresh Pharo 2.0 image and try to load Moose (stable, default, or whatever)
using the Configuration and kindly tell me how to set up my configuration to load it.
FYI I'm loading Moose by doing the following in my configuration of:
spec
project: 'Moose' with: [
spec
className: 'ConfigurationOfMoose';
loads: #('default');
file: 'ConfigurationOfMoose';
repository: 'http://smalltalkhub.com/mc/Moose/Moose/main' ]
Then I tried to replace #loads: with #versionString: and change the version string but I had no luck.
Thanks in advance,
Roberto Minelli
Hi,
I just wanted to let you know that I started to work on a Pharo theme that maximizes whitespace.
It is based on the default Glamour theme, but it is even simpler. It is still a work in progress as several things I would like to achieve are not easily possible with the existing morphs' implementation.
Still you can see the direction in a couple of screenshots at (plus a couple of explanations):
http://www.tudorgirba.com/blog/whitespace-theme-for-pharo-work-in-progress
You can play with it in a Moose 4.8 image by:
MooseImageSetupCommandLineHandler new
installFonts;
installAthens;
installGLMWhitespaceTheme.
Cheers,
Doru
--
www.tudorgirba.com
"When people care, great things can happen."
Hi,
i just started to experiment with Spy (i like it a lot :) in Pharo 2.0.
My first attempt to load it was via the Configuration Browser which lists a
Configuration Alexandre_Bergel.10 which does not work on 2.0.
I found a working Configuration (ConfigurationOfSpy-AlexandreBergel.344) on
Smalltalkhub. Perhaps someone can update the configuration in the browser...
Is it already "safe" to use Spy and Roassal on Pharo 2.0?
M.
--
View this message in context: http://forum.world.st/Update-Spy-in-the-Pharo-2-0-Configuration-Browser-tp4…
Sent from the Moose mailing list archive at Nabble.com.
Hi
I've improved ROArc class so that we can now change the angle
between made by the center of the circle and the borders of the edge.
An angle of 0 will return a simple ROLine, and if the angle is bigger
than 2pi, it will use an angle like alpha % 2pi. The angle is given in
rad.
layout:= ROVerticalCompactTree new.
view shape circle size: 15
.
view nodes: ( ROLayout withAllSubclasses ).
view edgesFrom:
#superclass.
layout userDefinedEdges: view edges.
view layout:
layout.
layout verticalGap: 70; horizontalGap: 30.
view applyLayout.
view nodes do: [ :f | (layout childrenFor: f) do: [ :t | (t model
inheritsFrom: f model) ifTrue: [ t model methodDict keysDo: [ :k | (f
model methodDict includesKey: k) ifTrue: [ view edgeFromAssociation: f
model ->t model ] ] ] ] ].
view edges do: [ :e | e - ROLine + (ROArc
new color: (Color r: 0 g: 1 b: 0.5 ); width: 2; angle: 2) ].
layout
userDefinedEdges do: [ :e | e - ROArc + ((ROLine arrowed) color: (Color
r: 1 g: 0 b: 0 ); width: 2 )"; attachPoint: ROCenteredAttachPoint
instance)" ].
Maybe you will see something weird.
Well I don't
understand why, but the first time it draws the ROArc, if the mouse is
not on the canva, there are strange thing until you move the mouse on an
edge...
You can see the same phenomenon when dragging an edge and
making its abscissa bigger and smaller than its father's one.
If you
understand what appends please tell me.
Regards
Mathieu
Hello,
I am looking for two features in Roassal.
- I would like to customized the color of the labels added on the fly
with ROAddName/RORemoveName (See example
ROMondrianViewBuilder>>addingNameOn:).
- Possibility to create dynamicEdges in both directions
(incoming/outgoing), currently, we can only create outgoing edges.
If there's already a way of doing these, I would like to know how?
If not, do you want me to submit a slice?
tx,
Usman
Hi
I would like to have a Morphic widget like this. Does anyone know if there
is something already done that I could reuse?
[image: Inline image 1]
Maybe do it with Roassal in this way:
Use the list morph, where each row knows an image morph with its
corresponding slice of the graph.
Each time the graph changes (for example, if a node is appended), render
using Roassal the part of the graph has to be updated, and cut the rendered
surface in the new slices for each updated row.
Any opinion?
Maybe I should think more in vectors (i.e. Athens) instead of pixels/images?
Cheers,
Martin
Hi!
Just to share a small addon to manage alpha blending I made with Roassal.
Try in an easel the following:
-=-=-=-=-=-=-=-=-=-=-=-=
random := Random new.
view shape circle size: 80; fillColor: Color black.
view interaction on: ROMouseEnter do: [ :event |
ROColorAlphaFading new for: event element nbCycles: 60 ].
nodes := view nodes: (1 to: 50).
nodes do: [:el | el translateTo: (random next * 400) @ (random next * 400) ].
view noLayout.
ROPluggableAnimation new
nbCycles: 20000;
block: [ ROColorAlphaFading new for: nodes atRandom nbCycles: 60 ];
on: view raw.
-=-=-=-=-=-=-=-=-=-=-=-=
-=-=-=-=-=-=-=-=-=-=-=-=
view shape circle size: 80; fillColor: Color black.
view interaction on: ROMouseEnter do: [ :event |
ROColorAlphaFading new for: event element nbCycles: 60 ].
view nodes: (1 to: 50).
view gridLayout.
-=-=-=-=-=-=-=-=-=-=-=-=
It also works with edges:
-=-=-=-=-=-=-=-=-=-=-=-=
view interaction
dynamicEdgeToAll: [ :model | (1 to: model) collect: [ :v | v // 2 ] ]
usingFading: (ROLine red width: 5; attachPoint: ROCenteredAttachPoint instance).
view shape rectangle size: 20.
view nodes: (1 to: 20).
view circleLayout.
-=-=-=-=-=-=-=-=-=-=-=-=
In the last version of Roassal
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.