<div dir="ltr"><div dir="ltr"></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Aug 25, 2024 at 7:56 AM Juan Vuletich <<a href="mailto:juan@cuis.st">juan@cuis.st</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><u></u>

  
    
    
  
  <div bgcolor="#ffffff">
    On 8/24/2024 5:40 PM, Mark Volkmann via Cuis-dev wrote:
    <blockquote type="cite">
      <div dir="ltr">I have a class whose <font face="monospace">initialize</font>
        method creates a <font face="monospace">TextModelMorph</font>
        like this:
        <div><br>
        </div>
        <div><font face="monospace">textModelMorph := TextModelMorph<br>
                textProvider: self<br>
                textGetter: #text<br>
                textSetter: #text:.</font><br>
          <div><br>
          </div>
          <div>It has the following additional instance methods:</div>
          <div><br>
          </div>
          <div><font face="monospace">text<br>
                  ^ text<br>
            </font></div>
          <div><font face="monospace"><br>
            </font></div>
          <div><font face="monospace">text: aString<br>
                  text := aString.</font></div>
          <div><br>
          </div>
          <div>In addition to displaying the <font face="monospace">TextModelMorph</font>,
            it displays a button.</div>
          <div>When the button is clicked, it does this:</div>
          <div><br>
          </div>
          <div><font face="monospace">self text: 'test'.</font></div>
          <div><br>
          </div>
          <div>But the <font face="monospace">TextModelMorph</font>
            does not update to show the new value.</div>
          <div>I thought since I changed the "model", it would update.</div>
          <div>I tried lots of methods in <font face="monospace">TextModelMorph</font>,
            such as <font face="monospace">updateActualContents</font>,
            but nothing is working.</div>
          <div>What do I need to do to cause it to update when the value
            of the text instance variable changes?</div></div></div></blockquote>
    Hi Mark,<br>
    <br>
    I don't have access to your full example, so I can not try what I'll
    say. So take it just as a suggestion for further exploration.<br>
    <br>
    You need to do `self changed: #text.`. For an example, see senders
    of #classCommentText, especially in #newClassComment:. This is the
    changed: /update: dependency mechanism in action. According to MVC
    and the Observer pattern, models don't know about views, so they
    can't communicate directly. It is views, when created, that say 'I
    want to be notified when...'.<br></div></blockquote><div><br></div><div>Thanks so much for that tip! That almost does what I need. When I type a new value into the TextModelMorph, I get a popup that says "Caution! Contents were saved elsewhere since you started editing them here. Accept anyway?".</div><div><br></div><div>I attached a fileOut of my simple demo. To run this, enter 'TextEntryDemo new" and "Do it".</div><div>It displays a TextEntryMorph, a TextModelMorph, a LabelMorph, and a PluggableButtonMorph.</div><div><br></div><div>If you change the text in the TextEntryMorph and press the return key, the text in the TextModelMorph will update to match and the LabelMorph will update.</div><div>If you press the "Reset" button, the TextEntryMorph and TextModelMorph will go back to "World" and the LabelMorph will update.</div><div>If you change the text in the TextModelMorph by one character, the TextEntryMorph will update to match and the LabelMorph will update.</div><div>BUT ... if you change it by a second character, that "Caution" popup will appear. Why does that happen?</div></div><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div><font face="arial, helvetica, sans-serif">R. Mark Volkmann</font></div><div><span style="font-size:12.8px"><font face="arial, helvetica, sans-serif">Object Computing, Inc.</font></span></div></div></div></div></div></div></div></div></div>