The Balloon engine does not like Floats or Fractions passed into its
primitives. In my experience this is the cause of problems in most
cases.
Also it could be related to the size of the canvas, but I don't
remember if you get a primitive failure there:
http://bugs.squeak.org/view.php?id=5222
Lukas
On Mon, Mar 16, 2009 at 12:23 AM, Tudor Girba <girba(a)iam.unibe.ch> wrote:
Hi,
I am trying to reproduce the diagram with the FAMIX meta-model. I found the
script in MOFameView>>openOn:, but there is a problem with the rendering.
I use Pharo 10250.
I attached the error report. What am I doing wrong?
Cheers,
Doru
--
www.tudorgirba.com
"Every thing has its own flow."
'16 March 2009 12:18:44 am
VM: Mac OS - a SmalltalkImage
Image: Pharo0.1 [Latest update: #10250]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/girba/Desktop/pharo0.1-10250dev09.03.2
Trusted Dir /foobar/tooBar/forSqueak/bogus
Untrusted Dir /Users/girba/Library/Preferences/Squeak/Internet/My Squeak
BalloonEngine(Object)>>error:
Receiver: a BalloonEngine
Arguments and temporary variables:
aString: ''Error: a primitive has failed''
Receiver''s instance variables:
workBuffer: a BalloonBuffer
span: a Bitmap of length 2048
bitBlt: a GrafPort
forms: #()
clipRect: 459@167 corner: 1184@499
destOffset: 462@167
externals: an OrderedCollection()
aaLevel: 4
edgeTransform: nil
colorTransform: nil
deferred: false
postFlushNeeded: false
[] in WorldState>>displayWorldSafely: {[:err :rcvr | errCtx := thisContext.
[errCtx := errCtx sender. [errCtx no...]}
Arguments and temporary variables:
aWorld: a PasteUpMorph(1622) [world]
err: ''Error: a primitive has failed''
rcvr: a BalloonEngine
errCtx: MOCanvas>>drawOn:
errMorph: a MOCanvas(3824)
BlockContext>>valueWithPossibleArgs:
Receiver: [] in WorldState>>displayWorldSafely: {[:err :rcvr |
errCtx := thisContext. [errCtx := e...etc...
Arguments and temporary variables:
anArray: an Array(''Error: a primitive has failed''
a
BalloonEngine)
Receiver''s instance variables:
sender: BlockContext>>valueWithPossibleArgs:
pc: 121
stackp: 0
nargs: 2
startpc: 74
home: WorldState>>displayWorldSafely:
[] in BlockContext>>ifError: {[:ex | errorHandlerBlock
valueWithPossibleArgs: {ex description. ex receiver}]}
Arguments and temporary variables:
errorHandlerBlock: [] in WorldState>>displayWorldSafely:
{[:err :rcvr | errCtx...etc...
ex: Error: a primitive has failed
--- The full stack ---
BalloonEngine(Object)>>error:
[] in WorldState>>displayWorldSafely: {[:err :rcvr | errCtx := thisContext.
[errCtx := errCtx sender. [errCtx no...]}
BlockContext>>valueWithPossibleArgs:
[] in BlockContext>>ifError: {[:ex | errorHandlerBlock
valueWithPossibleArgs: {ex description. ex receiver}]}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BlockContext>>valueWithPossibleArgs:
[] in MethodContext(ContextPart)>>handleSignal: {[(self tempAt: 2)
valueWithPossibleArgs: {exception}]}
BlockContext>>ensure:
MethodContext(ContextPart)>>handleSignal:
Error(Exception)>>signal
Error(Exception)>>signal:
BalloonEngine(Object)>>error:
BalloonEngine(Object)>>primitiveFailed
BalloonEngine>>primAddPolygon:segments:fill:lineWidth:lineFill:
BalloonEngine>>drawPolygon:fill:borderWidth:borderColor:transform:
BalloonCanvas>>drawPath:borderWidth:borderColor:
MOOrthoHorizontalLineShape>>display:on:
MOEdge>>displayOn:
[] in MORoot(MOGraphElement)>>display:on: {[:each | each displayOn: canvas]}
OrderedCollection>>do:
[] in MORoot(MOGraphElement)>>display:on: {[:canvas | self nodes do:
[:each | each displayOn: canvas]. self edges ...]}
BalloonCanvas(FormCanvas)>>translateBy:during:
MORoot(MOGraphElement)>>display:on:
MORoot>>display:on:
UndefinedObject>>display:on:
MORoot(MOGraphElement)>>displayOn:
MOCanvas>>drawOn:
FormCanvas(Canvas)>>draw:
FormCanvas(Canvas)>>drawMorph:
[] in MOCanvas(Morph)>>fullDrawOn: {[(aCanvas isVisible: self bounds)
ifTrue: [aCanvas drawMorph: self]. self...]}
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
MOCanvas(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in TransformMorph>>drawSubmorphsOn: {[:m | myCanvas fullDrawMorph: m]}
Array(SequenceableCollection)>>reverseDo:
[] in TransformMorph>>drawSubmorphsOn: {[:myCanvas | (self angle ~= 0.0
or: [self scale ~= 1.0]) ifTrue: [FreeT...]}
FormCanvas>>transformBy:clippingTo:during:smoothing:
TransformMorph>>drawSubmorphsOn:
[] in TransformMorph(Morph)>>fullDrawOn: {[(aCanvas isVisible: self bounds)
ifTrue: [aCanvas drawMorph: self]. self...]}
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
TransformMorph(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in ScrollPane(Morph)>>drawSubmorphsOn: {[:m | canvas fullDrawMorph: m]}
Array(SequenceableCollection)>>reverseDo:
[] in ScrollPane(Morph)>>drawSubmorphsOn: {[:canvas | submorphs reverseDo:
[:m | canvas fullDrawMorph: m]]}
...etc...'
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
Lukas Renggli
http://www.lukas-renggli.ch