Exemple #1
0
        private void onAddScopedRegistries(CustomPackageManagerScopedRegistry scopedRegistry)
        {
            var addSR = new JsonData();

            addSR["name"] = scopedRegistry.RegistryName;
            addSR["url"]  = scopedRegistry.URL;

            var scopesList = scopedRegistry.GetScopesByList();
            var addScopes  = new JsonData();

            for (int i = 0; i < scopesList.Count; i++)
            {
                addScopes.Add(1);
                addScopes[i] = scopesList[i];
            }
            addSR["scopes"] = addScopes;

            if (!model.ManifestJsonData.ContainsKey("scopedRegistries"))
            {
                var firstScope = new JsonData();
                firstScope.Add(1);
                firstScope[0] = addSR;
                model.ManifestJsonData["scopedRegistries"] = firstScope;
            }
            else
            {
                var registryCount = model.ManifestJsonData["scopedRegistries"].Count;
                model.ManifestJsonData["scopedRegistries"].Add(1);
                model.ManifestJsonData["scopedRegistries"][registryCount] = addSR;
            }

            FileUtility.SaveManifestJson(convertPackagJsonString(model.ManifestJsonData));
            reloadProcess();
            Debug.Log($"CustomPackageManager: Add a scopedRegistry [ {scopedRegistry.RegistryName} ], wait for resolving package by PackageManager...");
        }
Exemple #2
0
        private void onScopedRegistryContextClicked(CustomPackageManagerScopedRegistry contextClickedItem)
        {
            var menu = new GenericMenu();

            menu.AddItem(new GUIContent($"Delete [ {contextClickedItem.RegistryName} ]"), false, () => {
                onRemoveScopedRegistry(contextClickedItem.id);
            });
            menu.ShowAsContext();
        }
 private void addScopedRegistry()
 {
     EditorGUILayout.BeginVertical(noSpaceBoxStyle);
     {
         GUILayout.Space(5);
         EditorGUILayout.BeginHorizontal();
         {
             GUILayout.Label("Registry Name", GUILayout.Width(100));
             addScopedRegistryName = EditorGUILayout.TextField(addScopedRegistryName);
         }
         EditorGUILayout.EndHorizontal();
         EditorGUILayout.BeginHorizontal();
         {
             GUILayout.Label("URL", GUILayout.Width(100));
             addScopedRegistryURL = EditorGUILayout.TextField(addScopedRegistryURL);
         }
         EditorGUILayout.EndHorizontal();
         EditorGUILayout.BeginHorizontal();
         {
             GUILayout.Label("Scopes", GUILayout.Width(100));
             addScopedRegistryScopes = EditorGUILayout.TextField(addScopedRegistryScopes);
         }
         EditorGUILayout.EndHorizontal();
         GUILayout.Space(7);
         GUI.backgroundColor = Color.magenta;
         if (GUILayout.Button("Add Scoped Registry", EditorStyles.toolbarButton))
         {
             if (string.IsNullOrEmpty(addScopedRegistryName) || string.IsNullOrEmpty(addScopedRegistryURL) || string.IsNullOrEmpty(addScopedRegistryScopes))
             {
                 Debug.LogWarning("ScopedRegistry cannot be null.");
             }
             else
             {
                 var scopedRegistry = new CustomPackageManagerScopedRegistry(addScopedRegistryName, addScopedRegistryURL, addScopedRegistryScopes);
                 OnAddScopedRegistry?.Invoke(scopedRegistry);
                 addScopedRegistryName   = "";
                 addScopedRegistryURL    = "";
                 addScopedRegistryScopes = "";
             }
             EditorGUIUtility.keyboardControl = 0;
         }
         GUI.backgroundColor = Color.white;
     }
     EditorGUILayout.EndVertical();
 }
Exemple #4
0
        private void onScopedRegistryScopesChange(CustomPackageManagerScopedRegistry scopedRegistry)
        {
            var changeSR = new JsonData();

            changeSR["name"] = scopedRegistry.RegistryName;
            changeSR["url"]  = scopedRegistry.URL;

            var scopesList = scopedRegistry.GetScopesByList();
            var addScopes  = new JsonData();

            for (int i = 0; i < scopesList.Count; i++)
            {
                addScopes.Add(1);
                addScopes[i] = scopesList[i];
            }
            changeSR["scopes"] = addScopes;

            model.ManifestJsonData["scopedRegistries"][scopedRegistry.id] = changeSR;

            FileUtility.SaveManifestJson(convertPackagJsonString(model.ManifestJsonData));
            reloadProcess();
            Debug.Log($"CustomPackageManager: Change [ {scopedRegistry.RegistryName}'s scopes ], wait for resolving package by PackageManager...");
        }
        private void onInitialize(JsonData manifestData)
        {
            noSpaceBoxStyle = new GUIStyle("Tooltip")
            {
                margin  = new RectOffset(0, 0, 0, 0),
                padding = new RectOffset(0, 0, 0, 0),
            };
            searchTextField         = new GUIStyle("SearchTextField");
            searchFieldCancelButton = new GUIStyle("SearchCancelButton");

            {
                packages = new List <CustomPackageManagerPackage>();
                var dependencies = manifestData["dependencies"];
                var counter      = 0;
                foreach (var pkg in dependencies.Keys)
                {
                    var p = new CustomPackageManagerPackage(pkg, dependencies[pkg].ToString())
                    {
                        id    = ++counter,
                        depth = 0,
                        name  = dependencies[pkg].ToString(),
                    };
                    packages.Add(p);
                }
                packages.Insert(0, CustomPackageManagerPackage.Root);

                // check registry exists
                if (manifestData.ContainsKey("registry"))
                {
                    registryURL = manifestData["registry"]?.ToString();
                }
            }

            {
                // check scopedRegistry exists
                scopedRegistries = new List <CustomPackageManagerScopedRegistry>();
                if (manifestData.ContainsKey("scopedRegistries"))
                {
                    var scopes = manifestData["scopedRegistries"];
                    if (scopes != null)
                    {
                        var counter = 1000; // holy shit
                        for (int i = 0; i < scopes.Count; i++)
                        {
                            var srName    = scopes[i]["name"].ToString();
                            var url       = scopes[i]["url"].ToString();
                            var tmp       = scopes[i]["scopes"];
                            var scopeList = "";
                            for (int j = 0; j < tmp.Count; j++)
                            {
                                scopeList += tmp[j].ToString() + (j == tmp.Count - 1 ? "" : ",");
                            }
                            var sr = new CustomPackageManagerScopedRegistry(srName, url, scopeList)
                            {
                                id    = ++counter,
                                depth = 0,
                                name  = scopeList,
                            };
                            scopedRegistries.Add(sr);
                        }
                    }
                }
                scopedRegistries.Insert(0, CustomPackageManagerScopedRegistry.Root);
            }

            packageTreeViewInitialize();
            scopedRegistryTreeViewInitialize();
        }