issue with the evolution matrix
by Franco Sabadini
Hi,
I've started working with Moose with a friend and we have used Kumpel to
create a model from a SVN repository and we encountered an issue when
trying to create the evolution matrix. Can u help us?
One of the models we created is from the svn repository
svn://svn.jdownloader.org/jdownloader <about:blank> without user or
password.
The error we r getting when trying to create the evolution matrix is:
VM: unix - i686 - linux-gnu - Croquet Closure Cog VM [CoInterpreter
VMMaker.oscog-eem.78]
Image: Pharo1.3 [Latest update: #13315]
UndefinedObject(Object)>>doesNotUnderstand: #versions
Receiver: nil
Arguments and temporary variables:
aMessage: versions
exception: MessageNotUnderstood: receiver of "versions" is nil
resumeValue: nil
Receiver's instance variables:
nil
KMPProjectHistory(HismoAbstractHistory)>>completeHistoryCollect:ifNotPresent:
Receiver: svn://svn.jdownloader.org/jdownloader (10)
Arguments and temporary variables:
aBlock: [:each | each]
anotherBlock: [:eachRefVersion | eachRefVersion]
data: an OrderedCollection()
Receiver's instance variables:
mooseID: 287595
state: a MooseDefaultState
versions: an OrderedCollection(1@nil +1090, -0 2@astaldo +6, -8
3@astaldo +457,...etc...
referenceHistory: nil
parentHistory: svn://svn.jdownloader.org/jdownloader (10)
name: 'svn://svn.jdownloader.org/jdownloader'
authors: an OrderedCollection(a KMPAuthor #astaldo a KMPAuthor
#coalado)
rootHistory: D (1)
builder: a KMPProjectBuilder
[aView
nodes: (self
completeHistoryCollect: [:each | each]
ifNotPresent: [:eachRefVersion | eachRefVersion])
using: (MORectangleShape new withoutBorder;
fillColor: [:each | each == each referenceVersion
ifTrue: [Color lightGray]
ifFalse: [Color white]])] in
KMPProjectHistory(HismoAbstractHistory)>>viewSimpleEvolutionMatrixIn:
Receiver: svn://svn.jdownloader.org/jdownloader (10)
Arguments and temporary variables:
aView: a MOViewRenderer
Receiver's instance variables:
mooseID: 287595
state: a MooseDefaultState
versions: an OrderedCollection(1@nil +1090, -0 2@astaldo +6, -8
3@astaldo +457,...etc...
referenceHistory: nil
parentHistory: svn://svn.jdownloader.org/jdownloader (10)
name: 'svn://svn.jdownloader.org/jdownloader'
authors: an OrderedCollection(a KMPAuthor #astaldo a KMPAuthor
#coalado)
rootHistory: D (1)
builder: a KMPProjectBuilder
[:each | aZeroArgBlock value] in MOViewRenderer>>node:using:forIt:
Receiver: a MOViewRenderer
Arguments and temporary variables:
aZeroArgBlock: svn://svn.jdownloader.org/jdownloader (10)
each: [aView
nodes: (self
completeHistoryCollect: [:each | each]
ifNo...etc...
Receiver's instance variables:
announcer: a MOAnnouncer
root: a MONode model: svn://svn.jdownloader.org/jdownloader (10)
shape: nil
title: 'Mondrian Renderer'
defaultNodeShapeInstance: nil
defaultLineShapeInstance: nil
userCommands: nil
[self resetInteraction.
aBlock value: eachNode model] in [:eachNode | self
with: eachNode
during: [self resetInteraction.
aBlock value: eachNode model]] in
MOViewRenderer>>nodes:using:forEach:
Receiver: a MOViewRenderer
Arguments and temporary variables:
aBlock: a MONode model: svn://svn.jdownloader.org/jdownloader(10)
eachNode: [:each | aZeroArgBlock value]
Receiver's instance variables:
announcer: a MOAnnouncer
root: a MONode model: svn://svn.jdownloader.org/jdownloader (10)
shape: nil
title: 'Mondrian Renderer'
defaultNodeShapeInstance: nil
defaultLineShapeInstance: nil
userCommands: nil
BlockClosure>>ensure:
Receiver: [self resetInteraction.
aBlock value: eachNode model]
Arguments and temporary variables:
aBlock: [self copyFrom: state]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: [:eachNode | self
with: eachNode
during: [self resetInteracti...etc...
startpc: 48
numArgs: 0
MOViewRenderer>>with:during:
Receiver: a MOViewRenderer
Arguments and temporary variables:
anElement: a MONode model: svn://svn.jdownloader.org/jdownloader(10)
aBlock: [self resetInteraction.
aBlock value: eachNode model]
state: a MOViewRenderer
Receiver's instance variables:
announcer: a MOAnnouncer
root: a MONode model: svn://svn.jdownloader.org/jdownloader (10)
shape: nil
title: 'Mondrian Renderer'
defaultNodeShapeInstance: nil
defaultLineShapeInstance: nil
userCommands: nil
[:eachNode | self
with: eachNode
during: [self resetInteraction.
aBlock value: eachNode model]] in
MOViewRenderer>>nodes:using:forEach:
Receiver: a MOViewRenderer
Arguments and temporary variables:
aBlock: a MONode model: svn://svn.jdownloader.org/jdownloader(10)
eachNode: [:each | aZeroArgBlock value]
Receiver's instance variables:
announcer: a MOAnnouncer
root: a MONode model: svn://svn.jdownloader.org/jdownloader (10)
shape: nil
title: 'Mondrian Renderer'
defaultNodeShapeInstance: nil
defaultLineShapeInstance: nil
userCommands: nil
OrderedCollection>>do:
Receiver: an OrderedCollection(a MONode model: svn://
svn.jdownloader.org/jdownloader (10))
Arguments and temporary variables:
aBlock: [:eachNode | self
with: eachNode
during: [self resetInteraction.
...etc...
index: 1
Receiver's instance variables:
array: an Array(a MONode model: svn://
svn.jdownloader.org/jdownloader (10))
firstIndex: 1
lastIndex: 1
MOViewRenderer>>nodes:using:forEach:
Receiver: a MOViewRenderer
Arguments and temporary variables:
aCollection: an OrderedCollection(svn://
svn.jdownloader.org/jdownloader (10))
aShape: a MORectangleShape
aBlock: [:each | aZeroArgBlock value]
newNodes: an OrderedCollection(a MONode model: svn://
svn.jdownloader.org/jdownl...etc...
Receiver's instance variables:
announcer: a MOAnnouncer
root: a MONode model: svn://svn.jdownloader.org/jdownloader (10)
shape: nil
title: 'Mondrian Renderer'
defaultNodeShapeInstance: nil
defaultLineShapeInstance: nil
userCommands: nil
MOViewRenderer>>node:using:forIt:
Receiver: a MOViewRenderer
Arguments and temporary variables:
anObject: svn://svn.jdownloader.org/jdownloader (10)
aShape: a MORectangleShape
aZeroArgBlock: [aView
nodes: (self
completeHistoryCollect: [:each | each]...etc...
collection: nil
Receiver's instance variables:
announcer: a MOAnnouncer
root: a MONode model: svn://svn.jdownloader.org/jdownloader (10)
shape: nil
title: 'Mondrian Renderer'
defaultNodeShapeInstance: nil
defaultLineShapeInstance: nil
userCommands: nil
KMPProjectHistory(HismoAbstractHistory)>>viewSimpleEvolutionMatrixIn:
Receiver: svn://svn.jdownloader.org/jdownloader (10)
Arguments and temporary variables:
aView: a MOViewRenderer
Receiver's instance variables:
mooseID: 287595
state: a MooseDefaultState
versions: an OrderedCollection(1@nil +1090, -0 2@astaldo +6, -8
3@astaldo +457,...etc...
referenceHistory: nil
parentHistory: svn://svn.jdownloader.org/jdownloader (10)
name: 'svn://svn.jdownloader.org/jdownloader'
authors: an OrderedCollection(a KMPAuthor #astaldo a KMPAuthor
#coalado)
rootHistory: D (1)
builder: a KMPProjectBuilder
KMPProjectHistory(HismoAbstractHistory)>>viewSimpleEvolutionMatrix
Receiver: svn://svn.jdownloader.org/jdownloader (10)
Arguments and temporary variables:
view: a MOViewRenderer
Receiver's instance variables:
mooseID: 287595
state: a MooseDefaultState
versions: an OrderedCollection(1@nil +1090, -0 2@astaldo +6, -8
3@astaldo +457,...etc...
referenceHistory: nil
parentHistory: svn://svn.jdownloader.org/jdownloader (10)
name: 'svn://svn.jdownloader.org/jdownloader'
authors: an OrderedCollection(a KMPAuthor #astaldo a KMPAuthor
#coalado)
rootHistory: D (1)
builder: a KMPProjectBuilder
[:x | self perform: eachPragma selector] in [:eachPragma | GLMGenericAction
new
action: [:x | self perform: eachPragma selector];
title: (eachPragma argumentAt: 1);
category: (eachPragma argumentAt: 2)] in [:eachClass |
categorized := (Pragma allNamed: #menuItem:category: in: eachClass)
collect: [:eachPragma | GLMGenericAction new
action: [:x | self perform: eachPragma selector];
title: (eachPragma argumentAt: 1);
category: (eachPragma argumentAt: 2)].
simple := (Pragma allNamed: #menuItem: in: eachClass)
collect: [:eachPragma | GLMGenericAction new
action: [:x | self perform: eachPragma selector];
title: (eachPragma argumentAt: 1)].
categorized , simple] in KMPProjectHistory(Object)>>mooseFinderActions
Receiver: svn://svn.jdownloader.org/jdownloader (10)
Arguments and temporary variables:
eachPragma: a GLMListPresentation(id=692060160 title=Models
pane=a GLMPane(4676...etc...
x: <menuItem: 'Evolution matrix' category: 'Visualize'>
Receiver's instance variables:
mooseID: 287595
state: a MooseDefaultState
versions: an OrderedCollection(1@nil +1090, -0 2@astaldo +6, -8
3@astaldo +457,...etc...
referenceHistory: nil
parentHistory: svn://svn.jdownloader.org/jdownloader (10)
name: 'svn://svn.jdownloader.org/jdownloader'
authors: an OrderedCollection(a KMPAuthor #astaldo a KMPAuthor
#coalado)
rootHistory: D (1)
builder: a KMPProjectBuilder
BlockClosure>>glamourValueWithArgs:
Receiver: [:x | self perform: eachPragma selector]
Arguments and temporary variables:
anArray: an Array(a GLMListPresentation(id=692060160
title=Models pane=a GLMPan...etc...
Receiver's instance variables:
outerContext: [:eachPragma | GLMGenericAction new
action: [:x | self perform:...etc...
startpc: 120
numArgs: 1
GLMGenericAction(GLMAction)>>actOn:
Receiver: a GLMGenericAction
Arguments and temporary variables:
aPresentation: a GLMListPresentation(id=692060160 title=Models
pane=a GLMPane(4...etc...
Receiver's instance variables:
registry: a SubscriptionRegistry
suspendAll: nil
logger: a GLMNullLogger
action: [:x | self perform: eachPragma selector]
title: 'Evolution matrix'
shortcut: nil
position: nil
category: 'Visualize'
icon: nil
GLMGenericAction(GLMAction)>>morphicActOn:
Receiver: a GLMGenericAction
Arguments and temporary variables:
aPresentation: a GLMListPresentation(id=692060160 title=Models
pane=a GLMPane(4...etc...
Receiver's instance variables:
registry: a SubscriptionRegistry
suspendAll: nil
logger: a GLMNullLogger
action: [:x | self perform: eachPragma selector]
title: 'Evolution matrix'
shortcut: nil
position: nil
category: 'Visualize'
icon: nil
[:ann | ann action morphicActOn: aPresentation] in
GLMMorphicListRenderer(GLMMorphicWidgetRenderer)>>installActionsOnUI:fromPresentation:
Receiver: a GLMMorphicListRenderer
Arguments and temporary variables:
aPresentation: a GLMMenuItemSelected
ann: a GLMListPresentation(id=692060160 title=Models pane=a
GLMPane(467664896 m...etc...
Receiver's instance variables:
renderer: a GLMMorphicRenderer
treeMorph: a MorphTreeMorph(35651584)
treeModel: a GLMTreeMorphModel
BlockClosure>>cull:
Receiver: [:ann | ann action morphicActOn: aPresentation]
Arguments and temporary variables:
anArg: a GLMMenuItemSelected
Receiver's instance variables:
outerContext:
GLMMorphicListRenderer(GLMMorphicWidgetRenderer)>>installActionsO...etc...
startpc: 44
numArgs: 1
BlockClosure>>cull:cull:
Receiver: [:ann | ann action morphicActOn: aPresentation]
Arguments and temporary variables:
firstArg: a GLMMenuItemSelected
secondArg: a GLMAnnouncer
Receiver's instance variables:
outerContext:
GLMMorphicListRenderer(GLMMorphicWidgetRenderer)>>installActionsO...etc...
startpc: 44
numArgs: 1
[action cull: anAnnouncement cull: announcer] in
AnnouncementSubscription>>deliver:
Receiver: an AnnouncementSubscription
Arguments and temporary variables:
anAnnouncement: a GLMMenuItemSelected
Receiver's instance variables:
announcer: a GLMAnnouncer
announcementClass: GLMMenuItemSelected
subscriber: a GLMMorphicListRenderer
action: [:ann | ann action morphicActOn: aPresentation]
BlockClosure>>on:do:
Receiver: [action cull: anAnnouncement cull: announcer]
Arguments and temporary variables:
exception: UnhandledError
handlerAction: [:ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx ...etc...
handlerActive: false
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 48
numArgs: 0
[Processor terminateActive] in [:ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home.
[onDoCtx sender == thisCtx]
whileFalse: [onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [^ handlerAction cull: ex]].
bottom := [Processor terminateActive] asContext.
onDoCtx privSender: bottom.
handler := [handlerAction cull: ex] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority) resume.
thisContext privSender: thisCtx.
nil] in BlockClosure>>on:fork:
Receiver: [action cull: anAnnouncement cull: announcer]
Arguments and temporary variables:
Receiver's instance variables:
outerContext: AnnouncementSubscription>>deliver:
startpc: 48
numArgs: 0
--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #versions
KMPProjectHistory(HismoAbstractHistory)>>completeHistoryCollect:ifNotPresent:
[aView
nodes: (self
completeHistoryCollect: [:each | each]
ifNotPresent: [:eachRefVersion | eachRefVersion])
using: (MORectangleShape new withoutBorder;
fillColor: [:each | each == each referenceVersion
ifTrue: [Color lightGray]
ifFalse: [Color white]])] in
KMPProjectHistory(HismoAbstractHistory)>>viewSimpleEvolutionMatrixIn:
[:each | aZeroArgBlock value] in MOViewRenderer>>node:using:forIt:
[self resetInteraction.
aBlock value: eachNode model] in [:eachNode | self
with: eachNode
during: [self resetInteraction.
aBlock value: eachNode model]] in
MOViewRenderer>>nodes:using:forEach:
BlockClosure>>ensure:
MOViewRenderer>>with:during:
[:eachNode | self
with: eachNode
during: [self resetInteraction.
aBlock value: eachNode model]] in
MOViewRenderer>>nodes:using:forEach:
OrderedCollection>>do:
MOViewRenderer>>nodes:using:forEach:
MOViewRenderer>>node:using:forIt:
KMPProjectHistory(HismoAbstractHistory)>>viewSimpleEvolutionMatrixIn:
KMPProjectHistory(HismoAbstractHistory)>>viewSimpleEvolutionMatrix
[:x | self perform: eachPragma selector] in [:eachPragma | GLMGenericAction
new
action: [:x | self perform: eachPragma selector];
title: (eachPragma argumentAt: 1);
category: (eachPragma argumentAt: 2)] in [:eachClass |
categorized := (Pragma allNamed: #menuItem:category: in: eachClass)
collect: [:eachPragma | GLMGenericAction new
action: [:x | self perform: eachPragma selector];
title: (eachPragma argumentAt: 1);
category: (eachPragma argumentAt: 2)].
simple := (Pragma allNamed: #menuItem: in: eachClass)
collect: [:eachPragma | GLMGenericAction new
action: [:x | self perform: eachPragma selector];
title: (eachPragma argumentAt: 1)].
categorized , simple] in KMPProjectHistory(Object)>>mooseFinderActions
BlockClosure>>glamourValueWithArgs:
GLMGenericAction(GLMAction)>>actOn:
GLMGenericAction(GLMAction)>>morphicActOn:
[:ann | ann action morphicActOn: aPresentation] in
GLMMorphicListRenderer(GLMMorphicWidgetRenderer)>>installActionsOnUI:fromPresentation:
BlockClosure>>cull:
BlockClosure>>cull:cull:
[action cull: anAnnouncement cull: announcer] in
AnnouncementSubscription>>deliver:
BlockClosure>>on:do:
[Processor terminateActive] in [:ex |
| copy onDoCtx process handler bottom thisCtx |
onDoCtx := thisContext.
thisCtx := onDoCtx home.
[onDoCtx sender == thisCtx]
whileFalse: [onDoCtx := onDoCtx sender.
onDoCtx
ifNil: [^ handlerAction cull: ex]].
bottom := [Processor terminateActive] asContext.
onDoCtx privSender: bottom.
handler := [handlerAction cull: ex] asContext.
handler privSender: thisContext sender.
(Process forContext: handler priority: Processor activePriority) resume.
thisContext privSender: thisCtx.
nil] in BlockClosure>>on:fork:
Thanks.
Franco
11 years, 10 months
Glamour: actions should be rendered by a double dispatch
by Esteban Lorenzano
Hi Doru, list
I think that actions (those in the toolbar) should be rendered by a double dispatch mechanism... I want to be able to render different kind of things as an action (for instance, a multistate button). What do you think?
best,
Esteban
11 years, 10 months
Problems to run Kumpel
by Felipe González
Hi,
I've been trying to run Kumpel on my computer the last few days following
the instructions here: http://www.moosetechnology.org/tools/kumpel
But i got nothing so far, even when i left my computer a couple of hours
doing the following:
KMPProject new
projectName: 'verveinej';
startRev: '1';
endRev:'2';
url: 'svn://scmscm.gforge.inria.fr/svn/verveinej/';
buildDiffs: true;
load
On my terminal i got this:
/usr/bin/zenity
Building Project verveinej main
Step 1: Loading Project Info...
Step 2: Loading Initial List of Directory Tree...
Step 3/4: Loading Logs...
Step 4/4: Loading File Diffs...
Initial Diff Path=svn://scm.gforge.inria.fr/svn/verveinej Thread 1
: Loading Diff 2
took miliseconds to load diffs: 15237
and then i got stuck.
Any suggestions? am i doing something wrong?
Regards,
--
Felipe González Martínez
Estudiante de Ingeniería Civil en Computación
Departamento de Ciencias de la Computación
Universidad de Chile
11 years, 11 months
alert: what happens to the domain moosetechnology.org ?
by Alexandre Bergel
I hope this is one of our DNS server that is down or something.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
11 years, 11 months
[ANN] [Release] Neptuno, the DBXBrowser
by Guillermo Polito
Hi!
We are glad to announce the first stable release of the DBXBrowser, named
Neptuno, the last piece in the DBXTalk tools project sponsored by ESUG.
*What is this browser?* It is a Glamour based browser which works as a GUI
to work with OpenDBX connections.
*
How does it look like?* I attach a screenshot with a brief look :)
*Which databases does it work with?* It is currently working with OpenDBX
connectors for:
- mysql
- postgresql
- oracle
- sqlite
*
How should I download it?* I'd like to link to the site here, but it's
currently down (and we are working for your happiness :D ), so:
Gofer it
squeaksource: 'MetacelloRepository';
package: 'ConfigurationOfDBXBrowser';
load.
(((Smalltalk at: #ConfigurationOfDBXTools)
perform: #project)
perform: #version: with: #stable)
load: 'Neptuno'
*How should I contact the DBXTalk team for feedback, bug reports,
questions, or whatever?*
The project's mailing list: dbxtalk(a)googlegroups.com
The project's issue tracker: http://code.google.com/p/dbxtalk/issues
The (currently down) site, with docs and stuff:
http://dbxtalk.smallworks.com.ar/
Thanks!
The DBXTalk team
11 years, 11 months
dynamic sub browser gets not rendered :/
by Guillermo Polito
Hi!
I have a browser where I do something like:
browser transmit
to: #somePane;
andShow: [ :a |
a dynamic presentation: [ :some :element | some custom: element
buildCustomBrowser ]
]
And then, I have implemented #buildCustomBrowser for example as:
buildCustomBrowser
| browser |
browser := GLMTabulator new.
browser row: #tables.
browser transmit
to: #tables;
andShow: [ :a |
a table
title: ('Columns for {1}' format: { table name });
addColumn: (GLMTableColumn new title: 'Column name'; computation:
#name);
addColumn: (GLMTableColumn new title: 'Null'; computation: [
:column | column nullable asString ]);
addColumn: (GLMTableColumn new title: 'Type'; computation: [
:column | column typeName asString ]);
addColumn: (GLMTableColumn new title: 'Length'; computation: [
:column | column length asString ]);
addColumn: (GLMTableColumn new title: 'Primary Key'; computation: [
:column | column isPrimaryKey asString ]);
display: self columns;
yourself.
].
^browser
And It does not render the table :(. If I change it to something like:
buildCustomBrowser
| browser |
browser := GLMTablePresentation new.
browser
title: ('Columns for {1}' format: { table name });
addColumn: (GLMTableColumn new title: 'Column name'; computation:
#name);
addColumn: (GLMTableColumn new title: 'Null'; computation: [
:column | column nullable asString ]);
addColumn: (GLMTableColumn new title: 'Type'; computation: [
:column | column typeName asString ]);
addColumn: (GLMTableColumn new title: 'Length'; computation: [
:column | column length asString ]);
addColumn: (GLMTableColumn new title: 'Primary Key'; computation: [
:column | column isPrimaryKey asString ]);
display: self columns.
^browser
It works, but I can't have several presentations for the same object... :(
I tried debugging the code, but I get lost and lost a lot of time without
figuring anything :(.
Is there a way to do this? any workaround? or is it a bug or it is
ignorance from my side?
Thanks!
Guille
11 years, 11 months
Re: Coccinelle in Moose
by Usman Bhatti
On Mon, Jan 9, 2012 at 11:24 PM, Julia Lawall <julia.lawall(a)lip6.fr> wrote:
> On Mon, 9 Jan 2012, Usman Bhatti wrote:
>
> For me, it should work without modification....The following method that
>> you
>> are using should carry out the desired functionality...
>> LinearFillColor: #counts within: rules;
>>
>
> Thanks, but I'm not sure to understand. We just got one white box and one
> black box. Maybe it will look better with more data?
Yes. That is the reason. You can see a gradient of color for nodes with
more data.
>
>
> julia
>
>
> LinearFillColor: part should take as a parameter the count of a single
>> rule.
>> The within: part should take an array that contains all the counts of all
>> your rules in the system...
>>
>> On Mon, Jan 9, 2012 at 4:50 PM, Julia Lawall <julia.lawall(a)lip6.fr>
>> wrote:
>> I got some help from Damien Cassou, and he wrote the following
>> code:
>>
>> viewRules: rules
>> view interaction popupText: [:rule | rule ruleName].
>> view shape rectangle
>> linearFillColor: #counts
>> within: rules;
>> withoutBorder.
>> view nodes: rules forEach: [:rule | self viewRule: rule].
>> view verticalLineLayout.
>>
>> I would like the colors not to be arbitrary, but to vary
>> depending on the counts value. For example, for a small value,
>> I would like a light color and for a large value I would like a
>> dark color. I could for example normalize the values so that
>> they are between 0 and 100. Is there an easy way to do this?
>>
>> thanks,
>> julia
>>
>>
>>
>>
11 years, 11 months
Re: Coccinelle in Moose
by Usman Bhatti
For me, it should work without modification....The following method that
you are using should carry out the desired functionality...
LinearFillColor: #counts within: rules;
LinearFillColor: part should take as a parameter the count of a single
rule. The within: part should take an array that contains all the counts of
all your rules in the system...
On Mon, Jan 9, 2012 at 4:50 PM, Julia Lawall <julia.lawall(a)lip6.fr> wrote:
> I got some help from Damien Cassou, and he wrote the following code:
>
> viewRules: rules
> view interaction popupText: [:rule | rule ruleName].
> view shape rectangle
> linearFillColor: #counts
> within: rules;
> withoutBorder.
> view nodes: rules forEach: [:rule | self viewRule: rule].
> view verticalLineLayout.
>
> I would like the colors not to be arbitrary, but to vary depending on the
> counts value. For example, for a small value, I would like a light color
> and for a large value I would like a dark color. I could for example
> normalize the values so that they are between 0 and 100. Is there an easy
> way to do this?
>
> thanks,
> julia
>
11 years, 11 months