<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        > <span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Did we ever document that '' implies "Cancel"?</span><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">It has been that way for FillInTheBlank for like forever. :-) All other dialogs return "nil" on cancel.</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">> Can't we just try to return nil and update all senders if necessary?</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Maybe, because we are at the beginning of a release cycle. But a quick look at the Trunk suggested at least 1-2 days of work to make that change work. And write tests for it, of course.</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br></span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Best,</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Marcel</span></div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 18.04.2020 15:52:33 schrieb Thiede, Christoph <christoph.thiede@student.hpi.uni-potsdam.de>:</p><div style="font-family:Arial,Helvetica,sans-serif">


<div dir="ltr">
<div id="x_divtagdefaultwrapper" dir="ltr" style="font-size: 12pt;color: #000000;font-family: Calibri,Helvetica,sans-serif">
<p>Hi Marcel,</p>
<p><br>
</p>
<p>> <span style="font-size: 12pt">For text requests, fall back to the most simple case so that ui managers do not have to implement all cases. For example, our DummyUIManager did forget one already and nobody noticed.</span></p>
<div><br>
</div>
<div>This is probably related to <span>The Inbox: ToolBuilder-Kernel-ct.135?</span></div>
<div><span><br>
</span></div>
<div><span>> </span><span style="font-size: 12pt">I suspect that it is not possible to return "nil" by default because there are many cases that rely on a string being return in any case.</span><span>
<div><br>
</div>
<div>Hm, but this still feels wrong. Did we ever document that '' implies "Cancel"? Can't we just try to return nil and update all senders if necessary? (It would probably better to do this refactoring together with UserNotification if we ever introduce this.
 I cannot find the link to the full discussion at the moment.)</div>
<div><br>
</div>
<div>Best,</div>
<div>Christoph</div>
</span></div>
<p>
<div id="x_Signature">
<div id="x_divtagdefaultwrapper" dir="ltr" style="font-size: 12pt;color: rgb(0,0,0);font-family: Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<div name="x_divtagdefaultwrapper" style="font-family: Calibri,Arial,Helvetica,sans-serif;font-size: ;margin: 0">
<div><span style="font-size: 10pt;color: #808080"></span></div>
</div>
</div>
</div>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><span style="font-family: Calibri, sans-serif;color: #000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von commits@source.squeak.org <commits@source.squeak.org><br>
<b>Gesendet:</b> Mittwoch, 15. April 2020 15:55:51<br>
<b>An:</b> squeak-dev@lists.squeakfoundation.org; packages@lists.squeakfoundation.org<br>
<b>Betreff:</b> [squeak-dev] The Trunk: ToolBuilder-Kernel-mt.138.mcz</span>
<div> </div>
</div>
</div>
<span style="font-size: 10pt"><span style="font-size: 10pt">
<div class="PlainText">Marcel Taeumel uploaded a new version of ToolBuilder-Kernel to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/ToolBuilder-Kernel-mt.138.mcz">http://source.squeak.org/trunk/ToolBuilder-Kernel-mt.138.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: ToolBuilder-Kernel-mt.138<br>
Author: mt<br>
Time: 15 April 2020, 3:55:51.006534 pm<br>
UUID: 8d0776ff-7711-a74c-ba35-ec3420f47184<br>
Ancestors: ToolBuilder-Kernel-mt.137<br>
<br>
For text requests, fall back to the most simple case so that ui managers do not have to implement all cases. For example, our DummyUIManager did forget one already and nobody noticed.<br>
<br>
Adds hook to specify the cancel answer so that applications can actually work with cancellation just like in the confirmation dialogs.<br>
<br>
I suspect that it is not possible to return "nil" by default because there are many cases that rely on a string being return in any case.<br>
<br>
=============== Diff against ToolBuilder-Kernel-mt.137 ===============<br>
<br>
Item was changed:<br>
  ----- Method: UIManager>>request:initialAnswer: (in category 'ui requests - text') -----<br>
  request: queryString initialAnswer: defaultAnswer <br>
+        "Create an instance of me whose question is queryString with the given initial answer. Answer the  string the user accepts. Answer the empty string if the user cancels."<br>
+        <br>
+        ^ self subclassResponsibility!<br>
-        "Create an instance of me whose question is queryString with the given <br>
-        initial answer. Invoke it centered at the given point, and answer the <br>
-        string the user accepts. Answer the empty string if the user cancels."<br>
-        ^self subclassResponsibility!<br>
<br>
Item was changed:<br>
  ----- Method: UIManager>>request:initialAnswer:centerAt: (in category 'ui requests - text') -----<br>
  request: queryString initialAnswer: defaultAnswer centerAt: aPoint <br>
+        "Create an instance of me whose question is queryString with the given initial answer. Invoke it centered at the given point, and answer the    string the user accepts. Answer the empty string if the user cancels."<br>
-        "Create an instance of me whose question is queryString with the given<br>
-        initial answer. Invoke it centered at the given point, and answer the<br>
-        string the user accepts. Answer the empty string if the user cancels."<br>
  <br>
+        ^ self request: queryString initialAnswer: defaultAnswer!<br>
-        ^self subclassResponsibility!<br>
<br>
Item was added:<br>
+ ----- Method: UIManager>>request:initialAnswer:onCancelReturn: (in category 'ui requests - text') -----<br>
+ request: queryString initialAnswer: defaultAnswer onCancelReturn: cancelResponse<br>
+        "Create an instance of me whose question is queryString with the given initial answer. Answer the string the user accepts. Answer cancelResponse if the user cancels."<br>
+ <br>
+        ^ self request: queryString initialAnswer: defaultAnswer!<br>
<br>
<br>
</div>
</span></span>
</div></blockquote>
                                        </div></body>