X2021/Wardrobe/GUI_Gratings_Data.vb

335 lines
13 KiB
VB.net

Public Class GUI_Gratings_Data
' --- Creates the table with points data used in SW ---
Public Shared Function Create_ExportTable() As DataTable
Dim lSpacing As String = GUI.ComboBox_MeshSize.Text.Split("x")(0)
Dim cSpacing As String = GUI.ComboBox_MeshSize.Text.Split("x")(1).Split(" ")(0)
Dim gratingTable As New DataTable
gratingTable.Columns.Add("TYPE", GetType(String))
gratingTable.Columns.Add("SERRATED", GetType(Boolean))
gratingTable.Columns.Add("WIDTH", GetType(Decimal))
gratingTable.Columns.Add("LENGTH", GetType(Decimal))
gratingTable.Columns.Add("LOADBAR_THICKNESS", GetType(Decimal))
gratingTable.Columns.Add("LOADBAR_HEIGHT", GetType(Decimal))
gratingTable.Columns.Add("LOADBAR_SPACING", GetType(Decimal))
gratingTable.Columns.Add("CROSSBAR_SPACING", GetType(Decimal))
gratingTable.Columns.Add("CROSSBAR_DIAMETER", GetType(Decimal))
gratingTable.Columns.Add("CROSSBAR_THICKNESS", GetType(Decimal))
gratingTable.Columns.Add("CROSSBAR_HEIGHT", GetType(Decimal))
gratingTable.Rows.Add()
gratingTable.Rows(0)("SERRATED") = False 'Hämta från GUI
gratingTable.Rows(0)("WIDTH") = CDec(GUI.ComboBox_Width.Text)
gratingTable.Rows(0)("LENGTH") = CDec(GUI.ComboBox_Length.Text)
gratingTable.Rows(0)("LOADBAR_THICKNESS") = CDec(GUI.ComboBox_Thickness.Text)
gratingTable.Rows(0)("LOADBAR_HEIGHT") = CDec(GUI.ComboBox_Height.Text)
gratingTable.Rows(0)("LOADBAR_SPACING") = CDec(lSpacing)
gratingTable.Rows(0)("CROSSBAR_SPACING") = CDec(cSpacing)
If GUI.ComboBox_TypeChooser.Text = "Pressure Welded" Then
gratingTable.Rows(0)("TYPE") = "pressure_welded" ' Här behövs namn på HLCt modellen
gratingTable.Rows(0)("CROSSBAR_DIAMETER") = 5
gratingTable.Rows(0)("CROSSBAR_THICKNESS") = 0
gratingTable.Rows(0)("CROSSBAR_HEIGHT") = 0
Else
gratingTable.Rows(0)("TYPE") = "type_a" ' Här behövs namn på HLCt modellen
gratingTable.Rows(0)("CROSSBAR_DIAMETER") = 0
gratingTable.Rows(0)("CROSSBAR_THICKNESS") = 2
gratingTable.Rows(0)("CROSSBAR_HEIGHT") = 15
End If
Return gratingTable
End Function
' --- Generate a table containing all the points X- and Y-values ---
Public Shared Function Create_PointTable()
Dim pointTable As New DataTable
pointTable.Columns.Add("X", GetType(Decimal))
pointTable.Columns.Add("Y", GetType(Decimal))
For i = 0 To GUI.pointsOrder.Count - 1
Dim pTemp() As Decimal
pTemp = GUI.points(GUI.pointsOrder(i))
pointTable.Rows.Add()
pointTable.Rows(i)("X") = pTemp(2)
pointTable.Rows(i)("Y") = pTemp(3)
Next
Return pointTable
End Function
' --- Check if the key pressed is a number ---
Private Sub Check_IfNumber(e As KeyPressEventArgs)
If Asc(e.KeyChar) <> 8 Then
If Asc(e.KeyChar) < 48 Or Asc(e.KeyChar) > 57 Then
e.Handled = True
End If
End If
End Sub
Private Sub Create_TextBox(TextBoxName As String, TextBoxText As String, TextBoxLeft As Integer, TextBoxTop As Integer, TextBoxWidth As Integer)
Dim textBoxTemp As New TextBox
textBoxTemp.Name = TextBoxName
textBoxTemp.Text = TextBoxText
textBoxTemp.Left = TextBoxLeft
textBoxTemp.Top = TextBoxTop
textBoxTemp.Width = TextBoxWidth
textBoxTemp.Font = New Font("Microsoft Sans Serif", 10)
Me.Controls.Add(textBoxTemp)
End Sub
Private Sub Create_Label(LabelName As String, LabelText As String, LabelLeft As Integer, LabelTop As Integer)
Dim LabelTemp As New Label
LabelTemp.Name = LabelName
LabelTemp.Text = LabelText
LabelTemp.Left = LabelLeft
LabelTemp.Top = LabelTop
LabelTemp.Font = New Font("Microsoft Sans Serif", 10)
Me.Controls.Add(LabelTemp)
End Sub
Public Shared Sub TypeChanged(sender As Object, e As EventArgs)
ComboBox_Material.Enabled = True
ComboBox_Material.Items.Clear()
gratingType = ComboBox_TypeChooser.Text
Dim materialDT As DataTable = dataBase("Material")
Dim typeColumn As Integer = Get_ColumnIndex("TYPE", materialDT)
Dim materialColumn As Integer = Get_ColumnIndex("MATERIAL", materialDT)
Dim typeInDT As String = materialDT.Rows(0)(typeColumn)
For i = 0 To materialDT.Rows.Count - 1
If gratingType = materialDT.Rows(i)(typeColumn) Then
ComboBox_Material.Items.Add(materialDT.Rows(i)(materialColumn))
End If
Try
typeInDT = materialDT.Rows(i + 1)(typeColumn)
Catch ex As Exception
End Try
Next
ComboBox_Material.Text = ComboBox_Material.Items(0)
End Sub
Public Shared Sub MaterialChanged(sender As Object, e As EventArgs)
ComboBox_MeshSize.Enabled = True
gratingMaterial = ComboBox_Material.Text
Dim serratedDT As DataTable = dataBase("Serrated")
Dim removeCheckBox As Boolean = True
Dim typeInDT As String = serratedDT.Rows(0)("TYPE")
Dim materialInDT As String = serratedDT.Rows(0)("MATERIAL")
If serratedCheckBoxBol = False Then
For i = 0 To serratedDT.Rows.Count - 1
If gratingMaterial = materialInDT AndAlso gratingType = typeInDT Then
serratedCheckBox.Name = "CheckBox_Serrated"
serratedCheckBox.Text = "Serrated"
serratedCheckBox.Left = 115
serratedCheckBox.Top = 115
AddHandler serratedCheckBox.CheckedChanged, AddressOf CheckBox_Serrated_CheckedChanged
Me.Controls.Add(serratedCheckBox)
serratedCheckBoxBol = True
Exit For
End If
Try
typeInDT = serratedDT.Rows(i + 1)("TYPE")
materialInDT = serratedDT.Rows(i + 1)("MATERIAL")
Catch ex As Exception
End Try
Next
Else
For i = 0 To serratedDT.Rows.Count - 1
If gratingMaterial = materialInDT AndAlso gratingType = typeInDT Then
removeCheckBox = False
Exit For
End If
Try
typeInDT = serratedDT.Rows(i + 1)("TYPE")
materialInDT = serratedDT.Rows(i + 1)("MATERIAL")
Catch ex As Exception
End Try
Next
If serratedCheckBoxBol = True AndAlso removeCheckBox = True Then
RemoveHandler serratedCheckBox.CheckedChanged, AddressOf CheckBox_Serrated_CheckedChanged
Me.Controls.RemoveByKey("CheckBox_Serrated")
serratedCheckBoxBol = False
gratingSerrated = False
End If
End If
If lacqueredCheckBoxBol = False AndAlso (gratingMaterial = "Hot dip galvanized steel" OrElse gratingMaterial = "Untreated") Then
lacqueredCheckBox.Name = "CheckBox_Lacquered"
lacqueredCheckBox.Text = "Lacquered"
lacqueredCheckBox.Left = 115
lacqueredCheckBox.Top = 135
AddHandler lacqueredCheckBox.CheckedChanged, AddressOf CheckBox_Lacquered_CheckedChanged
Me.Controls.Add(lacqueredCheckBox)
lacqueredCheckBoxBol = True
ElseIf lacqueredCheckBoxBol = True AndAlso gratingMaterial <> "Hot dip galvanized steel" AndAlso gratingMaterial <> "Untreated" Then
RemoveHandler lacqueredCheckBox.CheckedChanged, AddressOf CheckBox_Lacquered_CheckedChanged
Me.Controls.RemoveByKey("CheckBox_Lacquered")
lacqueredCheckBoxBol = False
gratingLacquered = False
End If
' Untreated finns för alla som är varmförzinkade enligt Jakob Teams
Update_AvalaibleMeshes()
End Sub
Private Sub CheckBox_Serrated_CheckedChanged(sender As Object, e As EventArgs)
If sender.Checked Then
gratingSerrated = True
Update_AvalaibleMeshes()
Else
gratingSerrated = False
Update_AvalaibleMeshes()
End If
End Sub
Private Sub CheckBox_Lacquered_CheckedChanged(sender As Object, e As EventArgs)
'Här hanterar vi om den är lackad eller inte
'påverkar ej övrig kod (förutom kommentar att det är special order)
If sender.Checked Then
gratingLacquered = True
Else
gratingLacquered = False
End If
End Sub
Private Sub Update_AvalaibleMeshes()
ComboBox_MeshSize.Items.Clear()
Dim meshesDT As DataTable = dataBase("Meshes")
Dim typeColumn As Integer = Get_ColumnIndex("TYPE", meshesDT)
Dim materialColumn As Integer = Get_ColumnIndex("MATERIAL", meshesDT)
Dim serratedColumn As Integer = Get_ColumnIndex("SERRATED", meshesDT)
Dim typeInDT As String = meshesDT.Rows(0)(typeColumn)
Dim materialInDT As String = meshesDT.Rows(0)(materialColumn)
Dim serratedInDT As Boolean = CBool(meshesDT.Rows(0)(serratedColumn))
For i = 0 To meshesDT.Rows.Count - 1
If gratingSerrated = serratedInDT AndAlso gratingMaterial = materialInDT AndAlso gratingType = typeInDT Then
Dim item As String
item = meshesDT.Rows(i)("LB-SPACING") & "x" & meshesDT.Rows(i)("CB-SPACING") & " (" & meshesDT.Rows(i)("NAME") & ")"
Dim addItem As Boolean = True
For j = 0 To ComboBox_MeshSize.Items.Count - 1
If item = ComboBox_MeshSize.Items(j) Then
addItem = False
Exit For
End If
Next
If addItem = True Then
ComboBox_MeshSize.Items.Add(item)
End If
End If
Try
typeInDT = meshesDT.Rows(i + 1)(typeColumn)
materialInDT = meshesDT.Rows(i + 1)(materialColumn)
serratedInDT = meshesDT.Rows(i + 1)(serratedColumn)
Catch ex As Exception
End Try
Next
If ComboBox_MeshSize.Items.Count = 0 Then
ComboBox_MeshSize.Items.Add("")
End If
End Sub
Public Shared Sub MeshChanged(sender As Object, e As EventArgs)
ComboBox_Height.Enabled = True
ComboBox_Height.Items.Clear()
gratingMesh = ComboBox_MeshSize.Text
loadBarSpacing = CInt(gratingMesh.Split("x")(0))
crossBarSpacing = CInt(gratingMesh.Split("x")(1).Split(" ")(0))
' Add heights
If loadBarSpacing = 12 And crossBarSpacing = 100 Then
ComboBox_Height.Items.Add("20")
ComboBox_Height.Items.Add("25")
End If
End Sub
Public Shared Sub HeightChanged(sender As Object, e As EventArgs)
ComboBox_Thickness.Enabled = True
ComboBox_Thickness.Items.Clear()
gratingHeight = CInt(ComboBox_Height.Text)
' Add thicknesses
If gratingHeight = 20 Then
ComboBox_Thickness.Items.Add("2")
ComboBox_Thickness.Items.Add("3")
End If
End Sub
Public Shared Sub ThicknessChanged(sender As Object, e As EventArgs)
ComboBox_Width.Enabled = True
ComboBox_Width.Items.Clear()
ComboBox_Length.Enabled = True
ComboBox_Length.Items.Clear()
loadBarThickness = CInt(ComboBox_Thickness.Text)
' Add Widths
ComboBox_Width.Items.Add("300")
ComboBox_Width.Items.Add("500")
ComboBox_Width.Items.Add("1000")
ComboBox_Width.Text = ComboBox_Width.Items(0)
' Add Length
ComboBox_Length.Items.Add("500")
ComboBox_Length.Items.Add("1000")
ComboBox_Length.Text = ComboBox_Length.Items(0)
End Sub
Public Shared Sub WholeMeshWidthsChanged(sender As Object, e As EventArgs)
If CheckBox_WholeMeshWidths.Checked Then
ComboBox_Width.DropDownStyle = ComboBoxStyle.DropDownList
Else
ComboBox_Width.DropDownStyle = ComboBoxStyle.DropDown
End If
End Sub
Public Shared Sub WidthChanged(sender As Object, e As EventArgs)
If ComboBox_Width.Text <> "" Then
If CDec(ComboBox_Width.Text) > 0 Then
gratingMaxW = CDec(ComboBox_Width.Text)
Update_GratingPoints()
End If
End If
'If stocked length options exist
If gratingMaxW = 500 Then
Dim stockedCheckBox As New CheckBox
stockedCheckBox.Name = "CheckBox_Stocked"
stockedCheckBox.Text = "Only stocked lengths"
stockedCheckBox.Left = 94
stockedCheckBox.Top = 386
stockedCheckBox.Checked = True
Me.Controls.Add(stockedCheckBox)
End If
End Sub
Public Shared Sub LengthChanged(sender As Object, e As EventArgs)
If ComboBox_Length.Text <> "" Then
If CDec(ComboBox_Length.Text) > 0 Then
gratingMaxL = CDec(ComboBox_Length.Text)
Update_GratingPoints()
End If
End If
End Sub
End Class