AlternatePluggableListMorphOfMany

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

AlternatePluggableListMorphOfMany

Chris Muller-3
I've just posted Morphic-cmm.372, which introduces
AlternatePluggableListMorphOfMany.  (Be sure to also get
Tools-cmm.200).  Those concerned with Squeak being familiar to
new-users may appreciate this; it is basically the same as the
standard PluggableListMorphOfMany, but allowing range-selections via
Shift+clicking.  Also, swipe-selecting does not miss interim
selections (e.g., in the middle of the swipe).

Now, I have not changed any existing users of PluggableListMorphOfMany
to use AlternatePluggableListMorphOfMany, but there is a demonstration
of it by enabling on the preference, "traceMessages" in the
Preferences.  This will utilize a MessageTrace instead of a MessageSet
when browsing senders/implementors.

If we like it, we can convert some or all of the legacy
PluggableListMorphOfMany's to the new one and then rename it.  Or if
there is a need for both then both or, if we don't like it, of course,
it can easily be deleted..

 - Chris

Reply | Threaded
Open this post in threaded view
|

Re: AlternatePluggableListMorphOfMany

laza
Looking for senders or implementors after setting the pref yields in
an error for me right now

MorphicToolBuilder(Object)>>doesNotUnderstand:
#pluggableAlternateMultiSelectionListSpec
        Receiver: a MorphicToolBuilder
        Arguments and temporary variables:
                aMessage: pluggableAlternateMultiSelectionListSpec
                exception: MessageNotUnderstood:
MorphicToolBuilder>>pluggableAlternateMultiSel...etc...
                resumeValue: nil
        Receiver's instance variables:
                parent: nil
                widgets: nil
                panes: nil
                parentMenu: nil

