X2021/Wardrobe/GUI.vb

534 lines
16 KiB
VB.net

Imports XCCLibrary
Public Class GUI
'Anton was here
'So was Mehdi
'New branch
'Anton test 2
Dim Control_ID
Sub GUI_load() Handles MyBase.Load
add_section()
Control_ID = 0
End Sub
Sub add_section()
' adding the tab page
Dim myTabPage As New TabPage
Dim TabContSec As TabControl
TabContSec = Section_gui
myTabPage.Text = "Section " & TabContSec.TabPages.Count + 1
myTabPage.Name = "Section_" & TabContSec.TabPages.Count + 1
TabContSec.TabPages.Add(myTabPage)
TabContSec.SelectedTab = myTabPage
' adding controls for section width and height
Dim Width_lbl As New Label
Width_lbl.Top = 10
Width_lbl.Left = 10
Width_lbl.Name = "Width_lb"
Width_lbl.Text = "Section Width"
myTabPage.Controls.Add(Width_lbl)
Dim Width_tbox As New TextBox
Width_tbox.Top = 10
Width_tbox.Left = 120
Width_tbox.Width = 120
Width_tbox.Name = "Width_tb"
myTabPage.Controls.Add(Width_tbox)
Dim Height_lbl As New Label
Height_lbl.Top = 35
Height_lbl.Left = 10
Height_lbl.Name = "Height_lb"
Height_lbl.Text = "Section Height"
myTabPage.Controls.Add(Height_lbl)
Dim Height_tbox As New TextBox
Height_tbox.Top = 35
Height_tbox.Left = 120
Height_tbox.Width = 120
Height_tbox.Name = "Height_tb"
myTabPage.Controls.Add(Height_tbox)
End Sub
Sub Del_section()
' Removing the tabpage
If Section_gui.TabPages.Count > 1 Then
Section_gui.TabPages.Remove(Section_gui.TabPages(Section_gui.TabPages.Count - 1))
End If
End Sub
Sub add_hanger()
'Setting an ID of the item
Control_ID += 1
' Geting the active tabpage and the location where to put the label
Dim myTabPage As TabPage
Dim TabContSec As TabControl
TabContSec = Section_gui
myTabPage = TabContSec.SelectedTab
Dim y_pos = get_latest_position(myTabPage)
y_pos = y_pos + 30
'adding the new controls
Dim Hanger_lbl As New Label
Hanger_lbl.Top = y_pos
Hanger_lbl.Left = 10
Hanger_lbl.Name = "Item_Hanger_" & Control_ID
Hanger_lbl.Text = "Hanger"
myTabPage.Controls.Add(Hanger_lbl)
Dim Pos_tbox As New TextBox
Pos_tbox.Top = y_pos
Pos_tbox.Left = 180
Pos_tbox.Width = 60
Pos_tbox.Name = "Hanger_Pos_tb_" & Control_ID
myTabPage.Controls.Add(Pos_tbox)
Dim Pos_lbl As New Label
Pos_lbl.Top = y_pos
Pos_lbl.Left = 120
Pos_lbl.Name = "Hanger_Pos_lb_" & Control_ID
Pos_lbl.Text = "Position"
myTabPage.Controls.Add(Pos_lbl)
End Sub
Sub add_hooks()
'Setting an ID of the item
Control_ID += 1
' Geting the active tabpage and the location where to put the label
Dim myTabPage As TabPage
Dim TabContSec As TabControl
TabContSec = Section_gui
myTabPage = TabContSec.SelectedTab
Dim y_pos = get_latest_position(myTabPage)
y_pos = y_pos + 30
'adding the new controls
Dim Hooks_lbl As New Label
Hooks_lbl.Top = y_pos
Hooks_lbl.Left = 10
Hooks_lbl.Name = "Item_Hooks_" & Control_ID
Hooks_lbl.Text = "Hooks"
myTabPage.Controls.Add(Hooks_lbl)
Dim Pos_tbox As New TextBox
Pos_tbox.Top = y_pos
Pos_tbox.Left = 180
Pos_tbox.Width = 60
Pos_tbox.Name = "Hooks_Pos_tb_" & Control_ID
myTabPage.Controls.Add(Pos_tbox)
Dim Pos_lbl As New Label
Pos_lbl.Top = y_pos
Pos_lbl.Left = 120
Pos_lbl.Name = "Hooks_Pos_lb_" & Control_ID
Pos_lbl.Text = "Position"
myTabPage.Controls.Add(Pos_lbl)
Dim Nr_tbox As New TextBox
Nr_tbox.Top = y_pos
Nr_tbox.Left = 320
Nr_tbox.Width = 60
Nr_tbox.Name = "Hooks_Nr_tb_" & Control_ID
myTabPage.Controls.Add(Nr_tbox)
Dim Nr_lbl As New Label
Nr_lbl.Top = y_pos
Nr_lbl.Left = 260
Nr_lbl.Name = "Hooks_Nr_lb_" & Control_ID
Nr_lbl.Text = "Quantity"
myTabPage.Controls.Add(Nr_lbl)
End Sub
Sub add_basket()
'Setting an ID of the item
Control_ID += 1
' Geting the active tabpage and the location where to put the label
Dim myTabPage As TabPage
Dim TabContSec As TabControl
TabContSec = Section_gui
myTabPage = TabContSec.SelectedTab
Dim y_pos = get_latest_position(myTabPage)
y_pos = y_pos + 30
'adding the new controls
Dim Basket_lbl As New Label
Basket_lbl.Top = y_pos
Basket_lbl.Left = 10
Basket_lbl.Name = "Item_Basket_" & Control_ID
Basket_lbl.Text = "Basket"
myTabPage.Controls.Add(Basket_lbl)
Dim Pos_tbox As New TextBox
Pos_tbox.Top = y_pos
Pos_tbox.Left = 180
Pos_tbox.Width = 60
Pos_tbox.Name = "Basket_Pos_tb_" & Control_ID
myTabPage.Controls.Add(Pos_tbox)
Dim Pos_lbl As New Label
Pos_lbl.Top = y_pos
Pos_lbl.Left = 120
Pos_lbl.Name = "Basket_Pos_lb_" & Control_ID
Pos_lbl.Text = "Position"
myTabPage.Controls.Add(Pos_lbl)
Dim Depth_tbox As New TextBox
Depth_tbox.Top = y_pos
Depth_tbox.Left = 320
Depth_tbox.Width = 60
Depth_tbox.Name = "Basket_Depth_tb_" & Control_ID
myTabPage.Controls.Add(Depth_tbox)
Dim Depth_lbl As New Label
Depth_lbl.Top = y_pos
Depth_lbl.Left = 260
Depth_lbl.Name = "Basket_Depth_lb_" & Control_ID
Depth_lbl.Text = "Depth"
myTabPage.Controls.Add(Depth_lbl)
Dim Height_cmb As New ComboBox
Height_cmb.Top = y_pos
Height_cmb.Left = 460
Height_cmb.Width = 60
Height_cmb.Name = "Basket_Height_cmb_" & Control_ID
Height_cmb.Items.Add("150")
Height_cmb.Items.Add("300")
Height_cmb.Items.Add("450")
myTabPage.Controls.Add(Height_cmb)
Dim Height_lbl As New Label
Height_lbl.Top = y_pos
Height_lbl.Left = 400
Height_lbl.Name = "Basket_Height_lb_" & Control_ID
Height_lbl.Text = "Height"
myTabPage.Controls.Add(Height_lbl)
End Sub
Sub add_shelf()
'Setting an ID of the item
Control_ID += 1
' Geting the active tabpage and the location where to put the label
Dim myTabPage As TabPage
Dim TabContSec As TabControl
TabContSec = Section_gui
myTabPage = TabContSec.SelectedTab
Dim y_pos = get_latest_position(myTabPage)
y_pos = y_pos + 30
'adding the new controls
Dim Shelf_lbl As New Label
Shelf_lbl.Top = y_pos
Shelf_lbl.Left = 10
Shelf_lbl.Name = "Item_Shelf_" & Control_ID
Shelf_lbl.Text = "Shelf"
myTabPage.Controls.Add(Shelf_lbl)
Dim Pos_tbox As New TextBox
Pos_tbox.Top = y_pos
Pos_tbox.Left = 180
Pos_tbox.Width = 60
Pos_tbox.Name = "Shelf_Pos_tb_" & Control_ID
myTabPage.Controls.Add(Pos_tbox)
Dim Pos_lbl As New Label
Pos_lbl.Top = y_pos
Pos_lbl.Left = 120
Pos_lbl.Name = "Shelf_Pos_lb_" & Control_ID
Pos_lbl.Text = "Position"
myTabPage.Controls.Add(Pos_lbl)
Dim Depth_tbox As New TextBox
Depth_tbox.Top = y_pos
Depth_tbox.Left = 320
Depth_tbox.Width = 60
Depth_tbox.Name = "Shelf_Depth_tb_" & Control_ID
myTabPage.Controls.Add(Depth_tbox)
Dim Depth_lbl As New Label
Depth_lbl.Top = y_pos
Depth_lbl.Left = 260
Depth_lbl.Name = "Shelf_Depth_lb_" & Control_ID
Depth_lbl.Text = "Depth"
myTabPage.Controls.Add(Depth_lbl)
Dim Type_cmb As New ComboBox
Type_cmb.Top = y_pos
Type_cmb.Left = 460
Type_cmb.Width = 60
Type_cmb.Name = "Shelf_type_cmb_" & Control_ID
Type_cmb.Items.Add("Flat")
Type_cmb.Items.Add("Wire")
myTabPage.Controls.Add(Type_cmb)
Dim Height_lbl As New Label
Height_lbl.Top = y_pos
Height_lbl.Left = 400
Height_lbl.Name = "Shelf_type_lb_" & Control_ID
Height_lbl.Text = "Type"
myTabPage.Controls.Add(Height_lbl)
End Sub
Sub add_drying_rack()
'Setting an ID of the item
Control_ID += 1
' Geting the active tabpage and the location where to put the label
Dim myTabPage As TabPage
Dim TabContSec As TabControl
TabContSec = Section_gui
myTabPage = TabContSec.SelectedTab
Dim y_pos = get_latest_position(myTabPage)
y_pos = y_pos + 30
'adding the new controls
Dim Drying_lbl As New Label
Drying_lbl.Top = y_pos
Drying_lbl.Left = 10
Drying_lbl.Name = "Item_Drying_" & Control_ID
Drying_lbl.Text = "Drying Rack"
myTabPage.Controls.Add(Drying_lbl)
Dim Pos_tbox As New TextBox
Pos_tbox.Top = y_pos
Pos_tbox.Left = 180
Pos_tbox.Width = 60
Pos_tbox.Name = "Drying_Pos_tb_" & Control_ID
myTabPage.Controls.Add(Pos_tbox)
Dim Pos_lbl As New Label
Pos_lbl.Top = y_pos
Pos_lbl.Left = 120
Pos_lbl.Name = "Drying_Pos_lb_" & Control_ID
Pos_lbl.Text = "Position"
myTabPage.Controls.Add(Pos_lbl)
Dim Right_cb As New CheckBox
Right_cb.Top = y_pos
Right_cb.Left = 380
Right_cb.Name = "Drying_Right_cb_" & Control_ID
Right_cb.Text = "Right"
myTabPage.Controls.Add(Right_cb)
Dim Mid_cb As New CheckBox
Mid_cb.Top = y_pos
Mid_cb.Left = 320
Mid_cb.Name = "Drying_mid_cb_" & Control_ID
Mid_cb.Text = "Mid"
myTabPage.Controls.Add(Mid_cb)
Dim Left_cb As New CheckBox
Left_cb.Top = y_pos
Left_cb.Left = 260
Left_cb.Name = "Drying_left_cb_" & Control_ID
Left_cb.Text = "Left"
myTabPage.Controls.Add(Left_cb)
End Sub
Function get_latest_position(myTabPage)
Dim Y_pos As Integer = 0
For Each ctl As Control In myTabPage.Controls
If ctl.Location.Y > Y_pos Then
Y_pos = ctl.Location.Y
End If
Next
Return Y_pos
End Function
Function Populate_table_from_GUI()
' creating a set of tables, the data in the tables will be one row per item in the GUI and one table per section tab
Dim Input As New DataSet
Dim sectionTable As New DataTable
sectionTable.Columns.Add("Section_width")
sectionTable.Columns.Add("Section_height")
sectionTable.Columns.Add("Type")
sectionTable.Columns.Add("Position")
sectionTable.Columns.Add("Depth")
sectionTable.Columns.Add("Item_Height")
sectionTable.Columns.Add("Type_of_shelf")
sectionTable.Columns.Add("Quantity")
sectionTable.Columns.Add("Right")
sectionTable.Columns.Add("Mid")
sectionTable.Columns.Add("Left")
' loop through all the tabs in the tab control and get the data
Dim TabContSec As TabControl
TabContSec = Section_gui
For i = 0 To TabContSec.TabCount - 1
sectionTable.Clear()
sectionTable.TableName = "Section_" & i + 1
Dim MyTabPage = TabContSec.TabPages(i)
TabContSec.SelectedTab = MyTabPage
' Geting the data of the section
Dim section_width = MyTabPage.Controls("Width_tb").Text
Dim section_height = MyTabPage.Controls("Height_tb").Text
For Each c As Control In MyTabPage.Controls
' using the name of the Item label to get the Item ID and type
If c.Name.Contains("Item") Then
Dim Splitname = c.Name.Split("_")
Dim Item_Type = Splitname(1)
Dim Item_ID = Splitname(2)
Dim ItemRowNr As Integer
' adding a new row for the new item and start populating relevent colums with info from the GUI
sectionTable.Rows.Add()
ItemRowNr = sectionTable.Rows.Count - 1
sectionTable.Rows(ItemRowNr)("Section_width") = section_width
sectionTable.Rows(ItemRowNr)("Section_height") = section_height
sectionTable.Rows(ItemRowNr)("Type") = Item_Type
If Item_Type = "Basket" Then
sectionTable.Rows(ItemRowNr)("Position") = MyTabPage.Controls("Basket_Pos_tb_" & Item_ID).Text
sectionTable.Rows(ItemRowNr)("Depth") = MyTabPage.Controls("Basket_Depth_tb_" & Item_ID).Text
sectionTable.Rows(ItemRowNr)("Item_Height") = MyTabPage.Controls("Basket_Height_cmb_" & Item_ID).Text
ElseIf Item_Type = "Hanger" Then
sectionTable.Rows(ItemRowNr)("Position") = MyTabPage.Controls("Hanger_Pos_tb_" & Item_ID).Text
ElseIf Item_Type = "Hooks" Then
sectionTable.Rows(ItemRowNr)("Position") = MyTabPage.Controls("Hooks_Pos_tb_" & Item_ID).Text
sectionTable.Rows(ItemRowNr)("Quantity") = MyTabPage.Controls("Hooks_Nr_tb_" & Item_ID).Text
ElseIf Item_Type = "Drying" Then
sectionTable.Rows(ItemRowNr)("Position") = MyTabPage.Controls("Drying_Pos_tb_" & Item_ID).Text
Dim CB As CheckBox
CB = MyTabPage.Controls("Drying_Right_cb_" & Item_ID)
sectionTable.Rows(ItemRowNr)("Right") = CB.Checked
CB = MyTabPage.Controls("Drying_mid_cb_" & Item_ID)
sectionTable.Rows(ItemRowNr)("Mid") = CB.Checked
CB = MyTabPage.Controls("Drying_left_cb_" & Item_ID)
sectionTable.Rows(ItemRowNr)("Left") = CB.Checked
ElseIf Item_Type = "Shelf" Then
sectionTable.Rows(ItemRowNr)("Position") = MyTabPage.Controls("Shelf_Pos_tb_" & Item_ID).Text
sectionTable.Rows(ItemRowNr)("Depth") = MyTabPage.Controls("Shelf_Depth_tb_" & Item_ID).Text
sectionTable.Rows(ItemRowNr)("Type_of_shelf") = MyTabPage.Controls("Shelf_type_cmb_" & Item_ID).Text
End If
End If
Next
Input.Tables.Add(sectionTable.Copy)
Next
Return Input
End Function
Private Sub Rail_btn_Click(sender As Object, e As EventArgs) Handles Rail_btn.Click
add_section()
End Sub
Private Sub Del_rail_btn_Click(sender As Object, e As EventArgs) Handles Del_rail_btn.Click
Del_section()
End Sub
Private Sub Hanger_btn_Click(sender As Object, e As EventArgs) Handles Hanger_btn.Click
add_hanger()
End Sub
Private Sub Hooks_btn_Click(sender As Object, e As EventArgs) Handles Hooks_btn.Click
add_hooks()
End Sub
Private Sub Basket_btn_Click(sender As Object, e As EventArgs) Handles Basket_btn.Click
add_basket()
End Sub
Private Sub Shelf_btn_Click(sender As Object, e As EventArgs) Handles Shelf_btn.Click
add_shelf()
End Sub
Private Sub Drying_btn_Click(sender As Object, e As EventArgs) Handles Drying_btn.Click
add_drying_rack()
End Sub
Private Sub Build_btn_Click(sender As Object, e As EventArgs) Handles Build_btn.Click
adminClass.loadSettings("C:\Users\Asus_station3\Desktop", "D:\OneDrive - XperDi AB\XperDi\DLL_Test\Wardrobe", "SolidWorks")
XCCBaseClass.newDesign()
'comment test
ExternalClass.PopulateTamplateXMLGroup()
Dim Input As DataSet
Input = Populate_table_from_GUI()
Program.Add_Parts(Input)
importClass.copyGroupsByDataSet(ExternalClass.groupds_new)
Dim GrNr = groupClass.NewGroupID
Dim Design_table = designModel.selectDesign("*")
Dim Design_name = Design_table.rows(0)("designName") '"135_0922244" 'CADLinkerClass.New_Design_Name '
groupClass.InstantiateGroup(Design_name, GrNr, "START")
'
End Sub
Private Sub Update_KB_Click(sender As Object, e As EventArgs) Handles Update_KB.Click
Program.UpdateKB()
End Sub
End Class