Hi,
Sometimes we have to show large text files and Pharo takes some time to get
their contents and display them. In a Glamour browser, for example, the
user would click and then wait for a few seconds before he'll get the
desired results. In such cases, it will be useful to show the user a
certain text in the text presentation, and once the contents of the file
are available, the presentation updates itself with it (something on the
lines of Cursor>>showWhile:)
Conceptually, with Glamour this can be achieved in two ways: triggering two
transmissions for the text display pane and updating the text presentation
when file contents are available.
Triggering transmission (or placing values manually in entity/selection
ports) means that if the pane contains multiple presentations, each one
will get affected the "delayed" behaviour even when there is none.
Updating the text presentation is better suited. Something like:
| tab textDisplayBlock|
tab := GLMTabulator new.
tab title: 'Playing with huge text files'.
tab column: #list span: 0.5; column:[:c | c row: #code; row: #details].
textDisplayBlock := [ :each | 'Loading file ...' ].
tab transmit to:#list; andShow: [:a |
a list display: #yourself].
tab transmit to:#code; from:#list; andShow: [:a |
a rubricText
display: textDisplayBlock.
a roassal2 painting: [ :view :entity | view add: (((RTBox new color: Color
red) + RTLabel) elementOn: entity) ]
].
tab transmit to:#details; from:#list; andShow: [:a |
a rubricText
display: #yourself.
].
tab openOn: RubLipsumBasicExample selectors.
"I just displayed text presentation, you can provide me the alternate block"
textDisplayBlock:= [:each | (RubLipsumBasicExample sourceCodeAt: each)].
tab update.
But this has to be done with Announcements not to introduce a specific
delay each time and outside browser interpretation loop so that the pane is
visible during the file reading operation. I haven't found so far how to
change the display behaviour of a presentation from an announcement raised
by an object outside the browser/presentation like:
on: FileContentsAvailable do: [block := textDisplayBlock:= [:each |
(RubLipsumBasicExample sourceCodeAt: each)]. browser update]
So my questions: am I trying achieve something glamour does not support
(yet)? Can we add a generic showWhile: mechanism for Glamour textual
presentations without too much effort? Or there is a simple way to achieve
it that I don't see?
tx,
usman
"It's not just you! http://www.moosetechnology.org looks down from here.”
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
The last build of Moose is severely broken. GLMRoassalEasel is not in the image, which prevent the world menu to open.
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
"Nesting and composed shape”. Not really a new topic isn’t it?
I have worked on a way to indicate where in a composed shape inner elements can be inserted.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| v |
v := RTView new.
v @ RTDraggableView.
shape := RTMultiCompositeShape new.
shape add: RTLabel new.
shape add: (RTBox new size: 20; color: (Color blue alpha: 0.3)).
es := shape elementsOn: RTShape withAllSubclasses.
v addAll: es.
es do: [ :e |
methodElements := RTBox new elementsOn: e model methods.
RTGridLayout on: methodElements.
RTNest new
on: e
inShape: #second
nest: methodElements
layout: #vertical.
v addAll: methodElements.
].
RTFlowLayout on: es.
es @ RTDraggable.
v open
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
The call of RTNest, indicated in bold, is the new thing.
The #vertical says we what to have the two shapes added to RTMultiCompositeShape have to use a vertical layout.
Here is the result:
Any comment?
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
[ meta comment: We regularly publish in our Facebook and twitter some tips about Roassal. I am wondering whether you guys will be happy to see it in the pharo-users mailing list. Is this something you would like to see? Please help us adjusting our documentation effort ]
Here is a new tip:
Roassal Tip #9: How to adjust edge transparency with moose hovering?
https://upload.facebook.com/ObjectProfile/photos/a.341189379300999.82969.34…
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hello,
I would like to know why CTRL+SHIFT+d doesn't not open the debugger from the playground but ALT+SHIFT+d does?
Is it possible to fix it?
Thanks!
Cheers,
Vincent
________________________________
Ce message et les pi?ces jointes sont confidentiels et r?serv?s ? l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du message ne pouvant ?tre assur?e sur Internet, la responsabilit? de Worldline ne pourra ?tre recherch?e quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r?sultant d'un virus transmis.
This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
Hi,
This is a question for the moosers :)
Why there is no copy (with stable version) in metarepo of ll configurations that are under the moose umbrella?
cheers,
Esteban
On 18 Jul 2014, at 10:00, phil(a)highoctane.be wrote:
> I load it from the moose team on sth. Works for me, browser included.
>
> Le 18 juil. 2014 09:24, "Tudor Girba" <tudor(a)tudorgirba.com> a écrit :
> In the case of Moose, #development and #bleedingEdge are the same.
>
> Doru
>
>
> On Fri, Jul 18, 2014 at 9:18 AM, Norbert Hartl <norbert(a)hartl.name> wrote:
> I think what is loaded by CI is dependent on the workflow of the project. IMHO for most projects loading #bleedingEdge is the best thing to do.
>
> Norbert
>
> Am 18.07.2014 um 05:21 schrieb Tudor Girba <tudor(a)tudorgirba.com>:
>
>> It loads #development as any CI job should do.
>>
>> Doru
>>
>>
>> On Fri, Jul 18, 2014 at 1:40 AM, Sean P. DeNigris <sean(a)clipperadams.com> wrote:
>> Stephan Eggermont wrote
>> > And there is a image build at
>> > https://ci.inria.fr/pharo-contribution/job/PetitParser/
>>
>> Interesting. I wonder what the ci is loading, because if I try to load the
>> default group in Pharo 3.0, I get an error (hence I load 'Core' and have no
>> problems)
>>
>>
>>
>> -----
>> Cheers,
>> Sean
>> --
>> View this message in context: http://forum.world.st/PetitParser-in-3-0-tp4768398p4768407.html
>> Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
>>
>>
>>
>>
>> --
>> www.tudorgirba.com
>>
>> "Every thing has its own flow"
>
>
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"
Hi,
When using Roassal 2 in a glamour browser, the visualization gets clipped
when too large. This appears to occur because the canvas does not adapt to
the container morph (a TRMorph) dimensions and retains its default extent.
To reproduce:
|browser|
browser := GLMTabulator new.
browser title: 'Roassal 2 Visualization'.
browser row: #visu.
browser transmit to: #visu; andShow: [:a |
a roassal2
title: 'Overview';
painting: [ :mondView :entity | view := mondView view.
view addAll: ((RTEllipse new color: Color purple; size: 10) elementsOn:
Collection withAllSubclasses) @ RTDraggable.
RTEdge buildEdgesFromObjects: Collection withAllSubclasses from:
#superclass to: #yourself inView: view.
RTClusterLayout on: view elements edges: view edges.
view edges do: [ :e | e trachelShape pushBack ].
"view canvas extent: (950 @ 550)."
]].
browser openOn: 1.
Did someone notice similar behavior with spec? What would be good is that
TRMorph should update the contained canvas extent when it is resized.
usman
[image: Inline image 2]