mirror of
https://github.com/rbalsleyMSFT/FFU.git
synced 2026-06-14 10:19:36 -06:00
Refactor UI initialization into core module
Moves UI initialization logic for the "Bring Your Own" applications section from the main UI script into the `FFUUI.Core` module. This centralization cleans up the main script's `Loaded` event handler and improves code organization and maintainability.
This commit is contained in:
@@ -134,52 +134,6 @@ $window.Add_Loaded({
|
|||||||
Initialize-VMSwitchData -State $script:uiState
|
Initialize-VMSwitchData -State $script:uiState
|
||||||
|
|
||||||
Register-EventHandlers -State $script:uiState
|
Register-EventHandlers -State $script:uiState
|
||||||
|
|
||||||
# BYO Apps ListView setup (Keep existing logic, ensure CopyStatus column
|
|
||||||
$byoGridView = $script:uiState.Controls.lstApplications.View
|
|
||||||
if ($byoGridView -is [System.Windows.Controls.GridView]) {
|
|
||||||
$copyStatusColumnExists = $false
|
|
||||||
foreach ($col in $byoGridView.Columns) {
|
|
||||||
if ($col.Header -eq "Copy Status") {
|
|
||||||
$copyStatusColumnExists = $true; break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (-not $copyStatusColumnExists) {
|
|
||||||
$actionColumnIndex = -1
|
|
||||||
for ($i = 0; $i -lt $byoGridView.Columns.Count; $i++) {
|
|
||||||
if ($byoGridView.Columns[$i].Header -eq "Action") {
|
|
||||||
$actionColumnIndex = $i; break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$copyStatusColumn = New-Object System.Windows.Controls.GridViewColumn
|
|
||||||
$copyStatusColumn.Header = "Copy Status"
|
|
||||||
$copyStatusColumn.DisplayMemberBinding = New-Object System.Windows.Data.Binding("CopyStatus")
|
|
||||||
$copyStatusColumn.Width = 150
|
|
||||||
if ($actionColumnIndex -ge 0) {
|
|
||||||
$byoGridView.Columns.Insert($actionColumnIndex, $copyStatusColumn)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$byoGridView.Columns.Add($copyStatusColumn)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Update-CopyButtonState -State $script:uiState # Initial check
|
|
||||||
|
|
||||||
# Initial state for chkDefineAppsScriptVariables based on chkInstallApps
|
|
||||||
if ($script:uiState.Controls.chkInstallApps.IsChecked) {
|
|
||||||
$script:uiState.Controls.chkDefineAppsScriptVariables.Visibility = 'Visible'
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$script:uiState.Controls.chkDefineAppsScriptVariables.Visibility = 'Collapsed'
|
|
||||||
}
|
|
||||||
# Initial state for appsScriptVariablesPanel based on chkDefineAppsScriptVariables
|
|
||||||
if ($script:uiState.Controls.chkDefineAppsScriptVariables.IsChecked) {
|
|
||||||
$script:uiState.Controls.appsScriptVariablesPanel.Visibility = 'Visible'
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$script:uiState.Controls.appsScriptVariablesPanel.Visibility = 'Collapsed'
|
|
||||||
}
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -262,9 +262,12 @@ function Initialize-UIDefaults {
|
|||||||
# Set initial state for Office panel visibility
|
# Set initial state for Office panel visibility
|
||||||
Update-OfficePanelVisibility -State $State
|
Update-OfficePanelVisibility -State $State
|
||||||
|
|
||||||
# Set initial state for Application panel visibility
|
# Set initial state for Application panel visibility
|
||||||
Update-ApplicationPanelVisibility -State $State
|
Update-ApplicationPanelVisibility -State $State
|
||||||
}
|
|
||||||
|
# Set initial state for BYO Apps copy button
|
||||||
|
Update-CopyButtonState -State $State
|
||||||
|
}
|
||||||
|
|
||||||
function Initialize-DynamicUIElements {
|
function Initialize-DynamicUIElements {
|
||||||
param([PSCustomObject]$State)
|
param([PSCustomObject]$State)
|
||||||
|
|||||||
Reference in New Issue
Block a user