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