public bool AddBranch(string branchName, VersionBranch.BranchType type, XRuntimePlatform platform, string desc = null, string extGroupName = null)
        {
            if (!branchName.IsValidFileName())
            {
                return(false);
            }
            if (this.IsBranchExists(branchName))
            {
                return(false);
            }
            if (type == VersionBranch.BranchType.ExtensionGroup && extGroupName.IsNullOrEmpty())
            {
                return(false);
            }
            mVersionMainData.Branches_ReadWrite.Add(branchName);
            var branch = new VersionBranch();

            branch.BranchName         = branchName;
            branch.BType              = type;
            branch.Desc               = desc;
            branch.ExtensionGroupName = extGroupName;
            branch.Platform           = platform;

            if (mDict_Branches.ContainsKey(branchName))
            {
                mDict_Branches[branchName] = branch;
            }
            else
            {
                mDict_Branches.Add(branchName, branch);
            }
            SaveVersionMainData(ref mVersionMainData, mVersionMainFilePath);
            SaveBranchFile(ref branch);
            return(true);
        }
 private void createDefaultIfBranchNotExists(string branchName, VersionBranch.BranchType branchType)
 {
     if (!mDict_Branches.ContainsKey(branchName))
     {
         mDict_Branches.Add(branchName, new VersionBranch()
         {
             BranchName = branchName,
             BType      = branchType,
         });
     }
 }
示例#3
0
        private void OnGUI()
        {
            GUILayout.Label(IsChinese ? "创建新分支" : "Create Branch");
            EditorGUILayout.Space();

            EditorGUILayout.BeginHorizontal();
            GUILayout.Label(IsChinese ? "分支名" : "branchName", GUILayout.Width(100));
            mBranchName = EditorGUILayout.TextField(mBranchName);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            GUILayout.Label(IsChinese ? "分支类型" : "BranchType", GUILayout.Width(100));
            mSelect_BranchType = (VersionBranch.BranchType)EditorGUILayout.EnumPopup(mSelect_BranchType);
            EditorGUILayout.EndHorizontal();

            if (mSelect_BranchType == VersionBranch.BranchType.ExtensionGroup)
            {
                if (flag_refreshExtGroupDatas == false)
                {
                    refreshExtensionGroupDatas();
                }

                if (ExtensionGroupNames.Length == 0)
                {
                    GUILayout.Label(IsChinese ? "没有可扩展组" : "No Extension Group.");
                }
                else
                {
                    EditorGUILayout.BeginHorizontal();
                    GUILayout.Label(IsChinese ? "扩展组" : "ExtensionGroup:", GUILayout.Width(100));
                    select_extGroup_index = EditorGUILayout.Popup(select_extGroup_index, ExtensionGroupNames);
                    EditorGUILayout.EndHorizontal();
                    mExtensionGroupName = ExtensionGroupNames[select_extGroup_index];
                }
            }

            EditorGUILayout.BeginHorizontal();
            GUILayout.Label(IsChinese ? "目标平台" : "Platform", GUILayout.Width(100));
            mSelect_platform = (XRuntimePlatform)EditorGUILayout.EnumPopup(mSelect_platform);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            GUILayout.Label(IsChinese ? "分支描述" : "description", GUILayout.Width(100));
            mBranchDesc = EditorGUILayout.TextArea(mBranchDesc);
            EditorGUILayout.EndHorizontal();

            GUILayout.Space(15);
            if (GUILayout.Button(IsChinese ? "新建" : "Create"))
            {
                if (!mBranchName.IsValidFileName())
                {
                    EditorUtility.DisplayDialog(IsChinese ? "有点问题" : "Oops", IsChinese ? "输入的分支名是无效的" : "Branch name you input is invalid.", IsChinese ? "好吧" : "Okey");
                    return;
                }

                //分支名查重
                if (VFSManagerEditor.VersionManager.IsBranchExists(mBranchName))
                {
                    EditorUtility.DisplayDialog(IsChinese ? "有点问题" : "Oops", IsChinese ? "输入的分支名已存在" : "Branch name you input is exists.", IsChinese ? "好吧" : "Okey");
                    return;
                }

                //分支类型和名称确定
                if (mSelect_BranchType == VersionBranch.BranchType.ExtensionGroup && mExtensionGroupName.IsNullOrEmpty())
                {
                    EditorUtility.DisplayDialog(IsChinese ? "有点问题" : "Oops", IsChinese ? "扩展组名称无效" : "Extension group name you input is invalid.", IsChinese ? "好吧" : "Okey");
                    return;
                }

                if (!mBranchDesc.IsNullOrEmpty() && mBranchDesc.Length > 512)
                {
                    mBranchDesc = mBranchDesc.Substring(0, 512);
                }

                if (VFSManagerEditor.VersionManager.AddBranch(mBranchName, mSelect_BranchType, mSelect_platform, mBranchDesc, mExtensionGroupName))
                {
                    EditorUtility.DisplayDialog(IsChinese ? "完成" : "Success", IsChinese ? "创建成功" : "Create branch success.", IsChinese ? "好的" : "Ok");
                    this.Close();
                }
                else
                {
                    this.ShowNotification(new GUIContent(IsChinese ? "创建成功" : "创建失败"));
                }
            }
        }