122 lines
3.6 KiB
C#
122 lines
3.6 KiB
C#
|
|
using UnityEditor;
|
|||
|
|
using UnityEngine;
|
|||
|
|
|
|||
|
|
using PlasticGui;
|
|||
|
|
using PlasticGui.WorkspaceWindow.QueryViews.Branches;
|
|||
|
|
|
|||
|
|
namespace Unity.PlasticSCM.Editor.Views.Branches
|
|||
|
|
{
|
|||
|
|
internal class BranchesViewMenu
|
|||
|
|
{
|
|||
|
|
internal BranchesViewMenu(
|
|||
|
|
IBranchMenuOperations branchMenuOperations)
|
|||
|
|
{
|
|||
|
|
mBranchMenuOperations = branchMenuOperations;
|
|||
|
|
|
|||
|
|
BuildComponents();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
internal void Popup()
|
|||
|
|
{
|
|||
|
|
GenericMenu menu = new GenericMenu();
|
|||
|
|
|
|||
|
|
UpdateMenuItems(menu);
|
|||
|
|
|
|||
|
|
menu.ShowAsContext();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CreateBranchMenuItem_Click()
|
|||
|
|
{
|
|||
|
|
mBranchMenuOperations.CreateBranch();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SwitchToBranchMenuItem_Click()
|
|||
|
|
{
|
|||
|
|
mBranchMenuOperations.SwitchToBranch();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void RenameBranchMenuItem_Click()
|
|||
|
|
{
|
|||
|
|
mBranchMenuOperations.RenameBranch();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void DeleteBranchMenuItem_Click()
|
|||
|
|
{
|
|||
|
|
mBranchMenuOperations.DeleteBranch();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void UpdateMenuItems(GenericMenu menu)
|
|||
|
|
{
|
|||
|
|
BranchMenuOperations operations = BranchMenuUpdater.GetAvailableMenuOperations(
|
|||
|
|
mBranchMenuOperations.GetSelectedBranchesCount());
|
|||
|
|
|
|||
|
|
AddBranchMenuItem(
|
|||
|
|
mCreateBranchMenuItemContent,
|
|||
|
|
menu,
|
|||
|
|
operations,
|
|||
|
|
BranchMenuOperations.CreateBranch,
|
|||
|
|
CreateBranchMenuItem_Click);
|
|||
|
|
|
|||
|
|
AddBranchMenuItem(
|
|||
|
|
mSwitchToBranchMenuItemContent,
|
|||
|
|
menu,
|
|||
|
|
operations,
|
|||
|
|
BranchMenuOperations.SwitchToBranch,
|
|||
|
|
SwitchToBranchMenuItem_Click);
|
|||
|
|
|
|||
|
|
menu.AddSeparator("");
|
|||
|
|
|
|||
|
|
AddBranchMenuItem(
|
|||
|
|
mRenameBranchMenuItemContent,
|
|||
|
|
menu,
|
|||
|
|
operations,
|
|||
|
|
BranchMenuOperations.Rename,
|
|||
|
|
RenameBranchMenuItem_Click);
|
|||
|
|
|
|||
|
|
AddBranchMenuItem(
|
|||
|
|
mDeleteBranchMenuItemContent,
|
|||
|
|
menu,
|
|||
|
|
operations,
|
|||
|
|
BranchMenuOperations.Delete,
|
|||
|
|
DeleteBranchMenuItem_Click);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
static void AddBranchMenuItem(
|
|||
|
|
GUIContent menuItemContent,
|
|||
|
|
GenericMenu menu,
|
|||
|
|
BranchMenuOperations operations,
|
|||
|
|
BranchMenuOperations operationsToCheck,
|
|||
|
|
GenericMenu.MenuFunction menuFunction)
|
|||
|
|
{
|
|||
|
|
if (operations.HasFlag(operationsToCheck))
|
|||
|
|
{
|
|||
|
|
menu.AddItem(
|
|||
|
|
menuItemContent,
|
|||
|
|
false,
|
|||
|
|
menuFunction);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
menu.AddDisabledItem(menuItemContent);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void BuildComponents()
|
|||
|
|
{
|
|||
|
|
mCreateBranchMenuItemContent = new GUIContent(
|
|||
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.BranchMenuItemCreateBranch));
|
|||
|
|
mSwitchToBranchMenuItemContent = new GUIContent(
|
|||
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.BranchMenuItemSwitchToBranch));
|
|||
|
|
mRenameBranchMenuItemContent = new GUIContent(
|
|||
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.BranchMenuItemRenameBranch));
|
|||
|
|
mDeleteBranchMenuItemContent = new GUIContent(
|
|||
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.BranchMenuItemDeleteBranch));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
GUIContent mCreateBranchMenuItemContent;
|
|||
|
|
GUIContent mSwitchToBranchMenuItemContent;
|
|||
|
|
GUIContent mRenameBranchMenuItemContent;
|
|||
|
|
GUIContent mDeleteBranchMenuItemContent;
|
|||
|
|
|
|||
|
|
readonly IBranchMenuOperations mBranchMenuOperations;
|
|||
|
|
}
|
|||
|
|
}
|