Refactor VM Switch initialization logic

Move the `Initialize-VMSwitchData` function call from the main UI script into the `Initialize-UIDefaults` function.

This change centralizes the UI default initialization logic within the core module, improving code organization and ensuring VM Switch data is loaded at the correct time.
This commit is contained in:
rbalsleyMSFT
2025-06-19 19:16:11 -07:00
parent 244aba88d3
commit ca0a51ec15
2 changed files with 37 additions and 37 deletions
-2
View File
@@ -131,8 +131,6 @@ $window.Add_Loaded({
Initialize-DynamicUIElements -State $script:uiState Initialize-DynamicUIElements -State $script:uiState
Initialize-VMSwitchData -State $script:uiState
Register-EventHandlers -State $script:uiState Register-EventHandlers -State $script:uiState
}) })
@@ -146,6 +146,37 @@ function Initialize-UIControls {
$State.Controls.chkUpdateADK = $window.FindName('chkUpdateADK') $State.Controls.chkUpdateADK = $window.FindName('chkUpdateADK')
} }
function Initialize-VMSwitchData {
param([PSCustomObject]$State)
WriteLog "Initializing VM Switch data..."
# Hyper-V Settings: Populate VM Switch ComboBox
$vmSwitchData = Get-VMSwitchData
$State.Data.vmSwitchMap = $vmSwitchData.SwitchMap
$State.Controls.cmbVMSwitchName.Items.Clear()
foreach ($switchName in $vmSwitchData.SwitchNames) {
$State.Controls.cmbVMSwitchName.Items.Add($switchName) | Out-Null
}
$State.Controls.cmbVMSwitchName.Items.Add('Other') | Out-Null
if ($State.Controls.cmbVMSwitchName.Items.Count -gt 1) {
$State.Controls.cmbVMSwitchName.SelectedIndex = 0
$firstSwitch = $State.Controls.cmbVMSwitchName.SelectedItem
if ($State.Data.vmSwitchMap.ContainsKey($firstSwitch)) {
$State.Controls.txtVMHostIPAddress.Text = $State.Data.vmSwitchMap[$firstSwitch]
}
else {
$State.Controls.txtVMHostIPAddress.Text = $State.Defaults.generalDefaults.VMHostIPAddress # Use default if IP not found
}
$State.Controls.txtCustomVMSwitchName.Visibility = 'Collapsed'
}
else {
$State.Controls.cmbVMSwitchName.SelectedItem = 'Other'
$State.Controls.txtCustomVMSwitchName.Visibility = 'Visible'
$State.Controls.txtVMHostIPAddress.Text = $State.Defaults.generalDefaults.VMHostIPAddress # Use default
}
}
function Initialize-UIDefaults { function Initialize-UIDefaults {
param([PSCustomObject]$State) param([PSCustomObject]$State)
WriteLog "Initializing UI defaults..." WriteLog "Initializing UI defaults..."
@@ -186,6 +217,7 @@ function Initialize-UIDefaults {
$State.Controls.chkPromptExternalHardDiskMedia.IsEnabled = $State.Controls.chkAllowExternalHardDiskMedia.IsChecked $State.Controls.chkPromptExternalHardDiskMedia.IsEnabled = $State.Controls.chkAllowExternalHardDiskMedia.IsChecked
# Hyper-V Settings defaults from General Defaults # Hyper-V Settings defaults from General Defaults
Initialize-VMSwitchData -State $State
$State.Controls.txtDiskSize.Text = $State.Defaults.generalDefaults.DiskSizeGB $State.Controls.txtDiskSize.Text = $State.Defaults.generalDefaults.DiskSizeGB
$State.Controls.txtMemory.Text = $State.Defaults.generalDefaults.MemoryGB $State.Controls.txtMemory.Text = $State.Defaults.generalDefaults.MemoryGB
$State.Controls.txtProcessors.Text = $State.Defaults.generalDefaults.Processors $State.Controls.txtProcessors.Text = $State.Defaults.generalDefaults.Processors
@@ -267,7 +299,7 @@ function Initialize-UIDefaults {
# Set initial state for BYO Apps copy button # Set initial state for BYO Apps copy button
Update-CopyButtonState -State $State Update-CopyButtonState -State $State
} }
function Initialize-DynamicUIElements { function Initialize-DynamicUIElements {
param([PSCustomObject]$State) param([PSCustomObject]$State)
@@ -470,35 +502,5 @@ function Initialize-DynamicUIElements {
} }
} }
function Initialize-VMSwitchData {
param([PSCustomObject]$State)
WriteLog "Initializing VM Switch data..."
# Hyper-V Settings: Populate VM Switch ComboBox
$vmSwitchData = Get-VMSwitchData
$State.Data.vmSwitchMap = $vmSwitchData.SwitchMap
$State.Controls.cmbVMSwitchName.Items.Clear()
foreach ($switchName in $vmSwitchData.SwitchNames) {
$State.Controls.cmbVMSwitchName.Items.Add($switchName) | Out-Null
}
$State.Controls.cmbVMSwitchName.Items.Add('Other') | Out-Null
if ($State.Controls.cmbVMSwitchName.Items.Count -gt 1) {
$State.Controls.cmbVMSwitchName.SelectedIndex = 0
$firstSwitch = $State.Controls.cmbVMSwitchName.SelectedItem
if ($State.Data.vmSwitchMap.ContainsKey($firstSwitch)) {
$State.Controls.txtVMHostIPAddress.Text = $State.Data.vmSwitchMap[$firstSwitch]
}
else {
$State.Controls.txtVMHostIPAddress.Text = $State.Defaults.generalDefaults.VMHostIPAddress # Use default if IP not found
}
$State.Controls.txtCustomVMSwitchName.Visibility = 'Collapsed'
}
else {
$State.Controls.cmbVMSwitchName.SelectedItem = 'Other'
$State.Controls.txtCustomVMSwitchName.Visibility = 'Visible'
$State.Controls.txtVMHostIPAddress.Text = $State.Defaults.generalDefaults.VMHostIPAddress # Use default
}
}
Export-ModuleMember -Function * Export-ModuleMember -Function *