Files
GameDevTVObstacleDodge/Library/PackageCache/com.unity.collab-proxy@1ec4e416a4af/Editor/Views/Labels/Dialogs/CreateLabelView.cs

151 lines
4.7 KiB
C#

using UnityEditor;
using UnityEngine;
using Codice.CM.Common;
using PlasticGui;
using PlasticGui.WorkspaceWindow.QueryViews.Labels;
using Unity.PlasticSCM.Editor.UI;
#if !UNITY_6000_0_OR_NEWER
using EditorGUI = Unity.PlasticSCM.Editor.UnityInternals.UnityEditor.EditorGUI;
#endif
namespace Unity.PlasticSCM.Editor.Views.Labels.Dialogs
{
internal class CreateLabelView : IPlasticDialogCloser
{
internal CreateLabelView(CreateLabelDialog parentWindow, RepositorySpec repSpec)
{
mParentWindow = parentWindow;
mRepositorySpec = repSpec;
mNewLabelName = "";
mComment = "";
mLabelAllXlinkedRepositories = false;
mSwitchToLabel = false;
}
internal void OnGUI()
{
using (new EditorGUILayout.HorizontalScope())
{
GUILayout.Label(
PlasticLocalization.Name.LabelNameEntry.GetString(),
GUILayout.Width(120));
Rect nameRect = GUILayoutUtility.GetRect(
new GUIContent(string.Empty),
EditorStyles.textField,
GUILayout.ExpandWidth(true));
GUI.SetNextControlName(NAME_FIELD_CONTROL_NAME);
mNewLabelName = GUI.TextField(nameRect, mNewLabelName);
if (!mWasNameFieldFocused)
{
UnityEditor.EditorGUI.FocusTextInControl(NAME_FIELD_CONTROL_NAME);
mWasNameFieldFocused = true;
}
}
GUILayout.Space(5);
using (new EditorGUILayout.HorizontalScope())
{
using (new EditorGUILayout.VerticalScope(GUILayout.Width(100)))
{
GUILayout.Space(49);
GUILayout.Label(
PlasticLocalization.Name.CommentsEntry.GetString(),
GUILayout.Width(120));
}
Rect commentRect = GUILayoutUtility.GetRect(
new GUIContent(string.Empty),
EditorStyles.textArea,
GUILayout.Height(100),
GUILayout.ExpandWidth(true));
GUI.SetNextControlName(COMMENT_TEXTAREA_CONTROL_NAME);
mComment = EditorGUI.ScrollableTextAreaInternal(
commentRect,
mComment,
ref mScrollPosition,
EditorStyles.textArea);
}
GUILayout.Space(15);
using (new EditorGUILayout.HorizontalScope())
{
GUILayout.Label(
PlasticLocalization.Name.ChangesetToLabelEntry.GetString(),
GUILayout.Width(120));
GUILayout.Label(mChangesetId, GUILayout.Width(450));
if (GUILayout.Button(
PlasticLocalization.Name.ChooseMessage.GetString(), EditorStyles.miniButton))
{
DoChooseButton();
}
}
GUILayout.Space(15);
mLabelAllXlinkedRepositories = GUILayout.Toggle(mLabelAllXlinkedRepositories,
PlasticLocalization.Name.LabelAllXlinksCheckButton.GetString());
GUILayout.Space(5);
mSwitchToLabel = GUILayout.Toggle(mSwitchToLabel,
PlasticLocalization.Name.SwitchToLabelCheckButton.GetString());
}
void DoChooseButton()
{
mParentWindow.ToggleChangesetExplorer(true);
}
internal LabelCreationData BuildCreationData()
{
mResultData = new LabelCreationData(
mRepositorySpec,
long.Parse(mChangesetId),
mNewLabelName,
mComment,
mSwitchToLabel,
mLabelAllXlinkedRepositories,
(mResultData != null) ? mResultData.XlinksToLabel : null);
return mResultData;
}
void IPlasticDialogCloser.CloseDialog()
{
mParentWindow.ToggleChangesetExplorer(false);
}
internal void SetChangesetId(long changesetId)
{
mChangesetId = changesetId.ToString();
}
LabelCreationData mResultData = null;
string mNewLabelName;
string mComment;
string mChangesetId;
bool mLabelAllXlinkedRepositories;
bool mSwitchToLabel;
bool mWasNameFieldFocused;
Vector2 mScrollPosition;
readonly CreateLabelDialog mParentWindow;
readonly RepositorySpec mRepositorySpec;
const string NAME_FIELD_CONTROL_NAME = "CreateLabelNameField";
const string COMMENT_TEXTAREA_CONTROL_NAME = "CreateLabelCommentTextArea";
}
}