123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314 |
- 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;
- }
- }
|