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)

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to