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 <Bahman@BahmanM.com> wrote:

On 11/06/2013 10:56, Benjamin wrote:
On 06 Nov 2013, at 08:21, Bahman Movaqar <Bahman@BahmanM.com
<mailto:Bahman@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 <Bahman@BahmanM.com
<mailto:Bahman@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)