151 lines
4.7 KiB
C#
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";
|
|
}
|
|
}
|