[squeak-dev] The Trunk: Tools-mt.553.mcz
Chris Muller
asqueaker at gmail.com
Sat Mar 21 20:02:04 UTC 2015
3. Collect an attribute of a collection (see screenshot).
This is possible only when depth is 2 and "Filterable Lists by labels
only" is set.
On Fri, Mar 20, 2015 at 12:56 PM, Levente Uzonyi <leves at elte.hu> wrote:
> I consider the depth filter to be a bad idea, because I see no value in
> filtering only the next 1, 2 or 3 levels.
>
> I can imagine two possible use cases:
> 1. filter only the tree nodes already opened - great when some nodes may be
> proxies.
> 2. filter the whole tree - what most users would expect to see
> This could be a simple boolean preference.
>
> The actual filtering should be done with a single tree traversal.
>
> Levente
>
>
> On Fri, 13 Mar 2015, commits at source.squeak.org wrote:
>
>> Marcel Taeumel uploaded a new version of Tools to project The Trunk:
>> http://source.squeak.org/trunk/Tools-mt.553.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Tools-mt.553
>> Author: mt
>> Time: 13 March 2015, 10:31:03.81 am
>> UUID: 8a53e27d-a4d2-1b4d-b899-7433bf6d5424
>> Ancestors: Tools-mt.552
>>
>> Filtering changed to support a depth offset. Will be used to filter
>> subtrees and support separate exploration activities in a large tree
>> structure. The depth-limit will then be applied together with the offset.
>>
>> =============== Diff against Tools-mt.552 ===============
>>
>> Item was changed:
>> ----- Method: IndentingListItemMorph>>applyFilter: (in category
>> 'filtering') -----
>> applyFilter: filter
>>
>> + self
>> + applyFilter: filter
>> + depthOffset: self indentLevel.!
>> - | selfMatch childMatch |
>> - self isExpanded ifTrue: [self toggleExpandedState].
>> -
>> - selfMatch := self matches: filter.
>> - childMatch := self matchesAnyChild: filter.
>> -
>> - selfMatch | childMatch ifFalse: [^ self hide].
>> -
>> - selfMatch ifTrue: [
>> - self backgroundColor: ((Color gray: 0.85) alpha: 0.5)].
>> - childMatch ifTrue: [
>> - self toggleExpandedState.
>> - self childrenDo: [:child | child applyFilter: filter]].!
>>
>> Item was added:
>> + ----- Method: IndentingListItemMorph>>applyFilter:depthOffset: (in
>> category 'filtering') -----
>> + applyFilter: filter depthOffset: offset
>> +
>> + | selfMatch childMatch |
>> + self isExpanded ifTrue: [self toggleExpandedState].
>> +
>> + selfMatch := self matches: filter.
>> + childMatch := self matchesAnyChild: filter depthOffset: offset.
>> +
>> + selfMatch | childMatch ifFalse: [^ self hide].
>> +
>> + selfMatch ifTrue: [
>> + self backgroundColor: ((Color gray: 0.85) alpha: 0.5)].
>> + childMatch ifTrue: [
>> + self toggleExpandedState.
>> + self childrenDo: [:child | child applyFilter: filter
>> depthOffset: offset]].!
>>
>> Item was removed:
>> - ----- Method: IndentingListItemMorph>>matchesAnyChild: (in category
>> 'filtering') -----
>> - matchesAnyChild: pattern
>> -
>> - | maxDepth next current |
>> - maxDepth := PluggableTreeMorph maximumSearchDepth - self
>> indentLevel.
>> - maxDepth <= 0 ifTrue: [^ false].
>> -
>> - next := (self getChildren collect: [:obj | 1 -> obj])
>> asOrderedCollection.
>> - [next notEmpty] whileTrue: [
>> - current := next removeFirst.
>> -
>> - (self matches: pattern in: current value)
>> - ifTrue: [^ true].
>> -
>> - current key < maxDepth ifTrue: [
>> - next addAll: ((self getChildrenFor: current value)
>> collect: [:obj | (current key + 1) -> obj])].
>> - ].
>> -
>> - ^ false!
>>
>> Item was added:
>> + ----- Method: IndentingListItemMorph>>matchesAnyChild:depthOffset: (in
>> category 'filtering') -----
>> + matchesAnyChild: pattern depthOffset: offset
>> +
>> + | maxDepth next current |
>> + maxDepth := PluggableTreeMorph maximumSearchDepth - self
>> indentLevel + offset.
>> + maxDepth <= 0 ifTrue: [^ false].
>> +
>> + next := (self getChildren collect: [:obj | 1 -> obj])
>> asOrderedCollection.
>> + [next notEmpty] whileTrue: [
>> + current := next removeFirst.
>> +
>> + (self matches: pattern in: current value)
>> + ifTrue: [^ true].
>> +
>> + current key < maxDepth ifTrue: [
>> + next addAll: ((self getChildrenFor: current value)
>> collect: [:obj | (current key + 1) -> obj])].
>> + ].
>> +
>> + ^ false!
>>
>>
>>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: collect-format.png
Type: image/png
Size: 17665 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20150321/ec60a5e9/collect-format.png
More information about the Squeak-dev
mailing list
|