Thoscellen c66626ff3a init
2020-05-16 17:38:46 +02:00

241 lines
9.2 KiB
VB.net

Imports ApplicationCrèche_1.IDFormMode
Public Class FormParentID
Inherits FormID
' ----- Private Attributes -----
Private actualFormMode As IDFormMode
' ----- Initialisators -----
Private Sub FormParentID_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
End Sub
Public Sub New(theFormMode As IDFormMode, Optional aParent As Parent = Nothing)
Console.WriteLine("FormParentID : Begining of a new instance")
' Cet appel est requis par le concepteur.
InitializeComponent()
' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
If theFormMode = CREATOR Or aParent Is Nothing Then
ChangeMode(CREATOR)
Else
ChangeMode(theFormMode, aParent)
End If
End Sub
' ----- Methodes -----
Private Function getParentFromIntern() As Parent
Dim newParent = New Parent(Me.Tag)
newParent.firstname = TBFirstName.Text
newParent.lastname = TBLastName.Text
newParent.address = TBAddress.Text
If (RBMale.Checked) Then
newParent.gender = True
Else
newParent.gender = False
End If
newParent.phone = TBPhone.Text
Return newParent
End Function
Private Function updateParentFromExtern(aParent As Parent) As Boolean
If Not aParent Is Nothing Then
' Fill up controls with all the data we have.
Me.Tag = aParent.id
TBFirstName.Text = aParent.firstname 'Firstname
TBLastName.Text = aParent.lastname 'Lastname
If aParent.gender Then 'Gender
RBMale.Checked = True
Else
RBFemale.Checked = True
End If
TBPhone.Text = aParent.phone
TBAddress.Text = aParent.address
FillListView(aParent.id)
If ListView.Items.Count > 1 Then Label5.Text = "Children" Else Label5.Text = "Child"
If (actualFormMode = VIEWER) Then
Text = aParent.firstname + " " + aParent.lastname
Else
Text = aParent.firstname + " " + aParent.lastname + " (Edit)"
End If
Return True
End If
Return False
End Function
Private Sub ChangeMode(aFormMode As IDFormMode, Optional aParent As Parent = Nothing)
If aFormMode = IDFormMode.CREATOR Then ' CREATOR MODE
actualFormMode = CREATOR
Console.WriteLine("FormParentID : Switch to CREATOR Mode")
'Change of the main triggers labels + title
Text = "New parent"
ButtonClose.Text = "Cancel"
ButtonEdit.Text = "Save"
RBMale.Checked = True
ListView.Enabled = False
Label5.Text = ""
Me.Tag = 0
ElseIf aFormMode = IDFormMode.VIEWER And Not aParent Is Nothing Then ' VIEW MODE
actualFormMode = VIEWER
Console.WriteLine("FormParentID : Switch to VIEWER Mode")
'We change the main triggers labels
ButtonClose.Text = "Close"
ButtonEdit.Text = "Edit"
Text = TBFirstName.Text + " " + TBLastName.Text + " (Edit)"
'Activate most important security aspect (not show a window that can mat a save somewhere else)
TBAddress.Enabled = False
TBFirstName.Enabled = False
TBLastName.Enabled = False
RBFemale.Enabled = False
RBMale.Enabled = False
TBPhone.Enabled = False
ButtonPick.Enabled = False
ListView.Enabled = False
updateParentFromExtern(aParent)
ElseIf aFormMode = IDFormMode.EDITOR Then ' EDITOR MODE
Console.WriteLine("FormParentID : Switch to Editor Mode")
actualFormMode = EDITOR
''We change the main triggers labels
ButtonClose.Text = "Cancel"
ButtonEdit.Text = "Update"
'Turn off anti edit security
TBAddress.Enabled = True
TBFirstName.Enabled = True
TBLastName.Enabled = True
RBFemale.Enabled = True
RBMale.Enabled = True
TBPhone.Enabled = True
ButtonPick.Enabled = True
ListView.Enabled = True
updateParentFromExtern(aParent)
Else
Console.WriteLine("FormParentID : Return to Standart Mode !!")
End If
End Sub
''' <summary>
''' Get the list of children of the actual Parent.
''' </summary>
''' <param name="id">The id of the Parent</param>
''' <remarks></remarks>
Private Sub FillListView(id As Integer)
Dim theChildren As List(Of Child) = dbdata.getChildenOf(id)
For Each aChild As Child In theChildren
ListView.Items.Add(aChild.firstname + " " + aChild.lastname).Tag = aChild.id
Next
' Child or Children ?
If ListView.Items.Count <= 1 Then
Label5.Text = "Child"
Else
Label5.Text = "Children"
End If
End Sub
'Edit and click
Protected Overrides Sub ButtonEdit_Click(sender As System.Object, e As System.EventArgs)
Dim Validated As Boolean = True
If actualFormMode = VIEWER Then 'EDIT'
ChangeMode(EDITOR)
ElseIf actualFormMode = CREATOR Then 'SAVE'
' Error Provider
If String.IsNullOrEmpty(TBFirstName.Text) Then
ErrorProvider1.SetError(TBFirstName, "The first name field could not be empty." & vbNewLine & "Please fill this field.")
Validated = False
End If
If String.IsNullOrEmpty(TBLastName.Text) Then
ErrorProvider1.SetError(TBLastName, "The last name field could not be empty." & vbNewLine & "Please fill this field.")
Validated = False
End If
If String.IsNullOrEmpty(TBPhone.Text) Then
ErrorProvider1.SetError(TBPhone, "The phone number field could not be empty" & vbNewLine & "Please insert a correct phone number")
Validated = False
End If
'If TBPhone. = 0 Then
' ErrorProvider1.SetError(DTPBord, "The date of born could not be today" & vbNewLine & "Please insert a born date in the past")
' Validated = False
'End If
If String.IsNullOrEmpty(TBAddress.Text) Then
ErrorProvider1.SetError(LabelAddress, "The address field could not be empty." & vbNewLine & "Please fill this field.")
Validated = False
End If
If Not Validated Then
Exit Sub
End If
' Validation
Me.DialogResult = Windows.Forms.DialogResult.OK
Me.Tag = dbdata.addParent(Me.getParentFromIntern())
Hide()
ElseIf actualFormMode = EDITOR Then 'UPDATE'
' Error Provider
If String.IsNullOrEmpty(TBFirstName.Text) Then
ErrorProvider1.SetError(TBFirstName, "The first name field could not be empty." & vbNewLine & "Please fill this field.")
Validated = False
End If
If String.IsNullOrEmpty(TBLastName.Text) Then
ErrorProvider1.SetError(TBLastName, "The last name field could not be empty." & vbNewLine & "Please fill this field.")
Validated = False
End If
If String.IsNullOrEmpty(TBPhone.Text) Then
ErrorProvider1.SetError(TBPhone, "The phone number field could not be empty" & vbNewLine & "Please insert a correct phone number")
Validated = False
End If
'If TBPhone. = 0 Then
' ErrorProvider1.SetError(DTPBord, "The date of born could not be today" & vbNewLine & "Please insert a born date in the past")
' Validated = False
'End If
If String.IsNullOrEmpty(TBAddress.Text) Then
ErrorProvider1.SetError(LabelAddress, "The address field could not be empty." & vbNewLine & "Please fill this field.")
Validated = False
End If
If Not Validated Then
Exit Sub
End If
' Validation
Me.DialogResult = Windows.Forms.DialogResult.OK
dbdata.editParent(Me.getParentFromIntern())
Hide()
Else
'Don't know how to go here...
Console.WriteLine("FormParentID : Is in standart mode !")
Hide()
End If
End Sub
Protected Overrides Sub ButtonClose_Click(sender As System.Object, e As System.EventArgs)
Console.WriteLine("FormParentID : Closing instance")
Me.DialogResult = Windows.Forms.DialogResult.Cancel
Hide()
End Sub
Private Sub ButtonPick_Click(sender As System.Object, e As System.EventArgs) Handles ButtonPick.Click
Dim FormListParent As FormList = New FormList(PersonType.Parent, ListFormMode.SelectWithAdress)
Dim RD As DialogResult = FormListParent.ShowDialog
If RD = Windows.Forms.DialogResult.OK Then
Dim aParent As Parent = dbdata.getParentByID(FormListParent.Tag)
TBAddress.Text = aParent.address
End If
End Sub
End Class