Ok :) These methods only exists in Pharo 3.0 :)
Ben On 06 Nov 2013, at 08:38, Bahman Movaqar <bah...@bahmanm.com> wrote: > On 11/06/2013 11:07, Benjamin wrote: >> In which version of Pharo are you working ? > > Pharo2.0 > Latest update: #20607 > >> >> On 06 Nov 2013, at 08:31, Bahman Movaqar <bah...@bahmanm.com> wrote: >> >>> On 11/06/2013 10:56, Benjamin wrote: >>>> On 06 Nov 2013, at 08:21, Bahman Movaqar <bah...@bahmanm.com >>>> <mailto:bah...@bahmanm.com>> wrote: >>>> >>>>> On 11/06/2013 10:41, Benjamin wrote: >>>>>> This is the expected behaviour :) >>>>> >>>>> Oh! A bit unorthodox, specially considering the shortcut (CTRL+S) >>>>> --I was expecting something like ENTER :-) >>>> >>>> There is also acceptOnCr :) >>> >>> That clearly shows I have to work on my "exploration" skills :-) >>> >>>> >>>>> >>>>>> But what you can do (and actually what you wanna do) is to accept >>>>>> the text at each keyStroke :) >>>>>> >>>>>>> initializePresenter >>>>>>> self instantiateModels: #( >>>>>>> textName TextModel >>>>>>> labelGreeting LabelModel >>>>>>> buttonGreet ButtonModel >>>>>>> ). >>>>>>> labelGreeting text: ''. >>>>>>> buttonGreet label: 'Greet Me!'; disable. >>>>>> >>>>>> should be turned into: >>>>>> >>>>>> #initializePresenter >>>>>> textName := self newTextInput. >>>>>> labelGreeting := self newLabel. >>>>>> buttonGreet := self newButton. >>>>> >>>>> Would you please explain the RHS of the statements? I don't >>>>> understand `self newTextInput`. >>>> >>>> It’s equivalent to self instantiateModels: #(textName >>>> TextInputFieldModel). >>>> It simply creates a new sub model for you :) >>> >>> Hmm...Pharo rejects those lines, e.g. with "Unknown select >>> newTextInput". I guess I'm sub-classing the wrong class. Here's my >>> class definition: >>> >>> <code> >>> ComposableModel subclass: #FirstSpec >>> instanceVariableNames: 'textName labelGreeting buttonGreet' >>> classVariableNames: '' >>> poolDictionaries: '' >>> category: 'Bahman-Spec' >>> </code> >>> >>>> >>>>> >>>>>> >>>>>> labelGreeting text: ''. >>>>>> buttonGreet label: 'Greet Me!'; disable. >>>>>> textName autoAccept: true. >>>>> >>>>> It's certainly no big deal but I'm just curious; any special reason >>>>> why `autoAccept` doesn't default to true? >>>> >>>> That’s actually a good question :) >>>> I guess the answer is historical :) >>> >>> Ancestral remains, huh? :-) >>> >>>> >>>>> >>>>>> On 06 Nov 2013, at 06:05, Bahman Movaqar <bah...@bahmanm.com >>>>>> <mailto:bah...@bahmanm.com>> wrote: >>>>>> >>>>>>> Hi all, >>>>>>> >>>>>>> I'm writing a simple graphical version of the legendary "Hello, >>>>>>> world". I have a window with a text field, a button and a label. >>>>>>> What I'm trying to do is to make the button (which is initially >>>>>>> disabled) enabled upon user entering text. However, it seems that >>>>>>> the user first must "Accept" the text for the action to be fired. >>>>>>> >>>>>>> Here's some snippets of code: >>>>>>> >>>>>>> <code> >>>>>>> initializePresenter >>>>>>> textName whenTextChanged: [ >>>>>>> buttonGreet enable ]. >>>>>>> buttonGreet action: [ >>>>>>> labelGreeting text: 'Hello, ', textName text, '!'. >>>>>>> buttonGreet disable ]. >>>>>>> >>>>>>> >>>>>>> >>>>>>> initializeWidgets >>>>>>> self instantiateModels: #( >>>>>>> textName TextModel >>>>>>> labelGreeting LabelModel >>>>>>> buttonGreet ButtonModel >>>>>>> ). >>>>>>> >>>>>>> labelGreeting text: ''. >>>>>>> buttonGreet label: 'Greet Me!'; disable. >>>>>>> </code> >>>>>>> >>>>>>> What am I doing wrong? >>>>>>> >>>>>>> TIA, >>>>>>> >>>>>>> PS: I have tried `whenTextChanged` to no avail --it shows the same >>>>>>> behaviour. >>>>> > > > -- > Bahman Movaqar (http://BahmanM.com) > > ERP Evaluation, Implementation & Deployment Consultant > PGP Key ID: 0x6AB5BD68 (keyserver2.pgp.com)