Пример #1
0
        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);
        }