public ContainersPage()

in Editor/Window/Containers/ContainersPage.cs [98:213]


        public ContainersPage(VisualElement container, StateManager stateManager)
        {  
            _container = container;
            _stateManager = stateManager;
            var mVisualTreeAsset = UnityEngine.Resources.Load<VisualTreeAsset>("EditorWindow/Pages/ContainersPage");
            var uxml = mVisualTreeAsset.Instantiate();

            _deploymentSettings = DeploymentSettingsFactory.CreateContainerDeploymentSettings(_stateManager);

            container.Add(uxml);
            LocalizeText();
            SetupStatusBoxes();

            _stateManager.OnUserProfileUpdated += UpdateStatusBoxes;
            _stateManager.OnUserProfileUpdated += DisableUIIfNotSetup;

            _deployContainerFleetButton = container.Q<Button>("DeployContainerFleetButton");
            _resetDeploymentButton = container.Q<Button>("ResetDeploymentButton");
            _viewFleetOnConsoleButton = container.Q<Button>("AWSConsoleButton");

            // Profile table
            profileTableContainer = container.Q<VisualElement>("ProfileTableContainer");

            //Profile table foldout
            profileTableFoldoutTitle = container.Q<Label>("ProfileTableFoldoutTitle");
            profileTableFoldoutContainer = container.Q<VisualElement>("ProfileTableFoldoutContainer");
            profileTableFoldout = container.Q<Foldout>("ProfileTableFoldout");

            InitializeInputFoldout(profileTableFoldout, profileTableFoldoutTitle);

            //Questionnaire
            questionaireContainer = container.Q<VisualElement>("ContainerQuestionnaireContainer");
            _containersQuestionnaire = new ContainersQuestionnaire(questionaireContainer, stateManager, true);

            // Questionnaire foldout
            questionnaireFoldoutTitle = container.Q<Label>("QuestionnaireFoldoutTitle");
            questionaireFoldoutContainer = container.Q<VisualElement>("ContainerQuestionnaireFoldoutContainer");
            questionnaireFoldout = container.Q<Foldout>("ContainerQuestionnaireFoldout");
            _containersQuestionnaireFoldout = new ContainersQuestionnaire(questionnaireFoldout, stateManager, false);
            _containersQuestionnaireFoldout.PopulateContent();

            InitializeInputFoldout(questionnaireFoldout, questionnaireFoldoutTitle);

            // User input
            userInputContainer = container.Q<VisualElement>("ConfigureImageDeploymentContainer");
            _containersUserInput = new ContainersUserInput(userInputContainer, stateManager, true);
            _containersUserInput.OnValidationEvent += ShowHideDeployButton;
            
            // User input foldout
            userInputFoldoutTitle = container.Q<Label>("UserInputFoldoutTitle");
            userInputFoldoutContainer = container.Q<VisualElement>("ContainerUserInputFoldoutContainer");
            userInputFoldout = container.Q<Foldout>("ContainerUserInputFoldout");
            _containersUserInputFoldout = new ContainersUserInput(userInputFoldout, stateManager, false);
            _containersUserInputFoldout.PopulateContent();

            InitializeInputFoldout(userInputFoldout, userInputFoldoutTitle);

            // Control bar
            controlBarContainer = container.Q<VisualElement>("ContainerControlBar");

            // Launch bar
            _launchBarContainer = container.Q<VisualElement>("ContainersLaunchBar");

            // Containers Unsupported Warning
            _containersUnsupportedStatusBox = container.Q<StatusBox>("RegionUnsupportedStatusBox");
            var unsupportedRegionWarning =
                string.Format(new TextProvider().Get(Strings.ContainersPageRegionUnsupportedStatusBoxTemplate),
                    _stateManager.Region);
            _containersUnsupportedStatusBox.Show(StatusBox.StatusBoxType.Warning, unsupportedRegionWarning,
                externalButtonLink: Urls.SupportedContainersRegions, externalButtonText: "View supported regions");

            _isDockerInstalled = IsDockerInstalled();

            _missingWslDockerStatusBox = container.Q<StatusBox>("MissingWslDockerStatusBox");
            _missingWslDockerStatusBox.Show(StatusBox.StatusBoxType.Warning, Strings.ContainersPageMissingWslDockerStatusBoxText,
    externalButtonLink: Urls.InstallDockerEngine, externalButtonText: "Install Docker Engine");
            _missingWslDockerStatusBox.HideCloseButton();

            _deploymentNoticeStatusBox = container.Q<StatusBox>("DeploymentNoticeStatusBox");
            _deploymentNoticeStatusBox.Show(StatusBox.StatusBoxType.Info, Strings.ContainersPageDeploymentNoticeStatusBoxText);
            ShowHideNotices();

            // Initialize all the steps
            foreach (ContainerSteps step in getAllSteps())
            {
                InitializeStep(step);
            }

            container.Q<Button>("ManageCredentialsButton")
                .RegisterCallback<ClickEvent>(_ => EditorMenu.OpenAccountProfilesTab());

            container.Q<Button>("UpdateDeploymentButton")
                .RegisterCallback<ClickEvent>(_ => OpenUpdateContainersFleetPopup());

            stateManager.OnContainerQuestionnaireScenarioChanged += UpdateGUI;

            stateManager.OnContainersDeploymentStatusChanged += ShowHideLaunchBar;

            _gameLiftClientSettingsLoader = new GameLiftClientSettingsLoader();
            LoadGameLiftClientSettings();

            _launchClientButton = container.Q<Button>("StartClientButton");
            _launchClientButton.RegisterCallback<ClickEvent>(_ =>
            {
                _gameLiftClientSettings.ConfigureContainersClientSettings(_stateManager.Region, _deploymentSettings.CurrentStackInfo.ApiGatewayEndpoint, _deploymentSettings.CurrentStackInfo.UserPoolClientId);
                _stateManager.OnClientSettingsChanged?.Invoke();
                EditorUserBuildSettings.SwitchActiveBuildTarget(NamedBuildTarget.Standalone,
                    EditorUserBuildSettings.selectedStandaloneTarget);
                EditorApplication.EnterPlaymode();
            });


            DisableUIIfNotSetup();
            UpdateGUI();
            UpdateStatusBoxes();
        }