[squeak-dev] The Trunk: Network-pre.207.mcz

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Sat Dec 2 21:07:52 UTC 2017


2017-12-02 21:37 GMT+01:00 Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com>:

> Hi Patrick,
>
> 2017-11-10 16:40 GMT+01:00 <commits at source.squeak.org>:
>
>> Patrick Rein uploaded a new version of Network to project The Trunk:
>> http://source.squeak.org/trunk/Network-pre.207.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Network-pre.207
>> Author: pre
>> Time: 10 November 2017, 4:40:14.388812 pm
>> UUID: 85f492c1-3470-bb43-afe5-bea036995824
>> Ancestors: Network-pre.206
>>
>> A new MailComposition window allowing a more structured access to the
>> underlying mail message.
>>
>> =============== Diff against Network-pre.206 ===============
>>
>> Item was changed:
>>   Model subclass: #MailComposition
>> +       instanceVariableNames: 'mailMessage'
>> -       instanceVariableNames: 'messageText textEditor morphicWindow
>> mvcWindow'
>>
>
> It seems that the methods using this instance variables have not been
> removed.
> See Undeclared.
>
>
It appears to be morphicOpen and mvcOpen...
I think they are obsolete because you now use ToolBuider, so I removed them.

        classVariableNames: ''
>>         poolDictionaries: ''
>>         category: 'Network-MailSending'!
>>
>> + !MailComposition commentStamp: 'pre 5/16/2017 20:00' prior: 0!
>> + a message being composed in a fancy way. The mail is send via the
>> registered MailSender by default. Fields do not have to be saved, they are
>> saved automatically on send. !
>> - !MailComposition commentStamp: '<historical>' prior: 0!
>> - a message being composed.  When finished, it will be submitted via a
>> Celeste.!
>>
>> Item was changed:
>> + ----- Method: MailComposition class>>initialize (in category 'class
>> initialization') -----
>> - ----- Method: MailComposition class>>initialize (in category 'instance
>> creation') -----
>>   initialize
>> +
>> +       MailSender register: self !
>> -       super initialize.
>>
>
> Even if super initialize does not do anything, it does not hurt to leave
> it as is IMO.
>
> -       MailSender register: self.!
>>
>> Item was added:
>> + ----- Method: MailComposition class>>open (in category 'opening') -----
>> + open
>> +
>> +       ^ ToolBuilder default open: self!
>>
>> Item was added:
>> + ----- Method: MailComposition class>>openOn: (in category 'opening')
>> -----
>> + openOn: aMessage
>> +
>> +       ^ ToolBuilder default open: (self new on: aMessage; yourself)!
>>
>> Item was changed:
>> + ----- Method: MailComposition class>>sendMailMessage: (in category
>> 'MailSender interface') -----
>> + sendMailMessage: aMessage
>> +
>> +       self openOn: aMessage!
>> - ----- Method: MailComposition class>>sendMailMessage: (in category
>> 'instance creation') -----
>> - sendMailMessage: aMailMessage
>> -       | newComposition |
>> -       newComposition := self new.
>> -       newComposition messageText: aMailMessage text; open!
>>
>> Item was changed:
>> + ----- Method: MailComposition class>>unload (in category
>> 'initialize-release') -----
>> - ----- Method: MailComposition class>>unload (in category 'instance
>> creation') -----
>>   unload
>>
>>         MailSender unregister: self !
>>
>> Item was added:
>> + ----- Method: MailComposition>>addAttachment (in category 'actions')
>> -----
>> + addAttachment
>> +       | file fileResult fileName |
>> +
>> +       self saveFields.
>> +
>> +       (fileResult := StandardFileMenu oldFile)
>> +               ifNotNil:
>> +                       [fileName := fileResult directory fullNameFor:
>> fileResult name.
>> +                       file := FileStream readOnlyFileNamed: fileName.
>> +                       file ifNotNil:
>> +                               [file binary.
>> +                               mailMessage addAttachmentFrom: file
>> withName: fileResult name.
>> +                               file close.
>> +                               self changed: #messageText]] !
>>
>> Item was added:
>> + ----- Method: MailComposition>>addAttachmentButtonLabel (in category
>> 'ui constants') -----
>> + addAttachmentButtonLabel
>> +
>> +       ^ 'add attachment' translated!
>>
>> Item was added:
>> + ----- Method: MailComposition>>bccLabel (in category 'ui constants')
>> -----
>> + bccLabel
>> +
>> +       ^ 'BCC' translated!
>>
>> Item was added:
>> + ----- Method: MailComposition>>buildButtonBarSpecWith: (in category
>> 'toolbuilder') -----
>> + buildButtonBarSpecWith: aBuilder
>> +
>> +       | buttonBarSpec |
>> +       buttonBarSpec := aBuilder pluggablePanelSpec new
>> +               children: OrderedCollection new;
>> +               layout: #horizontal;
>> +               frame: (LayoutFrame new
>> +                       leftFraction: 0 offset: 0;
>> +                       topFraction: 0 offset: 0;
>> +                       rightFraction: 1 offset: 0;
>> +                       bottomFraction: 0 offset: self buttonBarHeight);
>> +               yourself.
>> +
>> +       buttonBarSpec children add: (aBuilder pluggableButtonSpec new
>> +               model: self;
>> +               action: #sendMail;
>> +               label: #sendMailButtonLabel;
>> +               yourself).
>> +
>> +       buttonBarSpec children add: (aBuilder pluggableButtonSpec new
>> +               model: self;
>> +               action: #addAttachment;
>> +               label: #addAttachmentButtonLabel;
>> +               yourself).
>> +
>> +       buttonBarSpec children add: (aBuilder pluggableButtonSpec new
>> +               model: self;
>> +               action: #removeAttachment;
>> +               label: #removeAttachmentButtonLabel;
>> +               yourself).
>> +
>> +       ^ buttonBarSpec!
>>
>> Item was added:
>> + ----- Method: MailComposition>>buildWith: (in category 'toolbuilder')
>> -----
>> + buildWith: aBuilder
>> +
>> +       | windowSpec detailsPanelSpec textSpec |
>> +
>> +       windowSpec := aBuilder pluggableWindowSpec new
>> +               model: self;
>> +               label: self dialogTitle;
>> +               children: OrderedCollection new.
>> +
>> +       windowSpec children add: (self buildButtonBarSpecWith: aBuilder).
>> +
>> +       detailsPanelSpec := aBuilder pluggablePanelSpec new
>> +               children: OrderedCollection new;
>> +               layout: #vertical;
>> +               yourself.
>> +       windowSpec children add: detailsPanelSpec.
>> +
>> +       self createDetailsFieldsIn: detailsPanelSpec by: aBuilder.
>> +
>> +       detailsPanelSpec children: detailsPanelSpec children reversed.
>> +       detailsPanelSpec frame: (LayoutFrame new
>> +                       leftFraction: 0 offset: 0;
>> +                       topFraction: 0 offset: self buttonBarHeight;
>> +                       rightFraction: 1 offset: 0;
>> +                       bottomFraction: 0 offset: self buttonBarHeight +
>> (detailsPanelSpec children size * self lineHeight)).
>> +
>> +       textSpec := aBuilder pluggableTextSpec new
>> +               model: self;
>> +               indicateUnacceptedChanges: true;
>> +               getText: #messageText;
>> +               setText: #messageText:;
>> +               frame: (LayoutFrame new
>> +                       leftFraction: 0 offset: 0;
>> +                       topFraction: 0 offset: self buttonBarHeight +
>> (detailsPanelSpec children size * self lineHeight);
>> +                       rightFraction: 1 offset: 0;
>> +                       bottomFraction: 1 offset: 0);
>> +               yourself.
>> +       windowSpec children add: textSpec.
>> +
>> +       ^ aBuilder build: windowSpec!
>>
>> Item was added:
>> + ----- Method: MailComposition>>buttonBarHeight (in category 'ui
>> constants') -----
>> + buttonBarHeight
>> +
>> +       ^ 25 "pixel"!
>>
>> Item was added:
>> + ----- Method: MailComposition>>ccLabel (in category 'ui constants')
>> -----
>> + ccLabel
>> +
>> +       ^ 'CC' translated!
>>
>> Item was added:
>> + ----- Method: MailComposition>>createDetailsFieldsIn:by: (in category
>> 'toolbuilder') -----
>> + createDetailsFieldsIn: detailsPanelSpec by: aBuilder
>> +
>> +    #((senderLabel messageSender messageSender:)
>> +       (recipientLabel messageRecipient messageRecipient:)
>> +       (ccLabel messageCC messageCC:)
>> +       (bccLabel messageBCC messageBCC:)
>> +       (subjectLabel messageSubject messageSubject:))
>> +               do: [:config | detailsPanelSpec children add:
>> +                               (self createFieldInputNamed: config first
>> +                                       getter: config second
>> +                                       setter: config third
>> +                                       with: aBuilder)]
>> +       !
>>
>> Item was added:
>> + ----- Method: MailComposition>>createFieldInputNamed:getter:setter:with:
>> (in category 'toolbuilder') -----
>> + createFieldInputNamed: fieldLabelGetter getter: fieldGetter setter:
>> fieldSetter with: aBuilder
>> +
>> +       ^ aBuilder pluggableInputFieldSpec new
>> +               model: self;
>> +               indicateUnacceptedChanges: false;
>> +               getText: fieldGetter;
>> +               setText: fieldSetter;
>> +               frame: (LayoutFrame new
>> +                       leftFraction: 0 offset: 0;
>> +                       topFraction: 0 offset: 0;
>> +                       rightFraction: 1 offset: 0;
>> +                       bottomFraction: 0 offset: self lineHeight);
>> +               help: fieldLabelGetter;
>> +               yourself!
>>
>> Item was added:
>> + ----- Method: MailComposition>>dialogTitle (in category 'toolbuilder')
>> -----
>> + dialogTitle
>> +
>> +       ^ 'mail editor' translated!
>>
>> Item was added:
>> + ----- Method: MailComposition>>doSendMail (in category 'private') -----
>> + doSendMail
>> +
>> +       (SMTPClient openOnHostNamed: self smtpServer port: self
>> smtpServerPort)
>> +               user: self smtpUser;
>> +               password: self smtpPassword;
>> +               login;
>> +               mailFrom: mailMessage from to: (mailMessage to
>> findTokens: ',') text: mailMessage asSendableText.!
>>
>> Item was added:
>> + ----- Method: MailComposition>>initialize (in category
>> 'initialize-release') -----
>> + initialize
>> +
>> +       mailMessage := MailMessage empty!
>>
>> Item was added:
>> + ----- Method: MailComposition>>lineHeight (in category 'ui constants')
>> -----
>> + lineHeight
>> +
>> +       ^ 25 "pixel"!
>>
>> Item was added:
>> + ----- Method: MailComposition>>messageBCC (in category 'access to mail
>> object') -----
>> + messageBCC
>> +
>> +       ^ mailMessage bcc!
>>
>> Item was added:
>> + ----- Method: MailComposition>>messageBCC: (in category 'access to mail
>> object') -----
>> + messageBCC: emailAddresses
>> +
>> +       self flag: #TODO. "add validation"
>> +       mailMessage bcc: emailAddresses asString.
>> +       ^ true!
>>
>> Item was added:
>> + ----- Method: MailComposition>>messageCC (in category 'access to mail
>> object') -----
>> + messageCC
>> +
>> +       ^ mailMessage cc!
>>
>> Item was added:
>> + ----- Method: MailComposition>>messageCC: (in category 'access to mail
>> object') -----
>> + messageCC: emailAddresses
>> +
>> +       self flag: #TODO. "add validation"
>> +       mailMessage cc: emailAddresses asString.
>> +       ^ true!
>>
>> Item was added:
>> + ----- Method: MailComposition>>messageRecipient (in category 'access
>> to mail object') -----
>> + messageRecipient
>> +
>> +       ^ mailMessage to!
>>
>> Item was added:
>> + ----- Method: MailComposition>>messageRecipient: (in category 'access
>> to mail object') -----
>> + messageRecipient: emailAddresses
>> +
>> +       self flag: #TODO. "add validation"
>> +       mailMessage to: emailAddresses asString.
>> +       ^ true!
>>
>> Item was added:
>> + ----- Method: MailComposition>>messageSender (in category 'access to
>> mail object') -----
>> + messageSender
>> +
>> +       ^ mailMessage from!
>>
>> Item was added:
>> + ----- Method: MailComposition>>messageSender: (in category 'access to
>> mail object') -----
>> + messageSender: emailAddress
>> +
>> +       self flag: #TODO. "add validation"
>> +       mailMessage from: emailAddress asString.
>> +       ^ true!
>>
>> Item was added:
>> + ----- Method: MailComposition>>messageSubject (in category 'access to
>> mail object') -----
>> + messageSubject
>> +
>> +       ^ mailMessage subject!
>>
>> Item was added:
>> + ----- Method: MailComposition>>messageSubject: (in category 'access to
>> mail object') -----
>> + messageSubject: aSubject
>> +
>> +       self flag: #TODO. "add validation"
>> +       mailMessage subject: aSubject asString.
>> +       ^ true!
>>
>> Item was changed:
>> + ----- Method: MailComposition>>messageText (in category 'access to mail
>> object') -----
>> - ----- Method: MailComposition>>messageText (in category 'access') -----
>>   messageText
>> +
>> +       ^ mailMessage bodyTextFormatted!
>> -       "return the current text"
>> -       ^messageText.
>> - !
>>
>> Item was changed:
>> + ----- Method: MailComposition>>messageText: (in category 'access to
>> mail object') -----
>> - ----- Method: MailComposition>>messageText: (in category 'access') -----
>>   messageText: aText
>> +
>> +       mailMessage body: ((MIMEDocument
>> +               contentType: MIMEDocument contentTypePlainText
>> +               content: aText asString)
>> +                       charset: 'UTF-8';
>> +                       yourself).
>> +       ^ true!
>> -       "change the current text"
>> -       messageText := aText.
>> -       self changed: #messageText.
>> -       ^true!
>>
>> Item was added:
>> + ----- Method: MailComposition>>on: (in category 'initialize-release')
>> -----
>> + on: aMessage
>> +
>> +       mailMessage := aMessage!
>>
>> Item was added:
>> + ----- Method: MailComposition>>recipientLabel (in category 'ui
>> constants') -----
>> + recipientLabel
>> +
>> +       ^ 'Recipients' translated!
>>
>> Item was added:
>> + ----- Method: MailComposition>>removeAttachment (in category
>> 'actions') -----
>> + removeAttachment
>> +
>> +       | attachmentToBeRemoved |
>> +
>> +       self saveFields.
>> +       attachmentToBeRemoved := UIManager default
>> +               chooseFrom: (mailMessage attachments collect: [:m | m
>> attachmentFileName ])
>> +               values: mailMessage attachments
>> +               title: 'Choose attachment to be removed' translated.
>> +       mailMessage removeAttachment: attachmentToBeRemoved.
>> +       self changed: #messageText.!
>>
>> Item was added:
>> + ----- Method: MailComposition>>removeAttachmentButtonLabel (in
>> category 'ui constants') -----
>> + removeAttachmentButtonLabel
>> +
>> +       ^ 'remove attachment' translated!
>>
>> Item was added:
>> + ----- Method: MailComposition>>saveFields (in category 'private') -----
>> + saveFields
>> +
>> +       (self dependents select: [:d | d hasUnacceptedEdits]) do: [:d | d
>> accept].!
>>
>> Item was added:
>> + ----- Method: MailComposition>>sendMail (in category 'actions') -----
>> + sendMail
>> +
>> +       self saveFields.
>> +
>> +       [self doSendMail.
>> +       Project current addDeferredUIMessage: [self changed: #close]]
>> +               forkAt: 30!
>>
>> Item was added:
>> + ----- Method: MailComposition>>sendMailButtonLabel (in category 'ui
>> constants') -----
>> + sendMailButtonLabel
>> +
>> +       ^ 'send mail' translated!
>>
>> Item was added:
>> + ----- Method: MailComposition>>senderLabel (in category 'ui constants')
>> -----
>> + senderLabel
>> +
>> +       ^ 'Sender' translated!
>>
>> Item was added:
>> + ----- Method: MailComposition>>smtpPassword (in category 'MailSender
>> interface') -----
>> + smtpPassword
>> +
>> +       ^ MailSender userPassword!
>>
>> Item was changed:
>> + ----- Method: MailComposition>>smtpServer (in category 'MailSender
>> interface') -----
>> - ----- Method: MailComposition>>smtpServer (in category 'access') -----
>>   smtpServer
>> +
>> +       ^ MailSender smtpServer!
>> -       ^MailSender smtpServer!
>>
>> Item was added:
>> + ----- Method: MailComposition>>smtpServerPort (in category 'MailSender
>> interface') -----
>> + smtpServerPort
>> +
>> +       ^ MailSender smtpServerPort!
>>
>> Item was added:
>> + ----- Method: MailComposition>>smtpUser (in category 'MailSender
>> interface') -----
>> + smtpUser
>> +
>> +       ^ MailSender userName!
>>
>> Item was added:
>> + ----- Method: MailComposition>>subjectLabel (in category 'ui
>> constants') -----
>> + subjectLabel
>> +
>> +       ^ 'Subject' translated!
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20171202/d4945e82/attachment-0001.html>


More information about the Squeak-dev mailing list