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 > <mailto: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> >>> <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> >>>>> <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)
signature.asc
Description: OpenPGP digital signature