void RenderPluginDetails(PackagedPlugin plugin) { GUILayout.Space(5); GUI.backgroundColor = Color.white; EditorGUILayout.Separator(); EditorGUILayout.LabelField("Registry: " + plugin.ParentRegistry.GenerateUniqueKey()); EditorGUILayout.Separator(); // Name - Version - Short Desc var v = string.Format("{0} - version: {1} '{2}'", plugin.MetaData.artifactId, plugin.MetaData.version, plugin.Description .languages[0].shortDesc); var pluginKey = string.Format("{0}", plugin.MetaData.UniqueKey); EditorGUILayout.LabelField(v); // [More Info] - [Install|Remove|Update] EditorGUILayout.BeginHorizontal(); GUI.backgroundColor = Color.cyan; if (GUILayout.Button("More Info")) { moreInfoPlugins.Push(pluginKey); } if (ProjectManagerController.IsPluginInstalledInProject(plugin.MetaData.UniqueKey)) { // delete or update GUI.backgroundColor = Color.red; if (GUILayout.Button("Uninstall")) { uninstallPlugins.Push(pluginKey); uninstallingPlugins.Add(pluginKey); } } else if (installingPlugins.Contains(pluginKey)) { GUI.backgroundColor = Color.gray; if (GUILayout.Button("Installing...")) { } } else if (uninstallingPlugins.Contains(pluginKey)) { GUI.backgroundColor = Color.blue; if (GUILayout.Button("Un-Installing...")) { } } else { GUI.backgroundColor = Color.green; if (GUILayout.Button("Install")) { installPlugins.Push(pluginKey); installingPlugins.Add(pluginKey); } } EditorGUILayout.EndHorizontal(); GUILayout.Space(5); }