using UnityEditor;
using UnityEngine;
using PlasticGui;
using Unity.PlasticSCM.Editor.UI;
namespace Unity.PlasticSCM.Editor.CloudDrive.Workspaces.DirectoryContent
{
internal class DeleteWorkspaceDialog : PlasticDialog
{
protected override Rect DefaultRect
{
get
{
var baseRect = base.DefaultRect;
return new Rect(baseRect.x, baseRect.y, 500, 200);
}
}
internal static bool UserConfirmsDelete(
string workspaceName,
EditorWindow parentWindow)
{
DeleteWorkspaceDialog dialog = Create(workspaceName);
ResponseType dialogResult = dialog.RunModal(parentWindow);
return dialogResult == ResponseType.Ok;
}
static DeleteWorkspaceDialog Create(string workspaceName)
{
var instance = CreateInstance<DeleteWorkspaceDialog>();
instance.mWorkspaceName = workspaceName;
instance.mConfirmationText = string.Empty;
instance.mEnterKeyAction = instance.OkButtonAction;
instance.mEscapeKeyAction = instance.CancelButtonAction;
return instance;
}
protected override string GetTitle()
{
return PlasticLocalization.Name.DeleteCloudDriveTitle.GetString();
}
protected override void DoComponentsArea()
{
DoWarningArea();
GUILayout.Space(10f);
DoConfirmationArea();
}
void DoWarningArea()
{
using (new EditorGUILayout.VerticalScope())
{
EditorGUILayout.LabelField(
string.Format(PlasticLocalization.Name.DeleteCloudDriveWarningText.GetString(), mWorkspaceName),
EditorStyles.wordWrappedLabel);
}
}
void DoConfirmationArea()
{
using (new EditorGUILayout.HorizontalScope())
{
string confirmText = PlasticLocalization.Name.DeleteCloudDriveConfirmText.GetString();
EditorGUILayout.LabelField(confirmText, GUILayout.Width(220));
GUILayout.Space(10f);
GUI.SetNextControlName(CONFIRMATION_TEXTAREA_NAME);
mConfirmationText = GUILayout.TextField(
mConfirmationText,
GUILayout.ExpandWidth(true));
FocusTextAreaIfNeeded(CONFIRMATION_TEXTAREA_NAME);
}
}
protected override void DoOkButton()
{
using (new GuiEnabled(mWorkspaceName == mConfirmationText))
{
if (!NormalButton(PlasticLocalization.Name.DeleteButton.GetString()))
return;
OkButtonAction();
}
}
internal override void OkButtonAction()
{
if (mWorkspaceName != mConfirmationText)
return;
base.OkButtonAction();
}
string mWorkspaceName;
string mConfirmationText;
const string CONFIRMATION_TEXTAREA_NAME = "confirmation_textarea";
}
}