Esempio n. 1
0
    public EndpointUrlBuilder(ManagementOptions options)
    {
        _taxonomyTemplate       = new TaxonomyTemplate();
        _assetTemplate          = new AssetTemplate();
        _assetRenditionTemplate = new AssetRenditionTemplate();
        _languageTemplate       = new LanguageTemplate();
        _snippetTemplate        = new SnippetTemplate();
        _collectionTemplate     = new CollectionTemplate();
        _typeTemplate           = new TypeTemplate();
        _validateTemplate       = new ValidateTemplate();
        _variantTemplate        = new VariantTemplate();
        _webhookTemplate        = new WebhookTemplate();
        _workflowTemplate       = new WorkflowTemplate();
        _itemTemplate           = new ItemTemplate();
        _projectRolesTemplate   = new ProjectRolesTemplate();
        _userTemplate           = new UserTemplate();

        _options = options;
    }
Esempio n. 2
0
        private static void FileField(EditorWindowInfo info, LanguageTemplate lang)
        {
            var style = new GUIStyle(EditorStyles.label);

            using (new EditorGUILayout.HorizontalScope())
            {
                if (info.HasChanged)
                {
                    style.normal.textColor = Color.red;
                }
                else
                {
                    style.normal.textColor = Color.black;
                }
                EditorGUILayout.LabelField(info.Name, style);

                if (info.Applied)
                {
                    EditorGUILayout.LabelField(lang.applied);
                }

                // ファイルだけの移動はできなくてもよいので一時削除
                //if (GUILayout.Button("x"))
                //{
                //    folder.EditorWindowList.Remove(editorWindowInfo);
                //    editorWindowInfo.DestMenuItemPath = string.Empty;
                //}
            }

            if (info.HasChanged && !info.Applied)
            {
                using (new EditorGUI.IndentLevelScope())
                {
                    var pathStyle = new GUIStyle(GUI.skin.label)
                    {
                        wordWrap = true
                    };
                    EditorGUILayout.LabelField(info.Path, pathStyle);
                    EditorGUILayout.LabelField("→ " + info.DestMenuItemPath, pathStyle);
                }
            }
        }
Esempio n. 3
0
        public static bool DropArea(string label, LanguageTemplate lang, float height)
        {
            var rect = EditorGUILayout.GetControlRect(true, height);

            GUI.Label(rect, label, GUI.skin.box);
            var e = Event.current;

            if (rect.Contains(e.mousePosition))
            {
                if (e.type == EventType.MouseDrag)
                {
                    GUI.changed = true;
                    Highlighter.Highlight(nameof(MenuSimplifier), label);
                    GUIUtility.ExitGUI();
                }
                else if (e.type == EventType.MouseUp)
                {
                    Highlighter.Stop();
                    return(true);
                }
            }
            return(false);
        }
