X2021/Wardrobe/GUI/Individual.vb

450 lines
17 KiB
VB.net

Public Class Individual
Sub Load_GUI()
' Initialize GUI
Init_Form()
Draw_Grating.Update_GratingPoints()
End Sub
' --- Initialize GUI (form) size and position ---
Private Sub Init_Form()
Me.Width = AppForm.Width
Me.Height = AppForm.Height
If AppForm.fillMode = True Then
Init_Multiple()
Else
Init_Individual()
End If
Me.ComboBox_Material.Enabled = False
Me.ComboBox_Mesh.Enabled = False
Me.ComboBox_Height.Enabled = False
Me.ComboBox_Thickness.Enabled = False
Me.ComboBox_Width.Enabled = False
Me.TextBox_Width.Enabled = False
Me.TextBox_Length.Enabled = False
Me.Button_Export_GUI.Enabled = False
Me.Button_Export_SW.Enabled = False
Me.Button_Angle_Corner.Enabled = False
Me.Button_Angle_Side.Enabled = False
Me.Button_Square_Corner.Enabled = False
Me.Button_Square_Side.Enabled = False
Me.Button_Square_Middle.Enabled = False
End Sub
Private Sub Init_Individual()
Me.Panel_Data.BackColor = Color.AliceBlue
Me.Panel_Recesses.BackColor = Color.LightGray
Dim CheckTemp As New CheckBox With {
.Name = "CheckBox_Whole_Mesh",
.Text = "Whole Mesh Widths",
.Left = 110,
.Top = 443,
.Font = New Font("Microsoft Sans Serif", 7.8),
.Checked = True,
.Enabled = False,
.AutoSize = True,
.BackColor = Color.Transparent
}
AddHandler CheckTemp.CheckedChanged, AddressOf CheckBox_Whole_Mesh_CheckedChanged
Me.Panel_Data.Controls.Add(CheckTemp)
Me.ComboBox_Width.Visible = True
Me.TextBox_Width.Visible = False
'CheckBox_3DModel.Checked = True
'CheckBox_3DModel.Enabled = False
End Sub
Private Sub Init_Multiple()
Me.Panel_Data.BackColor = Color.Salmon
Me.Panel_Recesses.BackColor = Color.LightPink
' --- Max Load ---
Dim LabelTemp As New Label With {
.Name = "Label_Max_Load",
.Text = "Max Load",
.Left = 35,
.Top = 525,
.AutoSize = True,
.Font = New Font("Microsoft Sans Serif", 10)
}
Me.Panel_Data.Controls.Add(LabelTemp)
Dim textBoxTemp As New TextBox With {
.Name = "TextBox_Max_Load",
.Text = "5",
.Left = 110,
.Top = 525,
.Width = 155,
.Font = New Font("Microsoft Sans Serif", 8),
.Enabled = False
}
AddHandler textBoxTemp.KeyPress, AddressOf TextBox_Max_Load_KeyPress
Me.Panel_Data.Controls.Add(textBoxTemp)
Dim LabelTemp2 As New Label With {
.Name = "Label_Max_Load_Unit",
.Text = "kN/m²",
.Left = 269,
.Top = 529,
.Font = New Font("Microsoft Sans Serif", 8)
}
Me.Panel_Data.Controls.Add(LabelTemp2)
' --- Max Grating weight ---
Dim LabelTemp3 As New Label With {
.Name = "Label_Max_Weight",
.Text = "Max Grating Weight",
.Left = 20,
.Top = 550,
.AutoSize = True,
.Font = New Font("Microsoft Sans Serif", 10)
}
Me.Panel_Data.Controls.Add(LabelTemp3)
Dim textBoxTemp2 As New TextBox With {
.Name = "TextBox_Max_Weight",
.Text = "70",
.Left = 110,
.Top = 550,
.Width = 155,
.Font = New Font("Microsoft Sans Serif", 8),
.Enabled = False
}
AddHandler textBoxTemp2.KeyPress, AddressOf TextBox_Max_Load_KeyPress
Me.Panel_Data.Controls.Add(textBoxTemp2)
Dim LabelTemp4 As New Label With {
.Name = "Label_Max_Weight_Unit",
.Text = "kg",
.Left = 269,
.Top = 554,
.Font = New Font("Microsoft Sans Serif", 8)
}
Me.Panel_Data.Controls.Add(LabelTemp4)
Dim calculateButton As New Button With {
.Name = "Button_Calculate",
.Text = "Calculate",
.Left = 100,
.Top = 600,
.Width = 100,
.Height = 40,
.BackColor = Color.Transparent,
.UseVisualStyleBackColor = False,
.Enabled = False
}
AddHandler calculateButton.Click, AddressOf Button_Calculate_Click
Me.Panel_Data.Controls.Add(calculateButton)
Me.ComboBox_Width.Visible = False
Me.TextBox_Width.Visible = True
End Sub
' ---------------------------------- Individual Templates ----------------------------------
' --- TextBox Template ---
Public Sub Create_TextBox_Recesses(TextBoxName As String, TextBoxText As String, TextBoxLeft As Integer, TextBoxTop As Integer,
TextBoxWidth As Integer)
Dim textBoxTemp As New TextBox With {
.Name = TextBoxName,
.Text = TextBoxText,
.Left = TextBoxLeft,
.Top = TextBoxTop,
.Width = TextBoxWidth,
.Font = New Font("Microsoft Sans Serif", 10)
}
Me.Panel_Recesses.Controls.Add(textBoxTemp)
End Sub
' --- Label Template for Individual ---
Public Sub Create_Label_Recesses(LabelName As String, LabelText As String, LabelLeft As Integer, LabelTop As Integer)
Dim LabelTemp As New Label With {
.Name = LabelName,
.Text = LabelText,
.Left = LabelLeft,
.Top = LabelTop,
.Font = New Font("Microsoft Sans Serif", 10)
}
Me.Panel_Recesses.Controls.Add(LabelTemp)
End Sub
' ---------------------------------- Gratings Data ----------------------------------
' --- When user changes grating type ---
Private Sub ComboBox_Type_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_Type.TextChanged
User_Input.TypeChanged(sender, e)
End Sub
' --- When user changes grating material ---
Private Sub ComboBox_Material_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_Material.TextChanged
User_Input.MaterialChanged(sender, e)
End Sub
' --- When user changes mesh size ---
Private Sub ComboBox_Mesh_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_Mesh.TextChanged
User_Input.MeshChanged(sender, e)
End Sub
' --- When user changes grating height ---
Private Sub ComboBox_Height_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_Height.TextChanged
User_Input.HeightChanged(sender, e)
End Sub
' --- When user changes grating thickness ---
Private Sub ComboBox_Thickness_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_Thickness.TextChanged
User_Input.ThicknessChanged(sender, e)
End Sub
' --- When user checkes/uncheckes whole meshes ---
Private Sub CheckBox_Whole_Mesh_CheckedChanged(sender As Object, e As EventArgs)
User_Input.WholeMeshWidthsChanged(sender, e)
End Sub
' --- Grating width changed ---
Private Sub ComboBox_Width_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_Width.TextChanged
User_Input.WidthChanged(sender, e)
End Sub
' --- Check if width is a number ---
Private Sub ComboBox_Width_KeyPress(sender As Object, e As KeyPressEventArgs) Handles ComboBox_Width.KeyPress
User_Input.Check_IfNumber(e)
End Sub
Private Sub ComboBox_Frame_TextChanged(sender As Object, e As EventArgs) Handles ComboBox_Frame.TextChanged
User_Input.FrameChanged(sender, e)
End Sub
' --- Grating width changed ---
Private Sub TextBox_Width_TextChanged(sender As Object, e As EventArgs) Handles TextBox_Width.TextChanged
User_Input.WidthChanged(sender, e)
End Sub
' --- Check if width is a number ---
Private Sub TextBox_Width_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox_Width.KeyPress
User_Input.Check_IfNumber(e)
End Sub
' --- Grating length changed ---
Private Sub LengthBox_TextChanged(sender As Object, e As EventArgs) Handles TextBox_Length.TextChanged
User_Input.LengthChanged(sender, e)
End Sub
' --- Check if length is a number ---
Private Sub ComboBox_Length_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox_Length.KeyPress
User_Input.Check_IfNumber(e)
End Sub
Private Sub TextBox_Length_Leave(sender As Object, e As EventArgs) Handles TextBox_Length.Leave
If TextBox_Length.Text <> "" Then
If AppForm.fillMode Then
If CInt(TextBox_Length.Text) < 300 Then
MessageBox.Show("Length must be at least 300 [mm]")
TextBox_Length.Focus()
End If
Else
If CInt(TextBox_Length.Text) < 300 OrElse CInt(TextBox_Length.Text) > 6000 Then
MessageBox.Show("Length must be at least 300 [mm] and max 6000 [mm]")
TextBox_Length.Focus()
End If
End If
End If
End Sub
' --- Check if max laod is a number ---
Public Sub TextBox_Max_Load_KeyPress(sender As Object, e As KeyPressEventArgs)
User_Input.Check_IfNumber(e)
End Sub
' ---------------------------------- Functions ----------------------------------
' --- When angle button is pressed ---
Private Sub Button_Angle_Corner_Click(sender As Object, e As EventArgs) Handles Button_Angle_Corner.Click
Corner_Angle.AngleButton(sender, e)
End Sub
' --- When angle side button is pressed ---
Private Sub Button_Angle_Side_Click(sender As Object, e As EventArgs) Handles Button_Angle_Side.Click
End Sub
' --- When square corner button is pressed ---
Private Sub Button_Square_Corner_Click(sender As Object, e As EventArgs) Handles Button_Square_Corner.Click
Corner_Rectangle.SquareButtton(sender, e)
End Sub
' --- When square side button is pressed ---
Private Sub Button_Square_Side_Click(sender As Object, e As EventArgs) Handles Button_Square_Side.Click
Side_Rectangle.SquareSideButtton(sender, e)
End Sub
' --- When middle square button is pressed ---
Private Sub Button_Square_Middle_Click(sender As Object, e As EventArgs) Handles Button_Square_Middle.Click
Middle_Rectangle.SquareMiddleButtton(sender, e)
End Sub
Private Sub CheckBox_3DModel_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_3DModel.CheckedChanged
If User_Input.add3DGrating = True Then
User_Input.add3DGrating = False
Else
User_Input.add3DGrating = True
End If
End Sub
Private Sub CheckBox_Frames_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_Frames.CheckedChanged
If User_Input.addFrame = True Then
User_Input.addFrame = False
CheckBox_FrameDrawing.Checked = False
CheckBox_FrameDrawing.Enabled = False
User_Input.addFrameDrawing = False
Else
User_Input.addFrame = True
CheckBox_FrameDrawing.Enabled = True
End If
End Sub
Private Sub CheckBox_GratingDrawing_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_GratingDrawing.CheckedChanged
If User_Input.addGratingDrawing = True Then
User_Input.addGratingDrawing = False
Else
User_Input.addGratingDrawing = True
End If
End Sub
Private Sub CheckBox_FrameDrawing_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_FrameDrawing.CheckedChanged
If User_Input.addFrameDrawing = True Then
User_Input.addFrameDrawing = False
Else
User_Input.addFrameDrawing = True
End If
End Sub
Private Sub CheckBox_Instructions_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_Instructions.CheckedChanged
If User_Input.addInstructions = True Then
User_Input.addInstructions = False
Else
User_Input.addInstructions = True
End If
End Sub
' ---------------------------------- Calculate ----------------------------------
' --- When calculate button is pressed ---
Public Sub Button_Calculate_Click(sender As Object, e As EventArgs)
Calculate_Fill_Grid.Calculate_Grid()
End Sub
' ---------------------------------- Export to SW ----------------------------------
' --- When export to SW button is pressed ---
Private Sub Button_Export_SW_Click(sender As Object, e As EventArgs) Handles Button_Export_SW.Click
If AppForm.fillMode Then
Calculate_Fill_Grid.Calculate_Grid()
Dim frameCreated As Boolean = False
If User_Input.add3DGrating = True Then
Multiple_3D.BuildGrid()
frameCreated = True
End If
Dim simplifiedCreated As Boolean = False
If User_Input.addGratingDrawing = True Then
Multiple_3D_Simplified.Build_Grid(False)
simplifiedCreated = True
Multiple_Drawing.Generate_Drawing()
End If
Dim simplifiedWithFrameCreated As Boolean = False
If User_Input.addFrameDrawing = True Then
If frameCreated = False Then
Multiple_3D_Simplified.Build_Grid(True)
simplifiedWithFrameCreated = True
End If
For Each DR As DataRow In Frame_3D.frameDT.Rows
If DR("TYPE") = "SIDE" Then
Frame_3D.Generate_End_Frame_Pieces()
Frame_Drawing.Create_Assemblies(simplifiedWithFrameCreated)
Frame_Drawing.Generate_Drawings()
Exit For
End If
Next
End If
If User_Input.addInstructions = True Then
If User_Input.addFrame = True AndAlso simplifiedWithFrameCreated = False Then
Multiple_3D_Simplified.Build_Grid(True)
ElseIf simplifiedWithFrameCreated = False Then
Multiple_3D_Simplified.Build_Grid(False)
simplifiedCreated = True
End If
If simplifiedCreated = False Then
Multiple_3D_Simplified.Build_Grid(False)
End If
Instructions.Generate_Instructions(User_Input.addFrame)
End If
Else
Dim frameCreated As Boolean = False
If User_Input.add3DGrating = True Then
Individual_3D.BuildGrating()
frameCreated = True
End If
If User_Input.addGratingDrawing = True Then
Individual_Drawing.Generate_Drawing()
End If
Dim simplifiedWithFrameCreated As Boolean = False
If User_Input.addFrameDrawing = True Then
If frameCreated = False Then
Individual_3D_Simplified.Build_Simplified(True)
simplifiedWithFrameCreated = True
End If
For Each DR As DataRow In Frame_3D.frameDT.Rows
If DR("TYPE") = "SIDE" Then
Frame_3D.Generate_End_Frame_Pieces()
Frame_Drawing.Create_Assemblies(simplifiedWithFrameCreated)
Frame_Drawing.Generate_Drawings()
Exit For
End If
Next
End If
Dim simplifiedCreated As Boolean = False
If User_Input.addInstructions = True Then
If User_Input.addFrame = True AndAlso simplifiedWithFrameCreated = False Then
Individual_3D_Simplified.Build_Simplified(True)
ElseIf simplifiedWithFrameCreated = False Then
Individual_3D_Simplified.Build_Simplified(False)
simplifiedCreated = True
End If
If simplifiedCreated = False Then
Multiple_3D_Simplified.Build_Grid(False)
End If
Instructions.Generate_Instructions(User_Input.addFrame)
End If
End If
End Sub
' ---------------------------------- Export GUI ----------------------------------
' --- When export GUI button is pressed ---
Private Sub Button_Export_GUI_Click(sender As Object, e As EventArgs) Handles Button_Export_GUI.Click
GUI_Export.Generate_Quote()
End Sub
' ---------------------------------- Back to main menu ----------------------------------
' --- When export back button is pressed ---
Private Sub Button_Back_Click(sender As Object, e As EventArgs) Handles Button_Back.Click
AppForm.Panel_Start.Controls.Clear()
Main_Menu.TopLevel = False
AppForm.Panel_Start.Controls.Add(Main_Menu)
Main_Menu.Show()
End Sub
End Class