I think you missed my p.s. :) Doru
On Fri, Jul 27, 2012 at 2:21 PM, Stéphane Ducasse <[email protected]> wrote: > > On Jul 27, 2012, at 1:06 PM, Tudor Girba wrote: > >> I checked in Pharo 2.0, and it looks ... well, how should I put it: >> it's confusing. You took a clear piece of code that could be printed >> on a nice A4 paper, and transformed it into a myriad of delegations. >> >> I think you are just too afraid of if-statements. Clearly, a better >> solution would have been to just use caseOf:. > > I did not check the code but using blocks as objects was a bad idea. > >> >> Doru >> >> p.s. :) >> >> >> On Thu, Jul 26, 2012 at 8:55 PM, Stéphane Ducasse >> <[email protected]> wrote: >>> And I removed the strip behavior. >>> In 2.0 it is not there. >>> >>> Stef >>> >>> On Jul 25, 2012, at 4:47 PM, Tudor Girba wrote: >>> >>>> Just for fun read the below piece of code :) >>>> >>>> >>>> SystemProgressMorph>>label: shortDescription min: startMinValue max: >>>> startMaxValue >>>> "Answer the block that updates the progress bar." >>>> >>>> "some fun stuff added (by kph) >>>> >>>> - bar value: #label. - tell me my current label. >>>> - bar value: 'newLabel'. - enable changing the label from within the >>>> workBlock >>>> - bar value: #increment. - enable progress by one without keeping a >>>> counter >>>> - bar value: #decrement. - go backwards (if you really have to, >>>> useful for an abort, or rollback)! >>>> >>>> - bar value: newBigNum. - change the max on the fly - when you find >>>> there is more to do. >>>> - bar value: (bar value: #setMax) + 20 - change the max on the fly - >>>> when you find there is more/less to do. >>>> - bar value: (bar value: #setMin) - 20 - change the min on the fly - >>>> not sure why you would want to. >>>> " >>>> | slot range barSize lastRefresh maxValue minValue bar| >>>> maxValue := startMaxValue. >>>> minValue := startMinValue. >>>> ((range := maxValue - minValue) <= 0 or: [(slot := self nextSlotFor: >>>> shortDescription) = 0]) >>>> ifTrue: [^[:barVal| 0 ]]. >>>> self recenter. >>>> self openInWorld. >>>> barSize := -1. "Enforces a inital draw of the morph" >>>> lastRefresh := Time millisecondClockValue. >>>> bar := bars at: slot. >>>> ^[:barValArg | | barVal return newBarSize | >>>> barVal := barValArg. >>>> return := nil. >>>> bar := bars at: slot. >>>> "new fun stuff here" >>>> barVal == #current ifTrue: [ return := barSize ]. >>>> barVal == #label ifTrue:[ return := (labels at: slot) >>>> contents ]. >>>> barVal == #setMax ifTrue: [ return := maxValue. maxValue := >>>> minValue ]. >>>> barVal == #setMin ifTrue: [ return := minValue. minValue := >>>> maxValue ]. >>>> barVal == #increment ifTrue: [return := barVal := barSize + >>>> 1]. >>>> barVal == #decrement ifTrue: [ return := barVal := barSize - >>>> 1]. >>>> (barVal isString and: [barVal isSymbol not]) ifTrue: [ >>>> (labels at: slot) contents: barVal. >>>> barVal := #refresh]. >>>> barVal == #refresh ifTrue: [self currentWorld displayWorld. >>>> return := true]. >>>> (barVal == SmallInteger maxVal or: [ barVal == #finished ]) >>>> ifTrue: >>>> [return := slot]. >>>> return ifNil: [ >>>> barVal > maxValue ifTrue: [return := maxValue := >>>> barVal]. >>>> barVal < minValue ifTrue: [return := minValue := >>>> barVal]. >>>> (barVal between: minValue and: maxValue) >>>> ifTrue: [newBarSize := (barVal - minValue / >>>> range * BarWidth) truncated. >>>> newBarSize = barSize >>>> ifFalse: [barSize := >>>> newBarSize. >>>> (Time >>>> millisecondsSince: lastRefresh) > 25 >>>> >>>> ifTrue: [barVal := #refresh ]]]. >>>> barVal == #refresh ifTrue: [ >>>> ((bar valueOfProperty: #useStripes) >>>> ifNil: [false]) >>>> ifTrue: [bar fillStyle >>>> origin: bar position - ((Time >>>> millisecondClockValue // 50 \\ 30) @ 0)]. >>>> bar barSize: barSize. >>>> self currentWorld displayWorld. >>>> lastRefresh := Time >>>> millisecondClockValue]]. >>>> return] >>>> >>>> Cheers, >>>> Doru >>>> >>>> -- >>>> www.tudorgirba.com >>>> >>>> "Every thing has its own flow" >>>> >>> >>> >> >> >> >> -- >> www.tudorgirba.com >> >> "Every thing has its own flow" >> > > -- www.tudorgirba.com "Every thing has its own flow"
