def createComboBox2(parent, title, labels, selected, row, col): textBlock = WPFControls.TextBlock() textBlock.Text = title textBlock.Margin = System.Windows.Thickness(5.) WPFControls.Grid.SetRow(textBlock, row) WPFControls.Grid.SetColumn(textBlock, col) parent.Children.Add(textBlock) comboBox = WPFControls.ComboBox() comboBox.Margin = System.Windows.Thickness(5.) for label in labels: item = WPFControls.ComboBoxItem() item.Content = label comboBox.Items.Add(item) WPFControls.Grid.SetRow(comboBox, row) WPFControls.Grid.SetColumn(comboBox, col + 1) if selected > len(labels): selected = 0 comboBox.SelectedIndex = str(selected) parent.Children.Add(comboBox) return comboBox
def updateComboBox(comboBox, comboItems): for comboItem in comboItems: item = WPFControls.ComboBoxItem() item.Content = comboItem comboBox.Items.Add(item) comboBox.SelectedIndex = "0"
def getCustomToolPropertyContent(): # Create a Grid my_Grid = WPFControls.Grid() # Add 2 Rows and 1 Column my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.ColumnDefinitions.Add(WPFControls.ColumnDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.ColumnDefinitions.Add(WPFControls.ColumnDefinition()) currRow = 0 # -- Horizontal sheet definition IDLbl = WPFControls.TextBlock() IDLbl.Text = "Hatching definition" WPFControls.Grid.SetRow(IDLbl, currRow) IDLbl.FontSize = 11 # Create label and input field currRow += 1 layerLbl = WPFControls.TextBlock() layerLbl.Text = " Trajec. spacing (mm): " WPFControls.Grid.SetRow(layerLbl, currRow) WPFControls.Grid.SetColumn(layerLbl, 0) global distanceLine distanceLine = WPFControls.TextBox() WPFControls.Grid.SetRow(distanceLine, currRow) WPFControls.Grid.SetColumn(distanceLine, 1) # Create label and input field currRow += 1 pointSpacing = WPFControls.TextBlock() pointSpacing.Text = " Point spacing (mm):" WPFControls.Grid.SetRow(pointSpacing, currRow) WPFControls.Grid.SetColumn(pointSpacing, 0) global pointSpacingValue pointSpacingValue = WPFControls.TextBox() WPFControls.Grid.SetRow(pointSpacingValue, currRow) WPFControls.Grid.SetColumn(pointSpacingValue, 1) # Type of angular cut currRow += 1 angleCutType = WPFControls.TextBlock() angleCutType.Text = " Angular cut:" WPFControls.Grid.SetRow(angleCutType, currRow) WPFControls.Grid.SetColumn(angleCutType, 0) # Create a Combo box global angleTypeSelection angleTypeSelection = WPFControls.ComboBox() item1 = WPFControls.ComboBoxItem() item1.Content = "Single angle" angleTypeSelection.Items.Add(item1) item2 = WPFControls.ComboBoxItem() item2.Content = "Incremental" angleTypeSelection.Items.Add(item2) item3 = WPFControls.ComboBoxItem() item3.Content = "Cycle through" angleTypeSelection.Items.Add(item3) angleTypeSelection.SelectedIndex = "0" WPFControls.Grid.SetRow(angleTypeSelection, currRow) WPFControls.Grid.SetColumn(angleTypeSelection, 1) #angleTypeSelection.SelectionChanged += HandleAngleSelection # Create label and input field currRow += 1 global angleLbl angleLbl = WPFControls.TextBlock() angleLbl.Text = " Angle (deg):" WPFControls.Grid.SetRow(angleLbl, currRow) WPFControls.Grid.SetColumn(angleLbl, 0) global angleValue angleValue = WPFControls.TextBox() WPFControls.Grid.SetRow(angleValue, currRow) WPFControls.Grid.SetColumn(angleValue, 1) # Create checkbox to ask for mesh currRow += 1 global meshCheck meshCheck = WPFControls.CheckBox() meshCheck.Content = "Mesh the layers for me" meshCheck.Height = 25 WPFControls.Grid.SetRow(meshCheck, currRow) WPFControls.Grid.SetColumn(meshCheck, 0) WPFControls.Grid.SetColumnSpan(meshCheck, 3) # Create a button currRow += 1 getDirectory = WPFControls.Button() getDirectory.Content = "Select directory to save" WPFControls.Grid.SetRow(getDirectory, currRow) WPFControls.Grid.SetColumn(getDirectory, 0) getDirectory.Height = 30 WPFControls.Grid.SetColumnSpan(getDirectory, 3) getDirectory.Click += HandleGetDir global dialog dialog = FolderBrowserDialog() dialog.Description = "Choose where to save trajectories" dialog.ShowNewFolderButton = True # Create a button currRow += 1 goSlice = WPFControls.Button() goSlice.Content = "Create hatching" WPFControls.Grid.SetRow(goSlice, currRow) WPFControls.Grid.SetColumn(goSlice, 0) goSlice.Height = 30 WPFControls.Grid.SetColumnSpan(goSlice, 3) # Link a function to the Button "Click" event # This function will be called every time the Button is clicked goSlice.Click += HandleApplyButton # Add the controls to the Grid my_Grid.Children.Add(IDLbl) my_Grid.Children.Add(layerLbl) my_Grid.Children.Add(distanceLine) my_Grid.Children.Add(pointSpacing) my_Grid.Children.Add(pointSpacingValue) my_Grid.Children.Add(angleCutType) my_Grid.Children.Add(angleTypeSelection) my_Grid.Children.Add(angleLbl) my_Grid.Children.Add(angleValue) my_Grid.Children.Add(getDirectory) my_Grid.Children.Add(meshCheck) my_Grid.Children.Add(goSlice) # Return the Grid return my_Grid
def getCustomToolPropertyContent(): # Create a Grid my_Grid = WPFControls.Grid() # Add 2 Rows and 1 Column my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.RowDefinitions.Add(WPFControls.RowDefinition()) my_Grid.ColumnDefinitions.Add(WPFControls.ColumnDefinition()) my_Grid.ColumnDefinitions.Add(WPFControls.ColumnDefinition()) # Row 0 currRow = 0 # Create a label (TextBlock) # Set it's Text value # Assign it to Row 0, Column 0 refineTextBlock = WPFControls.TextBlock() refineTextBlock.Text = "Bead leg (mm):" WPFControls.Grid.SetRow(refineTextBlock, currRow) WPFControls.Grid.SetColumn(refineTextBlock, 0) global refineSizeTextBox # Create an empty input TextBox assign it to Row 0, Column 1 refineSizeTextBox = WPFControls.TextBox() WPFControls.Grid.SetRow(refineSizeTextBox, currRow) WPFControls.Grid.SetColumn(refineSizeTextBox, 1) # Create a button and set it's text to "Import" # Assign it to Row1, Column 0 currRow += 1 importBtn = WPFControls.Button() importBtn.Content = "Import CSV files" WPFControls.Grid.SetRow(importBtn, currRow) WPFControls.Grid.SetColumn(importBtn, 0) WPFControls.Grid.SetColumnSpan(importBtn, 2) importBtn.Height = 30 # Link a function to the Button "Click" event # This function will be called every time the Button is clicked importBtn.Click += HandleimportBtn # Create an empty input TextBox currRow += 1 global fileNameTextBox fileNameTextBox = WPFControls.TextBlock() WPFControls.Grid.SetRow(fileNameTextBox, currRow) WPFControls.Grid.SetColumn(fileNameTextBox, 1) fileNameTextBox.Text = "None" selectedFilesText = WPFControls.TextBlock() selectedFilesText.Text = "File(s) selected:" WPFControls.Grid.SetRow(selectedFilesText, currRow) WPFControls.Grid.SetColumn(selectedFilesText, 0) # Create a Combo box currRow += 1 UnitNameLbl = WPFControls.TextBlock() UnitNameLbl.Text = "Length unit in file(s):" WPFControls.Grid.SetRow(UnitNameLbl, currRow) WPFControls.Grid.SetColumn(UnitNameLbl, 0) global unitType unitType = WPFControls.ComboBox() item1 = WPFControls.ComboBoxItem() item1.Content = "Millimeters" unitType.Items.Add(item1) item2 = WPFControls.ComboBoxItem() item2.Content = "Meters" unitType.Items.Add(item2) item3 = WPFControls.ComboBoxItem() item3.Content = "Inches" unitType.Items.Add(item3) unitType.SelectedIndex = "0" WPFControls.Grid.SetRow(unitType, currRow) WPFControls.Grid.SetColumn(unitType, 1) # Create checkbox to extend the weld bead currRow += 1 extendLbl = WPFControls.TextBlock() WPFControls.Grid.SetRow(extendLbl, currRow) WPFControls.Grid.SetColumn(extendLbl, 0) extendLbl.Text = "Extend by diameter:" global extendBead extendBead = WPFControls.CheckBox() extendBead.Content = "Extend" extendBead.Height = 20 WPFControls.Grid.SetRow(extendBead, currRow) WPFControls.Grid.SetColumn(extendBead, 1) # WPFControls.Grid.SetColumnSpan(extendBead, 2) # Create a button and set it's text to "Create beads" # Assign it to Row1, Column 0 currRow += 1 createBeads = WPFControls.Button() createBeads.Content = "Create trajectories" WPFControls.Grid.SetRow(createBeads, currRow) WPFControls.Grid.SetColumn(createBeads, 0) WPFControls.Grid.SetColumnSpan(createBeads, 2) createBeads.Height = 30 # Link a function to the Button "Click" event # This function will be called every time the Butto is clicked createBeads.Click += CreateBeads # Add the controls to the Grid my_Grid.Children.Add(refineSizeTextBox) my_Grid.Children.Add(extendLbl) my_Grid.Children.Add(extendBead) my_Grid.Children.Add(importBtn) my_Grid.Children.Add(refineTextBlock) my_Grid.Children.Add(selectedFilesText) my_Grid.Children.Add(fileNameTextBox) my_Grid.Children.Add(UnitNameLbl) my_Grid.Children.Add(unitType) my_Grid.Children.Add(createBeads) # Return the Grid return my_Grid