master
1using System;
2using System.Windows;
3using System.Windows.Media;
4using MVPtoMVVM.mvp.presenters;
5using MVPtoMVVM.mvp.views;
6
7namespace MVPtoMVVM.mvp
8{
9 public partial class TodoItemView : ITodoItemView
10 {
11 private readonly IMvpPresenter parent;
12 private Brush defaultBorderBrush;
13 private Thickness defaultBorderThickness;
14
15 public TodoItemView(ITodoItemPresenter presenter, IMvpPresenter parent)
16 {
17 this.parent = parent;
18 Presenter = presenter;
19 InitializeComponent();
20 saveButton.Click += (o, e) => presenter.SaveItem();
21 deleteButton.Click += (o, e) => presenter.DeleteItem();
22 description.TextChanged += (o, e) => presenter.Description = description.Text;
23 dueDate.SelectedDateChanged += (o, e) => presenter.DueDate = dueDate.SelectedDate.Value;
24 defaultBorderBrush = description.BorderBrush;
25 defaultBorderThickness = description.BorderThickness;
26 presenter.SetView(this);
27 }
28
29 public int Id{ get; set; }
30
31 public string Description
32 {
33 get { return description.Text; }
34 set { description.Text = value; }
35 }
36
37 public DateTime DueDate
38 {
39 get { return dueDate.SelectedDate.Value; }
40 set { dueDate.SelectedDate = value; }
41 }
42
43 public bool SaveButtonEnabled
44 {
45 get { return saveButton.IsEnabled; }
46 set { saveButton.IsEnabled = value; }
47 }
48
49 public ITodoItemPresenter Presenter { get; private set; }
50
51 public bool DescriptionHasValidationErrors
52 {
53 set
54 {
55 if (value)
56 {
57 description.BorderBrush = Brushes.Red;
58 description.BorderThickness = new Thickness(2);
59 }
60 else
61 {
62 description.BorderBrush = defaultBorderBrush;
63 description.BorderThickness = defaultBorderThickness;
64 }
65 }
66 }
67
68 public bool DueDateHasValidationErrors
69 {
70 set
71 {
72 if (value)
73 {
74 dueDate.BorderBrush = Brushes.Red;
75 dueDate.BorderThickness = new Thickness(2);
76 }
77 else
78 {
79 dueDate.BorderBrush = defaultBorderBrush;
80 dueDate.BorderThickness = defaultBorderThickness;
81 }
82 }
83 }
84
85 public bool IsDueSoon
86 {
87 set { dueSoonAlert.Visibility = value ? Visibility.Visible : Visibility.Hidden; }
88 }
89
90 public string DescriptionValidationMessage
91 {
92 set { description.ToolTip = value; }
93 }
94
95 public string DueDateValidationMessage
96 {
97 set { dueDate.ToolTip = value; }
98 }
99
100 public void Remove(int itemId)
101 {
102 parent.Remove(itemId);
103 }
104 }
105}