MessageTrace>>buildMessageListWith:
        Receiver: a MessageTrace
        Arguments and temporary variables:
                builder: a MorphicToolBuilder
                listSpec: nil
        Receiver's instance variables:
                dependents: nil
                contents: ''
                currentCompiledMethod: nil
                contentsSymbol: nil
                systemOrganizer: ('Kernel-Chronology' ChronologyConstants Date
DateAndTime Dura...etc...
                classOrganizer: nil
                metaClassOrganizer: nil
                systemCategoryListIndex: 0
                classListIndex: 0
                messageCategoryListIndex: 0
                messageListIndex: 1
                editSelection: #none
                metaClassIndicated: false
                messageList: an OrderedCollection(a MethodReference Class >>
hasMethods a Metho...etc...
                autoSelectString: 'hasMethods'
                growable: nil
                autoSelectStrings: an OrderedCollection('hasMethods' 'hasMethods'
'hasMethods' ...etc...
                messageSelections: an OrderedCollection(true false false false
false false fals...etc...
                anchorIndex: nil

[] in MessageTrace(MessageSet)>>buildWith:
        Receiver: a MessageTrace
        Arguments and temporary variables:
<<error during printing>
        Receiver's instance variables:
                dependents: nil
                contents: ''
                currentCompiledMethod: nil
                contentsSymbol: nil
                systemOrganizer: ('Kernel-Chronology' ChronologyConstants Date
DateAndTime Dura...etc...
                classOrganizer: nil
                metaClassOrganizer: nil
                systemCategoryListIndex: 0
                classListIndex: 0
                messageCategoryListIndex: 0
                messageListIndex: 1
                editSelection: #none
                metaClassIndicated: false
                messageList: an OrderedCollection(a MethodReference Class >>
hasMethods a Metho...etc...
                autoSelectString: 'hasMethods'
                growable: nil
                autoSelectStrings: an OrderedCollection('hasMethods' 'hasMethods'
'hasMethods' ...etc...
                messageSelections: an OrderedCollection(true false false false
false false fals...etc...
                anchorIndex: nil

[] in MessageTrace(StringHolder)>>buildWindowWith:specs:
        Receiver: a MessageTrace
        Arguments and temporary variables:
<<error during printing>
        Receiver's instance variables:
                dependents: nil
                contents: ''
                currentCompiledMethod: nil
                contentsSymbol: nil
                systemOrganizer: ('Kernel-Chronology' ChronologyConstants Date
DateAndTime Dura...etc...
                classOrganizer: nil
                metaClassOrganizer: nil
                systemCategoryListIndex: 0
                classListIndex: 0
                messageCategoryListIndex: 0
                messageListIndex: 1
                editSelection: #none
                metaClassIndicated: false
                messageList: an OrderedCollection(a MethodReference Class >>
hasMethods a Metho...etc...
                autoSelectString: 'hasMethods'
                growable: nil
                autoSelectStrings: an OrderedCollection('hasMethods' 'hasMethods'
'hasMethods' ...etc...
                messageSelections: an OrderedCollection(true false false false
false false fals...etc...
                anchorIndex: nil


--- The full stack ---
MorphicToolBuilder(Object)>>doesNotUnderstand:
#pluggableAlternateMultiSelectionListSpec
MessageTrace>>buildMessageListWith:
[] in MessageTrace(MessageSet)>>buildWith:
[] in MessageTrace(StringHolder)>>buildWindowWith:specs:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Array(SequenceableCollection)>>do:
MessageTrace(StringHolder)>>buildWindowWith:specs:
MessageTrace(MessageSet)>>buildWith:
MorphicToolBuilder(ToolBuilder)>>build:
MorphicToolBuilder>>open:
MorphicToolBuilder>>open:label:
ToolBuilder class>>open:label:
MessageTrace class(MessageSet class)>>openMessageList:name:autoSelect:
StandardToolSet class>>browseMessageSet:name:autoSelect:
ToolSet class>>browseMessageSet:name:autoSelect:
SystemNavigation>>browseMessageList:name:autoSelect:
SystemNavigation>>browseAllCallsOn:
SmalltalkEditor(TextEditor)>>sendersOfIt
...etc...


On Wed, Mar 3, 2010 at 22:24, Chris Muller <[hidden email]> wrote:

> I've just posted Morphic-cmm.372, which introduces
> AlternatePluggableListMorphOfMany.  (Be sure to also get
> Tools-cmm.200).  Those concerned with Squeak being familiar to
> new-users may appreciate this; it is basically the same as the
> standard PluggableListMorphOfMany, but allowing range-selections via
> Shift+clicking.  Also, swipe-selecting does not miss interim
> selections (e.g., in the middle of the swipe).
>
> Now, I have not changed any existing users of PluggableListMorphOfMany
> to use AlternatePluggableListMorphOfMany, but there is a demonstration
> of it by enabling on the preference, "traceMessages" in the
> Preferences.  This will utilize a MessageTrace instead of a MessageSet
> when browsing senders/implementors.
>
> If we like it, we can convert some or all of the legacy
> PluggableListMorphOfMany's to the new one and then rename it.  Or if
> there is a need for both then both or, if we don't like it, of course,
> it can easily be deleted..
>
>  - Chris
>
>

Reply | Threaded
Open this post in threaded view
|

Re: AlternatePluggableListMorphOfMany

laza
Ok, I guess I was too quick

On Wed, Mar 3, 2010 at 22:34, Alexander Lazarević <[hidden email]> wrote:

> Looking for senders or implementors after setting the pref yields in
> an error for me right now
>
> MorphicToolBuilder(Object)>>doesNotUnderstand:
> #pluggableAlternateMultiSelectionListSpec
>        Receiver: a MorphicToolBuilder
>        Arguments and temporary variables:
>                aMessage:       pluggableAlternateMultiSelectionListSpec
>                exception:      MessageNotUnderstood:
> MorphicToolBuilder>>pluggableAlternateMultiSel...etc...
>                resumeValue:    nil
>        Receiver's instance variables:
>                parent:         nil
>                widgets:        nil
>                panes:  nil
>                parentMenu:     nil
>
> MessageTrace>>buildMessageListWith:
>        Receiver: a MessageTrace
>        Arguments and temporary variables:
>                builder:        a MorphicToolBuilder
>                listSpec:       nil
>        Receiver's instance variables:
>                dependents:     nil
>                contents:       ''
>                currentCompiledMethod:  nil
>                contentsSymbol:         nil
>                systemOrganizer:        ('Kernel-Chronology' ChronologyConstants Date
> DateAndTime Dura...etc...
>                classOrganizer:         nil
>                metaClassOrganizer:     nil
>                systemCategoryListIndex:        0
>                classListIndex:         0
>                messageCategoryListIndex:       0
>                messageListIndex:       1
>                editSelection:  #none
>                metaClassIndicated:     false
>                messageList:    an OrderedCollection(a MethodReference Class >>
> hasMethods a Metho...etc...
>                autoSelectString:       'hasMethods'
>                growable:       nil
>                autoSelectStrings:      an OrderedCollection('hasMethods' 'hasMethods'
> 'hasMethods' ...etc...
>                messageSelections:      an OrderedCollection(true false false false
> false false fals...etc...
>                anchorIndex:    nil
>
> [] in MessageTrace(MessageSet)>>buildWith:
>        Receiver: a MessageTrace
>        Arguments and temporary variables:
> <<error during printing>
>        Receiver's instance variables:
>                dependents:     nil
>                contents:       ''
>                currentCompiledMethod:  nil
>                contentsSymbol:         nil
>                systemOrganizer:        ('Kernel-Chronology' ChronologyConstants Date
> DateAndTime Dura...etc...
>                classOrganizer:         nil
>                metaClassOrganizer:     nil
>                systemCategoryListIndex:        0
>                classListIndex:         0
>                messageCategoryListIndex:       0
>                messageListIndex:       1
>                editSelection:  #none
>                metaClassIndicated:     false
>                messageList:    an OrderedCollection(a MethodReference Class >>
> hasMethods a Metho...etc...
>                autoSelectString:       'hasMethods'
>                growable:       nil
>                autoSelectStrings:      an OrderedCollection('hasMethods' 'hasMethods'
> 'hasMethods' ...etc...
>                messageSelections:      an OrderedCollection(true false false false
> false false fals...etc...
>                anchorIndex:    nil
>
> [] in MessageTrace(StringHolder)>>buildWindowWith:specs:
>        Receiver: a MessageTrace
>        Arguments and temporary variables:
> <<error during printing>
>        Receiver's instance variables:
>                dependents:     nil
>                contents:       ''
>                currentCompiledMethod:  nil
>                contentsSymbol:         nil
>                systemOrganizer:        ('Kernel-Chronology' ChronologyConstants Date
> DateAndTime Dura...etc...
>                classOrganizer:         nil
>                metaClassOrganizer:     nil
>                systemCategoryListIndex:        0
>                classListIndex:         0
>                messageCategoryListIndex:       0
>                messageListIndex:       1
>                editSelection:  #none
>                metaClassIndicated:     false
>                messageList:    an OrderedCollection(a MethodReference Class >>
> hasMethods a Metho...etc...
>                autoSelectString:       'hasMethods'
>                growable:       nil
>                autoSelectStrings:      an OrderedCollection('hasMethods' 'hasMethods'
> 'hasMethods' ...etc...
>                messageSelections:      an OrderedCollection(true false false false
> false false fals...etc...
>                anchorIndex:    nil
>
>
> --- The full stack ---
> MorphicToolBuilder(Object)>>doesNotUnderstand:
> #pluggableAlternateMultiSelectionListSpec
> MessageTrace>>buildMessageListWith:
> [] in MessageTrace(MessageSet)>>buildWith:
> [] in MessageTrace(StringHolder)>>buildWindowWith:specs:
>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> Array(SequenceableCollection)>>do:
> MessageTrace(StringHolder)>>buildWindowWith:specs:
> MessageTrace(MessageSet)>>buildWith:
> MorphicToolBuilder(ToolBuilder)>>build:
> MorphicToolBuilder>>open:
> MorphicToolBuilder>>open:label:
> ToolBuilder class>>open:label:
> MessageTrace class(MessageSet class)>>openMessageList:name:autoSelect:
> StandardToolSet class>>browseMessageSet:name:autoSelect:
> ToolSet class>>browseMessageSet:name:autoSelect:
> SystemNavigation>>browseMessageList:name:autoSelect:
> SystemNavigation>>browseAllCallsOn:
> SmalltalkEditor(TextEditor)>>sendersOfIt
> ...etc...
>
>
> On Wed, Mar 3, 2010 at 22:24, Chris Muller <[hidden email]> wrote:
>> I've just posted Morphic-cmm.372, which introduces
>> AlternatePluggableListMorphOfMany.  (Be sure to also get
>> Tools-cmm.200).  Those concerned with Squeak being familiar to
>> new-users may appreciate this; it is basically the same as the
>> standard PluggableListMorphOfMany, but allowing range-selections via
>> Shift+clicking.  Also, swipe-selecting does not miss interim
>> selections (e.g., in the middle of the swipe).
>>
>> Now, I have not changed any existing users of PluggableListMorphOfMany
>> to use AlternatePluggableListMorphOfMany, but there is a demonstration
>> of it by enabling on the preference, "traceMessages" in the
>> Preferences.  This will utilize a MessageTrace instead of a MessageSet
>> when browsing senders/implementors.
>>
>> If we like it, we can convert some or all of the legacy
>> PluggableListMorphOfMany's to the new one and then rename it.  Or if
>> there is a need for both then both or, if we don't like it, of course,
>> it can easily be deleted..
>>
>>  - Chris
>>
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: AlternatePluggableListMorphOfMany

Bert Freudenberg
In reply to this post by Chris Muller-3
On 03.03.2010, at 22:24, Chris Muller wrote:

>
> I've just posted Morphic-cmm.372, which introduces
> AlternatePluggableListMorphOfMany.  (Be sure to also get
> Tools-cmm.200).  Those concerned with Squeak being familiar to
> new-users may appreciate this; it is basically the same as the
> standard PluggableListMorphOfMany, but allowing range-selections via
> Shift+clicking.  Also, swipe-selecting does not miss interim
> selections (e.g., in the middle of the swipe).
>
> Now, I have not changed any existing users of PluggableListMorphOfMany
> to use AlternatePluggableListMorphOfMany, but there is a demonstration
> of it by enabling on the preference, "traceMessages" in the
> Preferences.  This will utilize a MessageTrace instead of a MessageSet
> when browsing senders/implementors.
>
> If we like it, we can convert some or all of the legacy
> PluggableListMorphOfMany's to the new one and then rename it.  Or if
> there is a need for both then both or, if we don't like it, of course,
> it can easily be deleted..

What's the downside? It sounds like it has only obvious improvements, so why not just patch PluggableListMorphOfMany rather than introducing an alternate class?

- Bert -



Reply | Threaded
Open this post in threaded view
|

Re: AlternatePluggableListMorphOfMany

Chris Muller-3
Besides just trying to be conservative, I think there is one
show-stopper for universal replacement.  In the old widget, invididual
selections could be toggled by merely clicking on them.

In this widget, you are supposed to use Shift modifier to
range-select, and Control modifier for individual toggling.
Unfortunately, Control wants to put up the halos.  I don't know
whether this is the only way for Mac folks to obtain the halos or
not..  But you can imagine, for example, in recovering a crashed image
from the changes-file can be a long and tedious process, you almost
always need to do individual selections, and probably without having
to hold control down..

 - Chris

On Thu, Mar 4, 2010 at 4:03 AM, Bert Freudenberg <[hidden email]> wrote:

> On 03.03.2010, at 22:24, Chris Muller wrote:
>>
>> I've just posted Morphic-cmm.372, which introduces
>> AlternatePluggableListMorphOfMany.  (Be sure to also get
>> Tools-cmm.200).  Those concerned with Squeak being familiar to
>> new-users may appreciate this; it is basically the same as the
>> standard PluggableListMorphOfMany, but allowing range-selections via
>> Shift+clicking.  Also, swipe-selecting does not miss interim
>> selections (e.g., in the middle of the swipe).
>>
>> Now, I have not changed any existing users of PluggableListMorphOfMany
>> to use AlternatePluggableListMorphOfMany, but there is a demonstration
>> of it by enabling on the preference, "traceMessages" in the
>> Preferences.  This will utilize a MessageTrace instead of a MessageSet
>> when browsing senders/implementors.
>>
>> If we like it, we can convert some or all of the legacy
>> PluggableListMorphOfMany's to the new one and then rename it.  Or if
>> there is a need for both then both or, if we don't like it, of course,
>> it can easily be deleted..
>
> What's the downside? It sounds like it has only obvious improvements, so why not just patch PluggableListMorphOfMany rather than introducing an alternate class?
>
> - Bert -
>
>
>
>