Esempio n. 4
0
        public static void FolderField(EditorWindowFolder folder, LanguageTemplate lang, Action <EditorWindowFolder> OnDrop, Action AllIn, Action RemoveSelf, Action <EditorWindowFolder> DropSubFolder, Action <EditorWindowFolder> OnSelect)
        {
            var defaultColor = GUI.backgroundColor;

            if (folder.Selected)
            {
                GUI.backgroundColor = Color.gray;
            }

            var e = Event.current;

            Rect itemRect;

            using (var scope = new EditorGUILayout.VerticalScope(GUI.skin.box))
            {
                using (new EditorGUILayout.HorizontalScope())
                {
                    if (folder.ParentFolder is null)
                    {
                        if (folder.NameEdittable)
                        {
                            folder.Name = EditorGUILayout.TextField(folder.Name);

                            if ((GUILayout.Button(lang.ok, GUILayout.Width(50f)) ||
                                 e.Equals(Event.KeyboardEvent("return"))) &&
                                !string.IsNullOrEmpty(folder.Name))
                            {
                                folder.NameEdittable = false;
                                GUI.changed          = true;
                            }
                        }
                        else
                        {
                            EditorGUILayout.LabelField(folder.Name, EditorStyles.boldLabel);
                        }
                    }
                    else
                    {
                        folder.Foldout = EditorGUILayout.Foldout(folder.Foldout, folder.Name);

                        if (GUILayout.Button(lang.drop))
                        {
                            DropSubFolder(folder);
                        }
                    }
                }

                using (var itemsScope = new EditorGUILayout.VerticalScope())
                {
                    itemRect = itemsScope.rect;

                    if (folder.Foldout || folder.ParentFolder is null)
                    {
                        foreach (var editorWindowfolder in folder.EditorWindowFolderList.ToArray())
                        {
                            FolderField(editorWindowfolder, lang, OnDrop, AllIn, RemoveSelf, DropSubFolder, OnSelect);
                        }

                        foreach (var editorWindowInfo in folder.EditorWindowList.ToList())
                        {
                            FileField(editorWindowInfo, lang);
                        }
                    }
                }

                if (!folder.EditorWindowFolderList.Any() && !folder.EditorWindowList.Any())
                {
                    using (new EditorGUI.DisabledScope(folder.NameEdittable))
                    {
                        if (GUILayout.Button(lang.allIn))
                        {
                            AllIn();
                        }
                    }

                    if (GUILayout.Button(lang.remove))
                    {
                        RemoveSelf();
                    }
                }

                GUI.backgroundColor = defaultColor;

                if (folder.ParentFolder is null)
                {
                    GUILayout.FlexibleSpace();
                }

                if (scope.rect.Contains(e.mousePosition) && !itemRect.Contains(e.mousePosition))
                {
                    if (e.type == EventType.MouseDown)
                    {
                        GUI.changed = true;
                        OnSelect(folder);
                        Highlighter.Stop();
                    }
                    else if (e.type == EventType.MouseUp)
                    {
                        GUI.changed = true;
                        OnDrop(folder);
                        Highlighter.Stop();
                        GUIUtility.ExitGUI();
                    }
                    else if (e.type == EventType.MouseDrag)
                    {
                        GUI.changed = true;
                        // TODO: 本当はFolder全体が囲まれるようにしたい
                        // Highlighter.HighlightIdentifierはうまくいかない
                        Highlighter.Highlight(nameof(MenuSimplifier), folder.Name);
                        GUIUtility.ExitGUI();
                    }
                }
            }
        }
Esempio n. 5
0
        public static void FolderRowField(EditorWindowFolder folder, LanguageTemplate lang, Action <EditorWindowFolder> DropSubFolder, Action AllIn, Action RemoveSelf)
        {
            var e = Event.current;

            using (new EditorGUILayout.VerticalScope(GUI.skin.box))
            {
                using (new EditorGUILayout.HorizontalScope())
                {
                    if (folder.NameEdittable)
                    {
                        folder.Name = EditorGUILayout.TextField(folder.Name);

                        if ((GUILayout.Button(lang.ok, GUILayout.Width(50f)) ||
                             e.Equals(Event.KeyboardEvent("return"))) &&
                            !string.IsNullOrEmpty(folder.Name))
                        {
                            folder.NameEdittable = false;
                            GUI.changed          = true;
                        }
                    }
                    else
                    {
                        folder.Foldout = EditorGUILayout.Foldout(folder.Foldout, folder.Name);
                    }

                    if (!folder.EditorWindowFolderList.Any() && !folder.EditorWindowList.Any())
                    {
                        using (new EditorGUI.DisabledScope(folder.NameEdittable))
                        {
                            if (GUILayout.Button(lang.allIn))
                            {
                                AllIn();
                            }
                        }

                        if (GUILayout.Button(lang.remove))
                        {
                            RemoveSelf();
                        }
                    }

                    if (!(folder.ParentFolder is null))
                    {
                        if (GUILayout.Button(lang.drop, GUILayout.Width(80f)))
                        {
                            DropSubFolder(folder);
                        }
                    }
                }

                if (folder.Foldout)
                {
                    using (new EditorGUI.IndentLevelScope())
                    {
                        foreach (var subFolder in folder.EditorWindowFolderList.ToArray())
                        {
                            FolderRowField(subFolder, lang, DropSubFolder, AllIn, RemoveSelf);
                        }

                        foreach (var info in folder.EditorWindowList.ToArray())
                        {
                            FileField(info, lang);
                        }
                    }
                }
            }
        }