On 06 Oct 2014, at 13:43, Tudor Girba <tudor@tudorgirba.com> wrote:
It is not crazy. You will see that these will follow just like creating new presentations will follow.
I didn't mean the idea was crazy, I understand and agree with the reasoning, it is just that expecting all existing code to change is totally unrealistic.
But, we can certainly make it easier. I like the idea of removing the class prefix if it exists. It can be done in the default implementation from Object>>#gtDisplayOn:
OK, propose something and we'll see.
Doru
On Mon, Oct 6, 2014 at 1:40 PM, Sven Van Caekenberghe <sven@stfx.eu> wrote: So what, everybody has to either rewrite all old printStrings or add new gtDisplayStrings ? That is crazy, especially for cross platform packages.
It would be quite easy to rewrite GTInspector>>#printObjectAsAnItem: to not add the prefix if it is already present.
On 06 Oct 2014, at 13:33, Tudor Girba <tudor@tudorgirba.com> wrote:
Hi,
Yes, the label does introduce redundancy in some cases, but that is because the use of printString has to be rethought :)
printString was used for a long time as a primary inspection tool. Because of that it tries to do too much (like adding the class name), and it is certainly not suitable for a label.
gtDisplayString is meant for labeling the content of the object. It is used also for things like a list. As soon as you will do something with your objects, you will want to have something smaller. There is no need to have the class part of that string. Relying on that convention is brittle, as it is easy for people to not have the class name in there. But, for an inspector, having the class at all times is a prerequisite, so that will be displayed always separately (to ensure that the right information is offered).
gtDisplayString relies on printString by default, so people can provide the labels at their convenience.
Cheers, Doru
On Mon, Oct 6, 2014 at 1:20 PM, Sven Van Caekenberghe <sven@stfx.eu> wrote: I think the titles of GT-Inspector windows/panes are a bit silly:
<Screen Shot 2014-10-06 at 13.13.41.png>
Notice the 'a ZnClient(a ZnClient)' and 'a Dictionary(a Dictionary(...))' where the class name is repeated.
I think it is very important to honour the standard/general Smalltalk approach and assume the #printString already contains the class name. If not, you are basically punishing everybody who went through the trouble of writing custom #printString implementation (like me, I do this for most classes).
I saw the whole #display thing, but you can't force everybody to rewrite #printString to #gtDisplayString or whatever.
Sven
-- www.tudorgirba.com
"Every thing has its own flow"
-- www.tudorgirba.com
"Every thing has its own flow"