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

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


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.

        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/76d129b0/attachment.html>


More information about the Squeak-dev mailing list