<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p>Hi Marcel,</p>
<p><br>
</p>
<p>is duplication really desirable anywhere?</p>
<p><br>
</p>
<p>Hm ... ideally, I would love to rewrite such methods like this:</p>
<p><br>
</p>
<p>^ aSymbol</p>
<p>    caseOf: {</p>
<p>        [<span style="font-size: 12pt;">#wantToChange] -> </span><span style="font-size: 12pt;">[</span></p>
<p><span style="font-size: 12pt;">            self canDiscardEdits ifFalse: [self promptForCancel]</span><span style="font-size: 12pt;">].</span></p>
<div>        [#<span style="font-size: 12pt;">flash] -> [controller flash].</span>
<div>        [<span>getTextSelector] -> [self updateDisplayContents].</span></div>
</div>
<div><span>        "..."</span></div>
<div><span><b>        {[</b></span><span style="font-size: 12pt;"><b>#appendEntry]. [#appendEntryLater]} -> [</b></span><span>
<div><span style="font-size: 12pt;">            controller doOccluded: [controller appendEntry]].</span><br>
</div>
<div><span style="font-size: 12pt;">        "..." }</span></div>
<div><span style="font-size: 12pt;">    otherwise: [super update: aSymbol]</span></div>
<div><span style="font-size: 12pt;"><br>
</span></div>
<div><span style="font-size: 12pt;">How would you think about such an extension to #caseOf:, accepting a list of cases, too? Would this be too meta? :-)</span></div>
<div><span style="font-size: 12pt;"><br>
</span></div>
<div><span style="font-size: 12pt;">Best,</span></div>
<div><span style="font-size: 12pt;">Christoph</span></div>
</span></div>
<div id="Signature">
<div id="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="divtagdefaultwrapper" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:; margin:0">
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel<br>
<b>Gesendet:</b> Montag, 8. Juni 2020 07:19:16<br>
<b>An:</b> squeak-dev<br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: ST80-ct.255.mcz</font>
<div> </div>
</div>
<div>
<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
Hi Christoph.
<div><br>
</div>
<div>Thanks. Given the overall style of this method, I would have rather duplicated those #appendEntry lines instead of using #includes:.</div>
<div><br>
</div>
<div>Best,</div>
<div>Marcel</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 06.06.2020 15:48:26 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">Christoph Thiede uploaded a new version of ST80 to project The Inbox:<br>
http://source.squeak.org/inbox/ST80-ct.255.mcz<br>
<br>
==================== Summary ====================<br>
<br>
Name: ST80-ct.255<br>
Author: ct<br>
Time: 6 June 2020, 3:48:16.215278 pm<br>
UUID: 5469be3e-28ef-c54e-952c-674500374c05<br>
Ancestors: ST80-nice.254<br>
<br>
Fix Transcript in MVC projects if preference 'Force transcript updates to screen' is disabled.<br>
<br>
Thanks to Marcel (mt) for the hint!<br>
<br>
=============== Diff against ST80-nice.254 ===============<br>
<br>
Item was changed:<br>
----- Method: PluggableTextView>>update: (in category 'updating') -----<br>
update: aSymbol<br>
"Refer to the comment in View|update:. Do nothing if the given symbol does not match any action. "<br>
<br>
aSymbol == #wantToChange ifTrue:<br>
[self canDiscardEdits ifFalse: [self promptForCancel]. ^ self].<br>
aSymbol == #flash ifTrue: [^ controller flash].<br>
aSymbol == getTextSelector ifTrue: [^ self updateDisplayContents].<br>
aSymbol == getSelectionSelector ifTrue: [^ self setSelection: self getSelection].<br>
aSymbol == #clearUserEdits ifTrue: [^ self hasUnacceptedEdits: false].<br>
(aSymbol == #autoSelect and: [getSelectionSelector ~~ nil]) ifTrue:<br>
[ParagraphEditor abandonChangeText. "no replacement!!"<br>
^ controller setSearch: model autoSelectString;<br>
againOrSame: true].<br>
+ (#(#appendEntry appendEntryLater) includes: aSymbol) ifTrue:<br>
- aSymbol == #appendEntry ifTrue:<br>
[^ controller doOccluded: [controller appendEntry]].<br>
aSymbol == #clearText ifTrue:<br>
[^ controller doOccluded:<br>
[controller changeText: Text new]].<br>
aSymbol == #bs ifTrue:<br>
[^ controller doOccluded:<br>
[controller bsText]].<br>
aSymbol == #codeChangedElsewhere ifTrue:<br>
[^ self hasEditingConflicts: true].<br>
aSymbol == #saveContents ifTrue:<br>
[^self controller saveContentsInFile].<br>
aSymbol == #close ifTrue:<br>
[^self topView controller closeAndUnscheduleNoTerminate].<br>
aSymbol == #acceptChanges ifTrue:<br>
[^ self controller accept].<br>
aSymbol == #revertChanges ifTrue:<br>
[^ self controller cancel].!<br>
<br>
<br>
</div>
</blockquote>
</div>
</div>
</body>
</html>