123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- using UnityEditor;
- using UnityEngine;
-
- using Codice.Utils;
- using PlasticGui;
- using Unity.PlasticSCM.Editor.UI;
-
- namespace Unity.PlasticSCM.Editor.Configuration
- {
- internal class EncryptionConfigurationDialog : PlasticDialog
- {
- protected override Rect DefaultRect
- {
- get
- {
- var baseRect = base.DefaultRect;
- return new Rect(baseRect.x, baseRect.y, 650, 425);
- }
- }
-
- internal static EncryptionConfigurationDialogData RequestEncryptionPassword(
- string server,
- EditorWindow parentWindow)
- {
- EncryptionConfigurationDialog dialog = Create(server);
-
- ResponseType dialogResult = dialog.RunModal(parentWindow);
-
- EncryptionConfigurationDialogData result =
- dialog.BuildEncryptionConfigurationData();
-
- result.Result = dialogResult == ResponseType.Ok;
- return result;
- }
-
- protected override void OnModalGUI()
- {
- Title(PlasticLocalization.GetString(
- PlasticLocalization.Name.EncryptionConfiguration));
-
- GUILayout.Space(20);
-
- Paragraph(PlasticLocalization.GetString(
- PlasticLocalization.Name.EncryptionConfigurationExplanation, mServer));
-
- DoPasswordArea();
-
- Paragraph(PlasticLocalization.GetString(
- PlasticLocalization.Name.EncryptionConfigurationRemarks, mServer));
-
- GUILayout.Space(10);
-
- DoNotificationArea();
-
- GUILayout.Space(10);
-
- DoButtonsArea();
- }
-
- protected override string GetTitle()
- {
- return PlasticLocalization.GetString(
- PlasticLocalization.Name.EncryptionConfiguration);
- }
-
- EncryptionConfigurationDialogData BuildEncryptionConfigurationData()
- {
- return new EncryptionConfigurationDialogData(
- CryptoServices.GetEncryptedPassword(mPassword.Trim()));
- }
-
- void DoPasswordArea()
- {
- Paragraph(PlasticLocalization.GetString(
- PlasticLocalization.Name.EncryptionConfigurationEnterPassword));
-
- GUILayout.Space(5);
-
- mPassword = PasswordEntry(PlasticLocalization.GetString(
- PlasticLocalization.Name.Password), mPassword,
- PASSWORD_TEXT_WIDTH, PASSWORD_TEXT_X);
-
- GUILayout.Space(5);
-
- mRetypePassword = PasswordEntry(PlasticLocalization.GetString(
- PlasticLocalization.Name.RetypePassword), mRetypePassword,
- PASSWORD_TEXT_WIDTH, PASSWORD_TEXT_X);
-
- GUILayout.Space(18f);
- }
-
- void DoNotificationArea()
- {
- if (string.IsNullOrEmpty(mErrorMessage))
- return;
-
- var rect = GUILayoutUtility.GetRect(
- GUILayoutUtility.GetLastRect().width, 30);
-
- EditorGUI.HelpBox(rect, mErrorMessage, MessageType.Error);
- }
-
- void DoButtonsArea()
- {
- using (new EditorGUILayout.HorizontalScope())
- {
- GUILayout.FlexibleSpace();
-
- if (Application.platform == RuntimePlatform.WindowsEditor)
- {
- DoOkButton();
- DoCancelButton();
- return;
- }
-
- DoCancelButton();
- DoOkButton();
- }
- }
-
- void DoOkButton()
- {
- if (!AcceptButton(PlasticLocalization.GetString(
- PlasticLocalization.Name.OkButton)))
- return;
-
- OkButtonWithValidationAction();
- }
-
- void DoCancelButton()
- {
- if (!NormalButton(PlasticLocalization.GetString(
- PlasticLocalization.Name.CancelButton)))
- return;
-
- CancelButtonAction();
- }
-
- void OkButtonWithValidationAction()
- {
- if (IsValidPassword(
- mPassword.Trim(), mRetypePassword.Trim(),
- out mErrorMessage))
- {
- mErrorMessage = string.Empty;
- OkButtonAction();
- return;
- }
-
- mPassword = string.Empty;
- mRetypePassword = string.Empty;
- }
-
- static bool IsValidPassword(
- string password, string retypePassword,
- out string errorMessage)
- {
- errorMessage = string.Empty;
-
- if (string.IsNullOrEmpty(password))
- {
- errorMessage = PlasticLocalization.GetString(
- PlasticLocalization.Name.InvalidEmptyPassword);
- return false;
- }
-
- if (!password.Equals(retypePassword))
- {
- errorMessage = PlasticLocalization.GetString(
- PlasticLocalization.Name.PasswordDoesntMatch);
- return false;
- }
-
- return true;
- }
-
- static EncryptionConfigurationDialog Create(string server)
- {
- var instance = CreateInstance<EncryptionConfigurationDialog>();
- instance.mServer = server;
- instance.mEnterKeyAction = instance.OkButtonWithValidationAction;
- instance.mEscapeKeyAction = instance.CancelButtonAction;
- return instance;
- }
-
- string mPassword = string.Empty;
- string mRetypePassword = string.Empty;
- string mErrorMessage = string.Empty;
-
- string mServer = string.Empty;
-
- const float PASSWORD_TEXT_WIDTH = 250f;
- const float PASSWORD_TEXT_X = 200f;
- }
- }
|