> Begin forwarded message:
> From: Sven Van Caekenberghe <sven(a)stfx.eu>
> Subject: [Pharo-users] [ ANN ] Pharo Days 2016
> Date: December 9, 2015 at 9:52:09 AM EST
> To: Any question about pharo is welcome <pharo-users(a)lists.pharo.org>, Pharo Development List <pharo-dev(a)lists.pharo.org>, Pharo Business <pharo-business(a)lists.pharo.org>
> Reply-To: Any question about pharo is welcome <pharo-users(a)lists.pharo.org>
> Dear fellow Pharoers,
> Mark your calendars: on Thursday March 31 & Friday April 1 we are organising the Pharo Days 2016. This year we moved the location to Namur, Belgium, just a bit south of Brussels, at the very beautiful location of the ‘Cercle de Wallonie’ overlooking the river Meuse.
> We’ll update the following page moving forward.
> You can ask questions on any of the Pharo mailing lists or you can email the Pharo Board.
> Let's make this another success, together ! We hope to see as many of you as possible.
"We are all great at making mistakes."
Synectique is openning the source code for a C/C++ parser based on
The parser was developed as an Eclipse (Mars release) plugin and is
under MIT licence.
Nicolas Anquetil -- MCF (HDR)
Is there a way to set a default selection to a list presentation? so that
when I open the browser, the morphic list has already a value selected.
I tried that:
tmpBrowser := GLMTabulator new.
tmpBrowser row: #list.
tmpBrowser transmit to: #list; andShow: [:a |
display: [:input | input];
tmpBrowser openOn: #( b c d v a d f r).
but the list still open with nothing selected
act: [ :tree :projects | projects add. tree update ] iconName: #add on: $n
entitled: 'New Project';
The tree does not get updated with the new project, but if I close the
browser and reopen it is up to date. Ideas?
Sent from: http://forum.world.st/Moose-f1310756.html
What is the best way for an object to delegate one or more GTInspector
views to other objects?
I have been using a pattern like this:
otherObject gtInspectorFooIn: composite
but I am wondering whether there is a better way, and also whether this
method is valid (I've occasionally seen odd behavior, like Inspector panes
disappearing after I "Refresh", and I wonder if I could be somehow
confusing the model or if this is not relevant.)
also: Supposing this pattern is valid, is there an easy way to override the
title of the view(s) added by otherObject?
I have written a bunch of GTInspector extensions and I would like to get
error handling under control.
I have errors occuring in a few different contexts such as:
- Running gtInspectorFooIn: method
- Running display: block for a view
- Running column:evaluated: block for a table
and at the moment the symptoms are quite different e.g. Debugger dialog or
big red morphic error box.
How do other people handle errors in their views?
I feel like there are two approaches that would be ideal at different
times. The "user friendly" way would be to flag errors and keep them out of
the way -- e.g. skip views that error, skip table rows/columns/cells that
error, etc. The "developer friendly" way would be to hit the debugger as
early as possible in order to make a fix.
Thoughts / tips / links welcome :)
-Luke (still having a great time hacking inspector extensions)
The following won't display the action button unless the commented code is
browser transmit to: #list; andShow: [:a |
"title: 'Filter and named action ';"
act: [:list | list update] iconName: #add on: $n entitled: 'Update' ].
Sent from: http://forum.world.st/Moose-f1310756.html
We are happy to announce GT Mondrian, a graph visualization engine built on top of Bloc.
It is similar to the original Mondrian and the Mondrian from Roassal, but it is different in that it is built directly out of Bloc elements. This is interesting because it allows us to combine typical widgets with visualizations. The other interesting thing about it is that it validates the design of Bloc: right now, the implementation has 509 lines of code (excluding graph-specific layouts). The goal is to make visualization a first class citizen and an integral part of the IDE.
The key ingredient that made this happen is that Bloc can now treat graph layouts, such as tree or force based, behave under the same rules as typical widget layouts, such as grid or flow. The challenge comes from the fact that a graph layout depends on the notion of edges between elements, and we did not want to have elements know about edges in the core of Bloc.
The solution was to split the typical edge implementation in graph visualization libraries into two distinct concepts:
• Line is an element that draws the connections.
• Edge defines constraints imposed by connections between elements.
Thus, edges form constraints, and constraints are what layouts deal with. That is one reason why elements in bloc have the ability of defining layout-specific constraints. Using this, we can nicely define edges between elements as a plugin to Bloc, but still be able to connect arbitrary elements. What's more, it turns out that we need constraints for other layouts as well. For example, an element in a grid layout might specify the span.
The API of GT Mondrian is similar to the one from Roassal, but there are a few differences as well. These are described in the Pillar documentation available in the GitHub repo.
The best way to experience GT Mondrian and its documentation is to load the GToolkit as described here:
If you download the GT code through Iceberg, the documentation can be experienced live by inspecting:
The feenk team
"Quality cannot be an afterthought."
GTInspector is awesome!
I am spending a lot of time scrolling through GTInspector lists and tables
trying to spot the row that I am interested in though. Is there a trick to
accelerate this somehow?
I am used to Emacs where I can use the search function to type a text
fragment - e.g. "error" - and have the matching occurrences highlighted. It
would be awesome if the glamour lists/tables support some similar
lightweight searching mechanism...?
P.S. Here is a screenshot of a haystack and I am trying to eyeball needles
in... e.g. I want to find a particular address or a field called "error" or