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)


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to