Maze / Library /PackageCache /com.unity.collab-proxy@2.0.4 /Editor /PlasticSCM /Configuration /TeamEdition /TeamEditionConfigurationWindow.cs
| using System; | |
| using UnityEditor; | |
| using UnityEngine; | |
| using UnityEngine.UIElements; | |
| using PlasticGui; | |
| using Codice.CM.Common; | |
| using Codice.Client.Common; | |
| using Unity.PlasticSCM.Editor.UI.UIElements; | |
| using PlasticGui.Configuration.TeamEdition; | |
| using PlasticGui.Configuration; | |
| using PlasticGui.WebApi; | |
| using Unity.PlasticSCM.Editor.Views.Welcome; | |
| namespace Unity.PlasticSCM.Editor.Configuration.TeamEdition | |
| { | |
| internal class TeamEditionConfigurationWindow : EditorWindow | |
| { | |
| internal static void ShowWindow(IPlasticWebRestApi restApi, WelcomeView welcomeView) | |
| { | |
| TeamEditionConfigurationWindow window = GetWindow<TeamEditionConfigurationWindow>(); | |
| window.mRestApi = restApi; | |
| window.mWelcomeView = welcomeView; | |
| window.titleContent = new GUIContent( | |
| PlasticLocalization.GetString(PlasticLocalization.Name.WelcomeToUnityVCS)); | |
| window.minSize = window.maxSize = new Vector2(650, 300); | |
| window.Show(); | |
| } | |
| void OnEnable() | |
| { | |
| InitializeLayoutAndStyles(); | |
| BuildComponents(); | |
| } | |
| void Dispose() | |
| { | |
| mConnectButton.clicked -= ConnectButton_Clicked; | |
| mCheckConnectionButton.clicked -= CheckConnectionButton_Clicked; | |
| mOkButton.clicked -= OkButton_Clicked; | |
| mCancelButton.clicked -= CancelButton_Clicked; | |
| mServerTextField.UnregisterValueChangedCallback(OnServerTextFieldChanged); | |
| mUseSslToggle.UnregisterValueChangedCallback(OnUseSslToggleChanged); | |
| mLoadingSpinner.Dispose(); | |
| } | |
| void ConnectButton_Clicked() | |
| { | |
| ConfigurationConnectServerButtonClickEvent.Click( | |
| server: mUserAssistant.GetProposedServer(), | |
| HideValidation: HideValidation, | |
| ShowError: ShowServerValidationError, | |
| ShowProgress: ShowProgress, | |
| HideProgress: HideProgress, | |
| ShowNotification: ShowServerNotificationMessage, | |
| DisableButtons: () => { mConnectButton.SetEnabled(false); }, | |
| EnableButtons: () => { mConnectButton.SetEnabled(true); }, | |
| UpdatePasswordEntries: (seidWorkingMode) => | |
| { | |
| UpdatePasswordEntries(ValidateServerAndCreds. | |
| IsPasswordRequired(seidWorkingMode)); | |
| }, | |
| NotifyWorkingMode: (mode) => { mSEIDWorkingMode = mode; }, | |
| NotifyConnectedStatus: (b) => { }); | |
| mUserTextField.SetEnabled(true); | |
| } | |
| void OnDestroy() | |
| { | |
| Dispose(); | |
| if (mWelcomeView != null) | |
| mWelcomeView.OnUserClosedConfigurationWindow(); | |
| } | |
| void CheckConnectionButton_Clicked() | |
| { | |
| ConfigurationCheckCredentialsButtonClickEvent.Click( | |
| mSEIDWorkingMode, | |
| mUserTextField.value, | |
| mPasswordTextField.value, | |
| Edition.Team, | |
| mUserAssistant, | |
| HideCredentialsValidationError, | |
| ShowCheckCredentialsError, | |
| ShowProgress, | |
| HideProgress, | |
| ShowNotification: ShowCredentialsNotificationMessage, | |
| DisableButtons: () => { mCheckConnectionButton.SetEnabled(false); mConnectButton.SetEnabled(false); }, | |
| EnableButtons: () => { mCheckConnectionButton.SetEnabled(true); mConnectButton.SetEnabled(true); }, | |
| NotifyWorkingMode: (mode) => { mSEIDWorkingMode = mode; }, | |
| NotifyConnectedStatus: (status) => { }, | |
| restApi: mRestApi, | |
| cmConnection: CmConnection.Get()); | |
| } | |
| void CancelButton_Clicked() | |
| { | |
| Close(); | |
| } | |
| void OkButton_Clicked() | |
| { | |
| if (!ValidateServerAndCreds.IsValidInput( | |
| mUserAssistant.GetProposedServer(), | |
| mUserTextField.value, | |
| mSEIDWorkingMode, | |
| mPasswordTextField.value, | |
| ShowCheckCredentialsError)) | |
| { | |
| return; | |
| } | |
| ConfigurationActions.SaveClientConfig( | |
| mServerTextField.value, | |
| mSEIDWorkingMode, | |
| mUserTextField.value, | |
| mPasswordTextField.value); | |
| Close(); | |
| } | |
| void HideCredentialsValidationError() | |
| { | |
| mCredentialsLabel.RemoveFromClassList("error"); | |
| mCredentialsLabel.Hide(); | |
| } | |
| void BuildComponents() | |
| { | |
| VisualElement root = rootVisualElement; | |
| root.Query<Label>("plasticConfigurationTitle").First().text = | |
| PlasticLocalization.GetString(PlasticLocalization.Name.PlasticConfigurationTitleUnityVCS); | |
| root.SetControlText<Label>( | |
| "plasticConfigurationExplanation", | |
| PlasticLocalization.Name.PlasticConfigurationExplanation); | |
| root.SetControlText<Label>("configurationServerInfo", | |
| PlasticLocalization.Name.PlasticSCMServerLabel); | |
| root.SetControlText<Button>( | |
| "connect", | |
| PlasticLocalization.Name.Connect); | |
| root.SetControlText<Label>("useSsl", | |
| PlasticLocalization.Name.UseSsl); | |
| root.SetControlText<Label>("configurationUserNameInfo", | |
| PlasticLocalization.Name.ConfigurationUserNameInfo); | |
| root.SetControlText<Label>("configurationCredentialsInfo", | |
| PlasticLocalization.Name.ConfigurationCredentialsInfo); | |
| root.SetControlText<Button>("check", | |
| PlasticLocalization.Name.Check); | |
| root.SetControlText<Label>("credentialsOk", | |
| PlasticLocalization.Name.CredentialsOK); | |
| root.SetControlText<Button>("okButton", | |
| PlasticLocalization.Name.OkButton); | |
| root.SetControlText<Button>("cancelButton", | |
| PlasticLocalization.Name.CancelButton); | |
| mSpinnerContainer = root.Query<VisualElement>("spinnerContainer").First(); | |
| mSpinnerLabel = root.Query<Label>("spinnerLabel").First(); | |
| mLoadingSpinner = new LoadingSpinner(); | |
| mSpinnerContainer.Add(mLoadingSpinner); | |
| mSpinnerContainer.Hide(); | |
| mCheckConnectionButton = root.Query<Button>("check").First(); | |
| mCheckConnectionButton.clicked += CheckConnectionButton_Clicked; | |
| mConnectButton = root.Query<Button>("connect").First(); | |
| mConnectButton.clicked += ConnectButton_Clicked; | |
| mServerTextField = root.Query<TextField>("serverTextField").First(); | |
| mServerTextField.RegisterValueChangedCallback(OnServerTextFieldChanged); | |
| mUseSslToggle = root.Query<Toggle>("useSslToogle").First(); | |
| mUseSslToggle.RegisterValueChangedCallback(OnUseSslToggleChanged); | |
| mUserTextField = root.Query<TextField>("userTextField").First(); | |
| mUserTextField.SetEnabled(false); | |
| mPasswordTextField = root.Query<TextField>("passwordTextField").First(); | |
| mPasswordTextField.isPasswordField = true; | |
| mConnectedLabel = root.Query<Label>("connectedLabel").First(); | |
| mCredentialsLabel = root.Query<Label>("credentialsOk").First(); | |
| mOkButton = root.Query<Button>("okButton").First(); | |
| mOkButton.clicked += OkButton_Clicked; | |
| mCancelButton = root.Query<Button>("cancelButton").First(); | |
| mCancelButton.clicked += CancelButton_Clicked; | |
| } | |
| void OnUseSslToggleChanged(ChangeEvent<bool> evt) | |
| { | |
| mUserAssistant.OnSslChanged(mServerTextField.value, evt.newValue); | |
| mServerTextField.value = mUserAssistant.GetProposedServer(); | |
| } | |
| void InitializeLayoutAndStyles() | |
| { | |
| VisualElement root = rootVisualElement; | |
| root.LoadLayout(typeof(TeamEditionConfigurationWindow).Name); | |
| root.LoadStyle(typeof(TeamEditionConfigurationWindow).Name); | |
| } | |
| void OnServerTextFieldChanged(ChangeEvent<string> evt) | |
| { | |
| mUserAssistant.OnServerChanged(evt.newValue); | |
| mUseSslToggle.value = mUserAssistant.IsSslServer(evt.newValue); | |
| } | |
| void ShowServerNotificationMessage(string message) | |
| { | |
| mConnectedLabel.text = message; | |
| mConnectedLabel.Show(); | |
| } | |
| void ShowServerValidationError(string message) | |
| { | |
| mConnectedLabel.text = message; | |
| mConnectedLabel.AddToClassList("error"); | |
| mConnectedLabel.Show(); | |
| } | |
| void ShowCredentialsNotificationMessage(string message) | |
| { | |
| mCredentialsLabel.text = message; | |
| mCredentialsLabel.Show(); | |
| } | |
| void ShowCheckCredentialsError(string message) | |
| { | |
| mCredentialsLabel.text = message; | |
| mCredentialsLabel.AddToClassList("error"); | |
| mCredentialsLabel.Show(); | |
| } | |
| void HideValidation() | |
| { | |
| mConnectedLabel.RemoveFromClassList("error"); | |
| mConnectedLabel.Hide(); | |
| } | |
| void ShowProgress(string text) | |
| { | |
| mSpinnerLabel.text = text; | |
| mSpinnerContainer.Show(); | |
| mSpinnerLabel.Show(); | |
| mLoadingSpinner.Start(); | |
| } | |
| void HideProgress() | |
| { | |
| mLoadingSpinner.Stop(); | |
| mSpinnerContainer.Hide(); | |
| mSpinnerLabel.Hide(); | |
| } | |
| void UpdatePasswordEntries(bool bIsPasswordRequired) | |
| { | |
| if (!bIsPasswordRequired) | |
| { | |
| mPasswordTextField.Collapse(); | |
| mUserTextField.SetEnabled(false); | |
| mUserTextField.value = Environment.UserName; | |
| return; | |
| } | |
| mUserTextField.SetEnabled(true); | |
| mPasswordTextField.Show(); | |
| mUserTextField.SelectAll(); | |
| mUserTextField.FocusWorkaround(); | |
| } | |
| Button mConnectButton; | |
| Label mConnectedLabel; | |
| TextField mServerTextField; | |
| TextField mPasswordTextField; | |
| Toggle mUseSslToggle; | |
| LoadingSpinner mLoadingSpinner; | |
| Label mSpinnerLabel; | |
| VisualElement mSpinnerContainer; | |
| Button mCheckConnectionButton; | |
| Label mCredentialsLabel; | |
| Button mOkButton; | |
| Button mCancelButton; | |
| SEIDWorkingMode mSEIDWorkingMode = SEIDWorkingMode.UPWorkingMode; | |
| ConfigurationDialogUserAssistant mUserAssistant = | |
| new ConfigurationDialogUserAssistant(); | |
| IPlasticWebRestApi mRestApi; | |
| WelcomeView mWelcomeView; | |
| TextField mUserTextField; | |
| } | |
| } |