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..."); }
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(); }
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(); }