-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathViewModel.py
More file actions
132 lines (108 loc) · 3.69 KB
/
Copy pathViewModel.py
File metadata and controls
132 lines (108 loc) · 3.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/usr/bin/env python
# Written by: DGC
# the view model
import Model
from MVVM import NotifyPropertyChanged
#==============================================================================
class EmailViewModel(NotifyPropertyChanged):
#
# History
# When What
# -------- ----------------------------------------------------------------
# 29/05/12 Written.
#--------------------------------------------------------------------------
def __init__(self, model):
self.model = model
# check if Labels bind properly. They do!
self._recipient_label = "To"
@property
def server(self):
"""Server property."""
return self.model.server
@server.setter
def server(self, value):
"""Server property setter."""
self.model.server = value
self.on_property_changed("server")
@property
def email(self):
"""Email property."""
return self.model.email
@email.setter
def email(self, value):
"""Server property setter."""
self.model.email = value
self.on_property_changed("email")
@property
def recipient(self):
"""Recipient property."""
return self.model.recipient
@recipient.setter
def recipient(self, value):
"""Server property setter."""
self.model.recipient = value
self.on_property_changed("recipient")
@property
def username(self):
"""Username property."""
return self.model.username
@username.setter
def username(self, value):
"""Server property setter."""
self.model.username = value
self.on_property_changed("username")
@property
def password(self):
"""Password property."""
return self.model.password
@password.setter
def password(self, value):
"""Server property setter."""
self.model.password = value
self.on_property_changed("password")
@property
def authentification(self):
"""Authentification property."""
return self.model.authenticate
@authentification.setter
def authentification(self, value):
"""Server property setter."""
self.model.authenticate = value
self.on_property_changed("authentification")
@property
def recipient_label(self):
"""Recipient property."""
return self._recipient_label
@recipient_label.setter
def recipient_label(self, value):
"""Server property setter."""
self._recipient_label = value
self.on_property_changed("recipient_label")
def error(self):
"""Error property."""
return self.model.error()
def send(self, message):
"""Returns an error if not sent for any reason"""
message = self.model.send(message)
# everything changed
self.on_property_changed("")
return message
def on_property_changed(self, property_name):
self.property_changed(property_name)
#==============================================================================
if (__name__ == "__main__"):
#
# History
# When What
# -------- ----------------------------------------------------------------
# 29/05/12 Written.
#--------------------------------------------------------------------------
# a small test to check the view model still works. This is manual as it
# needs checking if the email arrives ok.
model = Model.Email()
sender = EmailViewModel(model)
sender.server = "pat.delcam.com"
sender.recipient = "davidcorne@gmail.com"
sender.email = "dgc@delcam.com"
if (not sender.send("View Model Class test 1")):
print(sender.error())