using UnityEngine; using UnityEditor; using PlasticGui; using Unity.PlasticSCM.Editor.UI; using Codice.Client.Common.Connection; using Codice.CM.Common; using PlasticGui.WorkspaceWindow.Home; namespace Unity.PlasticSCM.Editor.Configuration { internal class CredentialsDialog : PlasticDialog { protected override Rect DefaultRect { get { var baseRect = base.DefaultRect; return new Rect(baseRect.x, baseRect.y, 525, 250); } } internal static AskCredentialsToUser.DialogData RequestCredentials( string server, SEIDWorkingMode seidWorkingMode, EditorWindow parentWindow) { CredentialsDialog dialog = Create(server, seidWorkingMode); ResponseType dialogResult = dialog.RunModal(parentWindow); return dialog.BuildCredentialsDialogData(dialogResult); } protected override void DoComponentsArea() { using (new EditorGUILayout.HorizontalScope()) { GUILayout.Label( PlasticLocalization.Name.UserName.GetString(), GUILayout.Width(80)); Rect userRect = GUILayoutUtility.GetRect( new GUIContent(string.Empty), EditorStyles.textField, GUILayout.ExpandWidth(true)); mUser = EditorGUI.TextField(userRect, mUser); } GUILayout.Space(5); using (new EditorGUILayout.HorizontalScope()) { GUILayout.Label( PlasticLocalization.Name.Password.GetString(), GUILayout.Width(80)); Rect passwordRect = GUILayoutUtility.GetRect( new GUIContent(string.Empty), EditorStyles.textField, GUILayout.ExpandWidth(true)); mPassword = EditorGUI.PasswordField(passwordRect, mPassword); } GUILayout.Space(10); mSaveProfile = GUILayout.Toggle( mSaveProfile, PlasticLocalization.Name.RememberCredentialsAsProfile.GetString()); } protected override string GetTitle() { return PlasticLocalization.Name.CredentialsDialogTitle.GetString(); } protected override string GetExplanation() { return PlasticLocalization.Name.CredentialsDialogExplanation.GetString(mOrganizationInfo.DisplayName); } AskCredentialsToUser.DialogData BuildCredentialsDialogData( ResponseType dialogResult) { return dialogResult == ResponseType.Ok ? AskCredentialsToUser.DialogData.Success( new Credentials( new SEID(mUser, false, mPassword), mSeidWorkingMode)) : AskCredentialsToUser.DialogData.Failure(mSeidWorkingMode); } internal override void OkButtonAction() { CredentialsDialogValidation.Validate(mUser, mPassword, this, mProgressControls); } static CredentialsDialog Create(string server, SEIDWorkingMode seidWorkingMode) { var instance = CreateInstance(); instance.mOrganizationInfo = OrganizationsInformation.FromServer(server); instance.mSeidWorkingMode = seidWorkingMode; instance.mEnterKeyAction = instance.OkButtonAction; instance.mEscapeKeyAction = instance.CancelButtonAction; return instance; } string mUser; string mPassword = string.Empty; bool mSaveProfile; OrganizationInfo mOrganizationInfo; SEIDWorkingMode mSeidWorkingMode; } }