Skip to content

Commit c676613

Browse files
committed
DRY #connectPresenters
1 parent 18630c8 commit c676613

File tree

2 files changed

+23
-27
lines changed

2 files changed

+23
-27
lines changed

src/CodeOfSpec20Book/MailClientPresenter.class.st

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,7 @@ Class {
1818
{ #category : 'initialization' }
1919
MailClientPresenter >> connectPresenters [
2020

21-
account whenSelectionChangedDo: [
22-
| selectedEmail |
23-
editedEmail := nil.
24-
account hasSelectedEmail
25-
ifTrue: [
26-
selectedEmail := account selectedItem.
27-
selectedEmail isDraft
28-
ifTrue: [ editedEmail := selectedEmail].
29-
reader updateLayoutForEmail: selectedEmail ]
30-
ifFalse: [ reader updateLayoutForNoEmail ] ]
21+
account whenSelectionChangedDo: [ self folderOrEmailSelectionChanged ]
3122
]
3223

3324
{ #category : 'layout' }
@@ -44,6 +35,20 @@ MailClientPresenter >> defaultLayout [
4435
yourself
4536
]
4637

38+
{ #category : 'private' }
39+
MailClientPresenter >> folderOrEmailSelectionChanged [
40+
41+
| selectedEmail |
42+
editedEmail := nil.
43+
account hasSelectedEmail
44+
ifTrue: [
45+
selectedEmail := account selectedItem.
46+
selectedEmail isDraft
47+
ifTrue: [ editedEmail := selectedEmail].
48+
reader updateLayoutForEmail: selectedEmail ]
49+
ifFalse: [ reader updateLayoutForNoEmail ]
50+
]
51+
4752
{ #category : 'initialization' }
4853
MailClientPresenter >> initializePresenters [
4954

src/CodeOfSpec20Book/MailClientPresenterWithDecorations.class.st

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -30,23 +30,6 @@ MailClientPresenterWithDecorations >> accountMenu [
3030
yourself
3131
]
3232

33-
{ #category : 'nil' }
34-
MailClientPresenterWithDecorations >> connectPresenters [
35-
36-
account whenSelectionChangedDo: [
37-
| selectedEmail |
38-
editedEmail := nil.
39-
account hasSelectedEmail
40-
ifTrue: [
41-
selectedEmail := account selectedItem.
42-
selectedEmail isDraft
43-
ifTrue: [ editedEmail := selectedEmail].
44-
reader updateLayoutForEmail: selectedEmail ]
45-
ifFalse: [ reader updateLayoutForNoEmail ].
46-
self updateToolBarButtons.
47-
statusBar popMessage ]
48-
]
49-
5033
{ #category : 'actions' }
5134
MailClientPresenterWithDecorations >> deleteMail [
5235

@@ -63,6 +46,14 @@ MailClientPresenterWithDecorations >> fetchMail [
6346
statusBar pushMessage: 'Mail fetched.'
6447
]
6548

49+
{ #category : 'private' }
50+
MailClientPresenterWithDecorations >> folderOrEmailSelectionChanged [
51+
52+
super folderOrEmailSelectionChanged.
53+
self updateToolBarButtons.
54+
statusBar popMessage
55+
]
56+
6657
{ #category : 'private' }
6758
MailClientPresenterWithDecorations >> formatMenu [
6859

0 commit comments

Comments
 (0)