Index: ActiviteitenOpvolging/ActiviteitenOpvolging/screens/DataGridViewUserControl.vb
===================================================================
diff -u -r1716 -r1721
--- ActiviteitenOpvolging/ActiviteitenOpvolging/screens/DataGridViewUserControl.vb (.../DataGridViewUserControl.vb) (revision 1716)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/screens/DataGridViewUserControl.vb (.../DataGridViewUserControl.vb) (revision 1721)
@@ -70,6 +70,8 @@
WorkItemsDataGridView.ColumnHeadersDefaultCellStyle.Font = New Font("Microsoft Sans Serif", 10) 'todo configureerbaar maken
'Center normal cells.
WorkItemsDataGridView.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
+ 'DueOut column is right aligned.
+ DueOut.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
'Make text bigger of normal cells.
WorkItemsDataGridView.DefaultCellStyle.Font = New Font("Microsoft Sans Serif", 9.5) 'todo configureerbaar maken
@@ -218,7 +220,7 @@
'Load normal parameters.
Dim data As New List(Of String) From {
workItem.BatchVisual,
- workItem.EndTimeStamp.ToString("d MMM HH:mm"),
+ workItem.EndTimeStamp.ToString("d/MM HH:mm"),
workItem.ProductGroup,
workItem.DeliverToResource,
workItem.Remark
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/details/IEmployeeDetailUserControl.vb
===================================================================
diff -u -r1717 -r1721
--- ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/details/IEmployeeDetailUserControl.vb (.../IEmployeeDetailUserControl.vb) (revision 1717)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/details/IEmployeeDetailUserControl.vb (.../IEmployeeDetailUserControl.vb) (revision 1721)
@@ -1,8 +1,4 @@
Public Interface IEmployeeDetailUserControl
+ inherits IRefreshableUserControl
- '''
- ''' Update the information with the given employee.
- '''
- '''
- sub UpdateInformation(employee As IEmployee)
End Interface
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/details/EmployeeDetailUserControl.Designer.vb
===================================================================
diff -u -r1718 -r1721
--- ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/details/EmployeeDetailUserControl.Designer.vb (.../EmployeeDetailUserControl.Designer.vb) (revision 1718)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/details/EmployeeDetailUserControl.Designer.vb (.../EmployeeDetailUserControl.Designer.vb) (revision 1721)
@@ -22,6 +22,7 @@
'Do not modify it using the code editor.
_
Private Sub InitializeComponent()
+ Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(EmployeeDetailUserControl))
Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel()
Me.ActivityLabel = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
@@ -33,6 +34,7 @@
Me.StatusLabel = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.BatchLabel = New System.Windows.Forms.Label()
+ Me.RemoveEmployeeButton = New System.Windows.Forms.Button()
Me.TableLayoutPanel1.SuspendLayout
CType(Me.ImagePictureBox,System.ComponentModel.ISupportInitialize).BeginInit
Me.SuspendLayout
@@ -52,10 +54,11 @@
Me.TableLayoutPanel1.Controls.Add(Me.StartButton, 1, 7)
Me.TableLayoutPanel1.Controls.Add(Me.StopButton, 1, 9)
Me.TableLayoutPanel1.Controls.Add(Me.FinishButton, 1, 11)
- Me.TableLayoutPanel1.Controls.Add(Me.NameLabel, 0, 0)
+ Me.TableLayoutPanel1.Controls.Add(Me.NameLabel, 0, 1)
Me.TableLayoutPanel1.Controls.Add(Me.StatusLabel, 0, 3)
Me.TableLayoutPanel1.Controls.Add(Me.Label1, 0, 4)
Me.TableLayoutPanel1.Controls.Add(Me.BatchLabel, 1, 4)
+ Me.TableLayoutPanel1.Controls.Add(Me.RemoveEmployeeButton, 2, 3)
Me.TableLayoutPanel1.Location = New System.Drawing.Point(3, 3)
Me.TableLayoutPanel1.Name = "TableLayoutPanel1"
Me.TableLayoutPanel1.RowCount = 13
@@ -106,8 +109,8 @@
Me.ImagePictureBox.InitialImage = Nothing
Me.ImagePictureBox.Location = New System.Drawing.Point(331, 3)
Me.ImagePictureBox.Name = "ImagePictureBox"
- Me.TableLayoutPanel1.SetRowSpan(Me.ImagePictureBox, 4)
- Me.ImagePictureBox.Size = New System.Drawing.Size(160, 226)
+ Me.TableLayoutPanel1.SetRowSpan(Me.ImagePictureBox, 3)
+ Me.ImagePictureBox.Size = New System.Drawing.Size(160, 168)
Me.ImagePictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom
Me.ImagePictureBox.TabIndex = 0
Me.ImagePictureBox.TabStop = false
@@ -148,12 +151,15 @@
'
'NameLabel
'
+ Me.NameLabel.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
Me.NameLabel.AutoSize = true
- Me.NameLabel.Dock = System.Windows.Forms.DockStyle.Left
+ Me.TableLayoutPanel1.SetColumnSpan(Me.NameLabel, 2)
Me.NameLabel.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
- Me.NameLabel.Location = New System.Drawing.Point(3, 0)
+ Me.NameLabel.Location = New System.Drawing.Point(3, 58)
Me.NameLabel.Name = "NameLabel"
- Me.NameLabel.Size = New System.Drawing.Size(45, 58)
+ Me.TableLayoutPanel1.SetRowSpan(Me.NameLabel, 2)
+ Me.NameLabel.Size = New System.Drawing.Size(322, 16)
Me.NameLabel.TabIndex = 6
Me.NameLabel.Text = "Name"
Me.NameLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
@@ -195,6 +201,19 @@
Me.BatchLabel.Text = "batch"
Me.BatchLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
+ 'RemoveEmployeeButton
+ '
+ Me.RemoveEmployeeButton.BackColor = System.Drawing.Color.White
+ Me.RemoveEmployeeButton.BackgroundImage = CType(resources.GetObject("RemoveEmployeeButton.BackgroundImage"),System.Drawing.Image)
+ Me.RemoveEmployeeButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
+ Me.RemoveEmployeeButton.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.RemoveEmployeeButton.Location = New System.Drawing.Point(343, 177)
+ Me.RemoveEmployeeButton.Margin = New System.Windows.Forms.Padding(15, 3, 15, 3)
+ Me.RemoveEmployeeButton.Name = "RemoveEmployeeButton"
+ Me.RemoveEmployeeButton.Size = New System.Drawing.Size(136, 52)
+ Me.RemoveEmployeeButton.TabIndex = 12
+ Me.RemoveEmployeeButton.UseVisualStyleBackColor = false
+ '
'EmployeeDetailUserControl
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 13!)
@@ -221,4 +240,5 @@
Friend WithEvents Label2 As Label
Friend WithEvents BatchLabel As Label
Friend WithEvents ActivityLabel As Label
+ Friend WithEvents RemoveEmployeeButton As Button
End Class
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/domain/managers/implementations/EmployeeManager.vb
===================================================================
diff -u -r1718 -r1721
--- ActiviteitenOpvolging/ActiviteitenOpvolging/domain/managers/implementations/EmployeeManager.vb (.../EmployeeManager.vb) (revision 1718)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/domain/managers/implementations/EmployeeManager.vb (.../EmployeeManager.vb) (revision 1721)
@@ -41,7 +41,7 @@
'''
Public Function GetSelectedEmployee(employeeNumber As Integer) As IEmployee Implements IEmployeeManager.GetSelectedEmployee
- If _selectedEmployeesDictionary.ContainsKey(employeeNumber) Then
+ If not _selectedEmployeesDictionary.ContainsKey(employeeNumber) Then
Throw New InternalException($"Employee number for getting the selected value is invalid, key value: {employeeNumber}.")
End If
'Get the value.
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/My Project/Resources.resx
===================================================================
diff -u -r1715 -r1721
--- ActiviteitenOpvolging/ActiviteitenOpvolging/My Project/Resources.resx (.../Resources.resx) (revision 1715)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/My Project/Resources.resx (.../Resources.resx) (revision 1721)
@@ -117,10 +117,18 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ ICT_READONLY
+ The username for the Caché database
+
SQL02
The server name for the employees database
+
+ fixed
+ The password for the Caché database
+
CACHE01
The name of the server for the Caché database
@@ -133,28 +141,23 @@
WieIsWie
The name of the Employees database
-
- fixed
- The password for the Caché database
-
Cache01Admin1
The name of the DSN for the Caché database
-
- ICT_READONLY
- The username for the Caché database
+
+ VH_ReadOnly
+ The username for the employees database
SQLr3*d
The password for the employee database
-
- VH_ReadOnly
- The username for the employees database
-
..\Resources\user.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\remove_user.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/Resources/remove_user.png
===================================================================
diff -u
Binary files differ
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/details/EmployeeDetailUserControl.vb
===================================================================
diff -u -r1718 -r1721
--- ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/details/EmployeeDetailUserControl.vb (.../EmployeeDetailUserControl.vb) (revision 1718)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/details/EmployeeDetailUserControl.vb (.../EmployeeDetailUserControl.vb) (revision 1721)
@@ -25,11 +25,6 @@
_parentUserControl = parentForm
End Sub
- '''
- Public Sub UpdateInformation(employee As IEmployee) Implements IEmployeeDetailUserControl.UpdateInformation
- 'todo update information
- End Sub
-
Private Sub EmployeeUserControl_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
'Set back color corresponding to the employee index.
@@ -41,11 +36,44 @@
StopButton.BackColor = ConfigsLoader.ColorsActivities(ActivityStateEnum.Pauzed)
FinishButton.BackColor = ConfigsLoader.ColorsActivities(ActivityStateEnum.Finished)
+ 'Fetch and show the employee.
+ LoadEmployee()
Catch ex As Exception
MessageBox.Show($"Could not load {Me.Name}.{vbNewLine}{ex.Message}", "An error occured...", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
+ '''
+ Public Function RefreshData() As Boolean Implements IEmployeeDetailUserControl.RefreshData
+ Try
+ LoadEmployee
+ Return True
+ Catch ex As Exception
+ Return False
+ End Try
+ End Function
+
+ '''
+ ''' Load the employee
+ '''
+ Private Sub LoadEmployee()
+ 'Fetch the employee.
+ dim employee = _parentUserControl.FetchEmployee()
+ 'Show all information on screen.
+ NameLabel.Text = $"{Employee.FirstName} {Employee.LastName}"
+
+ 'Todo activity status
+ 'todo enable status of buttons.
+ End Sub
+
+ Private Sub RemoveEmployeeButton_Click(sender As Object, e As EventArgs) Handles RemoveEmployeeButton.Click
+ Try
+ _parentUserControl.DeselectEmployee()
+ Catch ex As Exception
+ MessageBox.Show($"Could not remove user.{vbNewLine}{ex.Message}", "An error occured...", MessageBoxButtons.OK, MessageBoxIcon.Error)
+ End Try
+ End Sub
+
Private Sub StartButton_Click(sender As Object, e As EventArgs) Handles StartButton.Click
Try
_parentUserControl.StartActivity()
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/details/EmployeeDetailUserControl.resx
===================================================================
diff -u -r1717 -r1721
--- ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/details/EmployeeDetailUserControl.resx (.../EmployeeDetailUserControl.resx) (revision 1717)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/details/EmployeeDetailUserControl.resx (.../EmployeeDetailUserControl.resx) (revision 1721)
@@ -117,4 +117,353 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ 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
+ gg==
+
+
\ No newline at end of file
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/screens/IEmployeesMainForm.vb
===================================================================
diff -u -r1718 -r1721
--- ActiviteitenOpvolging/ActiviteitenOpvolging/screens/IEmployeesMainForm.vb (.../IEmployeesMainForm.vb) (revision 1718)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/screens/IEmployeesMainForm.vb (.../IEmployeesMainForm.vb) (revision 1721)
@@ -13,6 +13,11 @@
Sub SelectEmployee(employeeIndex As Integer, employee As IEmployee)
'''
+ ''' Removes the selection of the current employee.
+ '''
+ Sub DeselectEmployee(employeeIndex As Integer)
+
+ '''
''' Gets the selected employee for this index. This function still works if no employee was selected yet.
'''
'''
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/details/IEmployeeDetailParentUserControl.vb
===================================================================
diff -u -r1718 -r1721
--- ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/details/IEmployeeDetailParentUserControl.vb (.../IEmployeeDetailParentUserControl.vb) (revision 1718)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/details/IEmployeeDetailParentUserControl.vb (.../IEmployeeDetailParentUserControl.vb) (revision 1721)
@@ -5,6 +5,11 @@
'''
Function FetchEmployee() As IEmployee
+ '''
+ ''' Removes the selection of the current employee.
+ '''
+ sub DeselectEmployee()
+
Sub StartActivity()
Sub FinishActivity()
Sub StopActivity()
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/ActiviteitenOpvolging.vbproj
===================================================================
diff -u -r1717 -r1721
--- ActiviteitenOpvolging/ActiviteitenOpvolging/ActiviteitenOpvolging.vbproj (.../ActiviteitenOpvolging.vbproj) (revision 1717)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/ActiviteitenOpvolging.vbproj (.../ActiviteitenOpvolging.vbproj) (revision 1721)
@@ -192,5 +192,8 @@
+
+
+
\ No newline at end of file
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/ActiviteitenOpvolgingForm.vb
===================================================================
diff -u -r1720 -r1721
--- ActiviteitenOpvolging/ActiviteitenOpvolging/ActiviteitenOpvolgingForm.vb (.../ActiviteitenOpvolgingForm.vb) (revision 1720)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/ActiviteitenOpvolgingForm.vb (.../ActiviteitenOpvolgingForm.vb) (revision 1721)
@@ -147,6 +147,11 @@
End Sub
'''
+ Public Sub DeselectEmployee(employeeIndex As Integer) Implements IEmployeesMainForm.DeselectEmployee
+ _domainController.DeselectEmployee(employeeIndex)
+ End Sub
+
+ '''
Public Function GetSelectedEmployee(employeeIndex As Integer) As IEmployee Implements IEmployeesMainForm.GetSelectedEmployee
Return _domainController.GetSelectedEmployee(employeeIndex)
End Function
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/My Project/Resources.Designer.vb
===================================================================
diff -u -r1715 -r1721
--- ActiviteitenOpvolging/ActiviteitenOpvolging/My Project/Resources.Designer.vb (.../Resources.Designer.vb) (revision 1715)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/My Project/Resources.Designer.vb (.../Resources.Designer.vb) (revision 1721)
@@ -144,6 +144,16 @@
'''
''' Looks up a localized resource of type System.Drawing.Bitmap.
'''
+ Friend ReadOnly Property remove_user() As System.Drawing.Bitmap
+ Get
+ Dim obj As Object = ResourceManager.GetObject("remove_user", resourceCulture)
+ Return CType(obj,System.Drawing.Bitmap)
+ End Get
+ End Property
+
+ '''
+ ''' Looks up a localized resource of type System.Drawing.Bitmap.
+ '''
Friend ReadOnly Property user() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("user", resourceCulture)
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/EmployeeUserControl.vb
===================================================================
diff -u -r1718 -r1721
--- ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/EmployeeUserControl.vb (.../EmployeeUserControl.vb) (revision 1718)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/screens/employee/EmployeeUserControl.vb (.../EmployeeUserControl.vb) (revision 1721)
@@ -39,13 +39,7 @@
BorderStyle = BorderStyle.FixedSingle
'Show the Employee picker user control.
- Dim employeePickerUserControl = New EmployeePickerUserControl(Me)
- With employeePickerUserControl
- 'Make it exactly as big as the panel it will go into.
- .Size = UserControlPanel.Size
- End With
-
- UserControlPanel.Controls.Add(employeePickerUserControl)
+ SwitchUserControl(New EmployeePickerUserControl(Me))
Catch ex As Exception
MessageBox.Show($"Could not load {Me.Name}.{vbNewLine}{ex.Message}", "An error occured...", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
@@ -89,10 +83,13 @@
Try
'Call parent to select employee.
_parentForm.SelectEmployee(EmployeeIndex, employee)
+ 'Load detail user control.
+ SwitchUserControl(New EmployeeDetailUserControl(Me))
Catch ex As Exception
MessageBox.Show($"Could not select employee.{vbNewLine}{ex.Message}", "An error occured...", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
+
#End Region
#Region "Employee details"
@@ -102,6 +99,19 @@
End Function
'''
+ Public Sub DeselectEmployee() Implements IEmployeeDetailParentUserControl.DeselectEmployee
+ Try
+ 'Call parent to deselect employee.
+ _parentForm.DeselectEmployee(EmployeeIndex)
+
+ 'Switch to employee picker user control.
+ SwitchUserControl(new EmployeePickerUserControl(Me))
+ Catch ex As Exception
+ MessageBox.Show($"Could not deselect employee.{vbNewLine}{ex.Message}", "An error occured...", MessageBoxButtons.OK, MessageBoxIcon.Error)
+ End Try
+ End Sub
+
+ '''
Public Sub StartActivity() Implements IEmployeeDetailParentUserControl.StartActivity
Throw New NotImplementedException
End Sub
@@ -117,4 +127,20 @@
End Sub
#End Region
+ '''
+ ''' Swtich to another user control on the screen.
+ '''
+ '''
+ Private Sub SwitchUserControl(userControl As UserControl)
+ 'Remove the current user control from the screen.
+ UserControlPanel.Controls.Clear()
+ 'Set the properties of the user control.
+ With userControl
+ 'Make it exactly as big as the panel it will go into.
+ .Size = UserControlPanel.Size
+ End With
+ 'Add it onto the panel.
+ UserControlPanel.Controls.Add(userControl)
+ End Sub
+
End Class