-
Notifications
You must be signed in to change notification settings - Fork 1
/
SchuelerverwaltungController.cs
115 lines (98 loc) · 2.89 KB
/
SchuelerverwaltungController.cs
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
using BrightIdeasSoftware;
using System;
using System.Collections;
using System.Windows.Forms;
namespace diNo
{
public class SchuelerverwaltungController
{
public static DateTime NullDate = new DateTimePicker().MinDate;
private Action refreshFunc;
public SchuelerverwaltungController(Action aRefreshFunc)
{
this.refreshFunc = aRefreshFunc;
}
public static string GetDisplayValueForDate(object value)
{
if ((DateTime)value == NullDate)
{
return string.Empty;
}
else
{
return ((DateTime)value).ToString("dd.MM.yyyy");
}
}
#region Drag and Drop
public void treeListView1_ModelCanDrop(object sender, ModelDropEventArgs e)
{
e.Handled = true;
e.Effect = DragDropEffects.None;
Klasse targetKlasse = GetDragTargetKlasse(e);
if (targetKlasse == null)
{
e.InfoMessage = "Ziel konnte nicht erkannt werden.";
return;
}
Schueler derSchueler = GetDraggedSchueler(e.SourceModels);
if (derSchueler == null)
{
e.InfoMessage = "Nur Schülerzeilen können in eine andere Klasse verschoben werden.";
return;
}
else
{
e.Effect = DragDropEffects.Move;
}
}
public static Klasse GetDragTargetKlasse(ModelDropEventArgs e)
{
Klasse targetKlasse = e.TargetModel as Klasse;
if (targetKlasse == null)
{
Schueler targetSchueler = e.TargetModel as Schueler;
if (targetSchueler != null)
{
targetKlasse = targetSchueler.getKlasse;
}
}
return targetKlasse;
}
public static Schueler GetDraggedSchueler(IList draggedSourceModels)
{
foreach (var obj in draggedSourceModels)
{
Schueler schueler = obj as Schueler;
if (schueler != null)
{
return schueler;
}
}
return null;
}
public void treeListView1_ModelDropped(object sender, ModelDropEventArgs e)
{
Schueler derSchueler = GetDraggedSchueler(e.SourceModels);
Klasse targetKlasse = GetDragTargetKlasse(e);
var questionResult = MessageBox.Show("Soll der Schüler " + derSchueler.NameVorname + " von der " + derSchueler.getKlasse.Bezeichnung + " in die " + targetKlasse.Bezeichnung + " verschoben werden?", "Nachfrage", MessageBoxButtons.YesNo);
if (questionResult == DialogResult.Yes)
{
derSchueler.WechsleKlasse(targetKlasse);
if (this.refreshFunc != null)
{
this.refreshFunc();
}
}
else
{
e.Effect = DragDropEffects.None;
}
}
#endregion
public static void InitDateTimePicker(DateTimePicker picker)
{
picker.Format = DateTimePickerFormat.Custom;
picker.ValueChanged += (s, eventArgs) => { picker.CustomFormat = (picker.Checked && picker.Value != picker.MinDate) ? "dd.MM.yyyy" : " "; };
}
}
}