I wanted to feedback my appreciation for the extensive examples included
with Glamour & Roassal.
In particular it was enlightening to observe the use of Announcements
and #updateOn:from:
in GLMBasicExamples>>updateableIndividualPresentations
This helped me achieve something I had been unable to get working for
several months through other means. Suddenly it was easy and took only a
half-hour to get working. The penny dropped to enable my first use of
Announcements.
cheers -ben
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium
New issue 898 by benjamin...(a)gmail.com: Roassal performance with Unicode
http://code.google.com/p/moose-technology/issues/detail?id=898
In my application I need to display polar notation complex numbers in
Roassal.
This notation uses the angle ∠ symbol
(http://www.fileformat.info/info/unicode/char/2220/index.htm)
Using this there is a noticeable performance drop/lag when using this
unicode character, as demonstrated by the sample below.
Specifically, dragging with a non-Unicode element is instantaneous. The
element immediately follows the hardware cursor and even when moving the
mouse suddenly-and-at-speed it is hard force any space between the element
and the hardware cursor.
When dragging a Unicode element, the hardware cursor easily makes it to the
other side of the window before the element moves.
--------------------
rawView := ROView new.
10 timesRepeat: [ rawView add: (ROLabel elementOn: '22#22') @ RODraggable.
].
rawView open.
rawView := ROView new.
10 timesRepeat: [ rawView add: (ROLabel elementOn: '33', Character angle
asString, '33') @ RODraggable. ].
rawView open
-------------
Character>>angle
"The ANGLE symbol '∠' U+2220, from Unicode version 1.1 ISO/IEC-10646-1:1993"
"One font family that contains this character is DejaVu"
^ Unicode value: 16r2220
-----
Further, changing this to 100 times locks the image for about 30 seconds
before either "Roassal Visualization" window is displayed. If you then drop
the System Browser over the top of the Roassal-Unicode window, it
introduces a noticeable lag when moving the System Browser away.
Is there anything obvious/quick that can be done to improve this
performance - otherwise for now I'll just have to drop this nice-to-have
symbol.
However in the broader context of Roassal internationalization, this might
be an important issue.
With Roassal after applying a layout, I would like to be able to
translate the graph such that the bottom left corner of the graph is
displayed. Is there someway to do that already?
I looked into ROFocusView, ROCanvas & ROCamera, but could not work it
out what was needed.
With the script below, the attached image is what I would like to see.
"-------------"
#(1 2 3 4 5 6 7 8 9) do:
[
:x |
rawView add: (ROElement spriteOn: x) + ROLabel.
].
rawView add: (ROEdge lineFrom: rawView elements seventh to: rawView
elements eighth).
rawView add: (ROEdge lineFrom: rawView elements seventh to: rawView
elements ninth).
(ROHorizontalTreeLayout new verticalGap: 40; horizontalGap:60) on:
rawView elements.
"HERE TRANSLATE CANVAS/CAMERA TO SHOW NODES 7, 8 & 9 IN THE BOTTOM LEFT
CORNER OF WINDOW PANE"
"-------------"
cheers -ben
Hi,
It's me again! ;) I'm building a calendar visualization inspired by http://www.xconomy.com/wordpress/wp-content/images/2012/11/skeuo-calendar.p….
Each node of visualization will be a month that contains:
- An header (with (a) the name of the month and (b) the headers for the columns containing 'Mon' 'Tue' 'Wed' etc.)
- Inner nodes for the days
I created such visualization without the headers and now I'm wondering which is the clearer solution to add them.
As I wrote in the previous mail, I'm using nodes:forEach: to generate the visualization with inner nodes.
The first solution that came to my mind is to nest another nodes:forEach to draw the headers. Let me explain:
view nodes: months forEach: [ :month |
…
headers := OrderedCollection with: month name .
headers addAll: #('Sun' 'Mon' 'Tue' 'Wed' 'Thu' 'Fri' 'Sat' ).
view nodes: headers forFirst: [ :header |
'The first header is an instance of the Month class, which is used as a key in the Dictionary that represents my data.'
'Thus I use that to recover the days for the current month from the dictionary'
days := myData at: header.
view nodes: days.
]
]
Notice that nodes:forFirst: is a message I implemented that works like nodes:forEach: but only considers the first node of nodes and attaches the inner nodes only to that element.
I feel this solution is a bit of a hack. How would you do it in a cleaner way?
____
Another question concerns drag & drop. I set my inner nodes (i.e, days) to be not draggable since I do not want the user to drag them, but I want the user to be able to drag the entire shape representing a month (i.e., outer node). As an effect to drag the month you should explicitly start the dragging from the outer node but this is counter intuitive. I'd like to be able to drag the month also from its inner nodes (days).
Is there a way to propagate the interaction and from the inner nodes I can drag the container shape?
____
Thanks in advance,
Roberto
Hi guys,
I'm using Roassal to build a visualization that looks like the following:
http://www.xconomy.com/wordpress/wp-content/images/2012/11/skeuo-calendar.p…
I create two ad-hoc layouts (i.e., extending the ROGridLayout) to individually layout days inside months and months inside years.
I have a piece of code that looks something like:
> view shape rectangle withText.
>
> view nodes: nodes forEach: [ :aGroupOfObjects | | innerNodes |
>
> innerNodes := do something with aGroupOfObjects.
> ...
> view shape rectangle size: 25; withCenteredText.
> ...
> view nodes: innerNodes.
> view layout: ROMonthLayout new.
> ]
>
> view layout: ROYearLayout new.
>
> view edges: ...
Notice that I want the both the outer node (i.e., the month container) and the inner nodes (i.e., days) with labels.
The problem is that when I set both nodes with labels the view takes time to be generated and interactions become impossible (i.e., the whole image actually becomes slow and you can no longer drag around shapes in the view).
I explored the issue a little bit and discovered that it might be something related to ROShape>>chainedDrawOn:for: and the way Roassal handles shapes with "nested" shapes (i.e., when 'next' is not a RONullShape .
I inspected one of my outer nodes and discovered that I have a chain such that 'outerNode next' is a ROLabel and the ROLabel has a ROChildrenShape as next and the next of the ROChildrenShape is a RONullShape .
Have you ever experienced such a problem? Do you know how can I handle that? Do you see any potential problem in the snippet I posted above?
Cheers and thanks in advance,
Roberto
Hello all,
Andrei, a PhD student from U. Bern, is visiting Lille and he showed me
seaside-glamour, rendering glamour in a web browser. So, without much
effort we could move a glamour browser and start using it on the web.
So, it was a great to see this thing working. Now, there are some widgets
missing. But, we were able to create DropDown list and to transmit
selection from it to other panes in the browser with some effort and its
working now.
Now, next step is Table widget, so we will see if we have some time to do
it in the coming days.
Now, for me, the missing part of the story is to see if can play with
Roassal on the web :-).
best,
Usman