Usman did you check with 1.3 to know if the method was there?
Stef
On Jan 31, 2013, at 7:03 AM, Usman Bhatti wrote:
>
>
>
> On Thu, Jan 31, 2013 at 2:30 AM, St�phane Ducasse <stephane.ducasse@inria.fr> wrote:
> Morbid fascination
> It is late so I may completely off but
> how many isKindOf: are executed in this method?
>
> > ((aSymbol isKindOf: Array)
> > � � � � � � � and: [aSymbol size > 1 and: [aSymbol first == self nodeListSelector and: [
> > � � � � � � � � � � � � � � � � � � � aSymbol second == #openPath]]])
>
> when �[aSymbol second == #openPath] is not openPath
> then we go to the next (not mentioning duplicated code inside the method ---- I will vomit)
> and we restart to execute isKindOf:
>
> ((aSymbol isKindOf: Array)
> � � � � � � � � and: [aSymbol size > 1 and: [aSymbol first == self nodeListSelector and: [
> � � � � � � � � � � � � � � � � � � � � aSymbol second == #expandAllFromNode:]]])
>
> Am'I right?
> It looks so terrible.
>
> Yes. And more so for someone not frequently working with Morphs.
> So, can someone at least see if the problem can be fixed without a large refactoring that should surely happen, but the glamour bug needs a quick fix. Or at least point to why the missing method on the receiver is abundantly found in the code?
>
> usman
>
>
> Stef
>
>
>
> > update: aSymbol
> > � � � aSymbol == #selection ifTrue: [^ self listManager updateSelectionFromModel].
> > � � � ((aSymbol �isKindOf: Array) � � and: [aSymbol size > 1 and: [aSymbol first == #selectItems and: [aSymbol second isCollection]]])
> > � � � � � � � ifTrue: [^ self selectedItems: aSymbol second].
> > � � � aSymbol == self nodeListSelector ifTrue: [^ self updateList].
> > � � � aSymbol == #selectAll ifTrue: [^ self listManager selectAll].
> > � � � aSymbol == #deselectAll ifTrue: [^ self listManager deselectAll].
> > � � � ((aSymbol isKindOf: Array)
> > � � � � � � � and: [aSymbol size > 1 and: [aSymbol first == self nodeListSelector and: [
> > � � � � � � � � � � � � � � � � � � � aSymbol second == #openPath]]]) "allow directed path opening where multiple trees exist"
> > � � � � � � � � � � � ifTrue:
> > � � � � � � � � � � � � � � � [^(self allNodeMorphs at: 1 ifAbsent: [^self])
> > � � � � � � � � � � � � � � � � � � � openPath: (aSymbol allButFirst: 2)].
> > � � � ((aSymbol isKindOf: Array)
> > � � � � � � � and: [aSymbol size > 1 and: [aSymbol first == self nodeListSelector and: [
> > � � � � � � � � � � � � � � � � � � � aSymbol second == #openItemPath]]]) "allow directed path opening where multiple trees exist"
> > � � � � � � � � � � � ifTrue:
> > � � � � � � � � � � � � � � � [^ (self allNodeMorphs at: 1 ifAbsent: [^self])
> > � � � � � � � � � � � � � � � � � � � openItemPath: (aSymbol allButFirst: 2)].
> > � � � ((aSymbol isKindOf: Array)
> > � � � � � � � and: [aSymbol size > 1 and: [aSymbol first == self nodeListSelector and: [
> > � � � � � � � � � � � � � � � � � � � aSymbol second == #expandAllFromNode:]]])
> > � � � � � � � � � � � ifTrue:
> > � � � � � � � � � � � � � � � [^ self expandAllFromNode: aSymbol third].
> > � � � ((aSymbol isKindOf: Array)
> > � � � � � � � and: [aSymbol size > 1 and: [aSymbol first == self nodeListSelector and: [
> > � � � � � � � � � � � � � � � � � � � aSymbol second == #closeItemPath]]]) "allow directed path closing where multiple trees exist"
> > � � � � � � � � � � � ifTrue:
> > � � � � � � � � � � � � � � � [^ (self allNodeMorphs at: 1 ifAbsent: [^self])
> > � � � � � � � � � � � � � � � � � � � closeItemPath: (aSymbol allButFirst: 2)].
> > � � � ((aSymbol isKindOf: Array)
> > � � � � � � � and: [aSymbol notEmpty and: [aSymbol first == #openPath]])
> > � � � � � � � � � � � ifTrue:
> > � � � � � � � � � � � � � � � [^(self allNodeMorphs at: 1 ifAbsent: [^self])
> > � � � � � � � � � � � � � � � � � � � openPath: aSymbol allButFirst].
> > � � � ((aSymbol isKindOf: Array)
> > � � � � � � � and: [aSymbol size �= 2 and: [aSymbol first = self nodeListSelector and: [
> > � � � � � � � � � � � � � � � � � � � aSymbol second == #expandRoots]]])
> > � � � � � � � � � � � ifTrue:
> > � � � � � � � � � � � � � � � [^self expandRoots].
> > � � � ((aSymbol isKindOf: Array)
> > � � � � � � � and: [aSymbol size = 2 and: [aSymbol first = self nodeListSelector]])
> > � � � � � � � ifTrue: [aSymbol second = #expandAll ifTrue: [^ self expandAll].
> > � � � � � � � � � � � aSymbol second = #collapseAll ifTrue: [^ self collapseAll]]
>
>
>