private void InitializeDialog(CategoryFilterEditorUI dialog, ClientSettingsNode node)
        {
            dialog.FilterMode = node.CategoryFilterSettings.CategoryFilterMode;

            SetCategoryFilterSettings(dialog, node);

            SetAvailableCategoryNames(dialog, node);
        }
        private void SetCategoryFilterSettings(CategoryFilterEditorUI dialog, ClientSettingsNode node)
        {
            ArrayList selectedCategoryNames = new ArrayList();

            foreach (CategoryFilterData categoryFilter in node.CategoryFilterSettings.CategoryFilters)
            {
                selectedCategoryNames.Add(categoryFilter.Name);
            }

            dialog.SetSelectedCategoryNames(selectedCategoryNames);
        }
        private void SetAvailableCategoryNames(CategoryFilterEditorUI dialog, ConfigurationNode node)
        {
            ConfigurationNode rootNode = node.Parent.Parent;

            ConfigurationNode[] nodes         = rootNode.Hierarchy.FindNodesByType(rootNode, typeof(CategoryNode));
            ArrayList           categoryNames = new ArrayList();

            if (nodes != null)
            {
                ConfigurationNode[] sortedNodes = nodes;
                Array.Sort(sortedNodes);
                foreach (ConfigurationNode categoryNode in sortedNodes)
                {
                    categoryNames.Add(categoryNode.Name);
                }
            }

            dialog.AvailableCategoryNames = categoryNames;
        }
Example #4
0
        /// <summary>
        /// Initializes and draws the category filter editor dialog and returns the results to the calling object.
        /// </summary>
        /// <param name="context">See <see cref="UITypeEditor.EditValue"/>.</param>
        /// <param name="provider">See <see cref="UITypeEditor.EditValue"/>.</param>
        /// <param name="value">See <see cref="UITypeEditor.EditValue"/>.</param>
        /// <returns>See <see cref="UITypeEditor.EditValue"/>.</returns>
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            Debug.Assert(provider != null, "No service provider; we cannot edit the value");
            if (provider != null)
            {
                IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

                Debug.Assert(edSvc != null, "No editor service; we cannot edit the value");
                if (edSvc != null)
                {
                    IWindowsFormsEditorService service = (IWindowsFormsEditorService) provider.GetService(typeof(IWindowsFormsEditorService));

                    CategoryFilterEditorUI dialog = new CategoryFilterEditorUI();
                    ClientSettingsNode currentSettings = (ClientSettingsNode) context.Instance;
                    InitializeDialog(dialog, currentSettings);

                    DialogResult dialogResult = service.ShowDialog(dialog);

                    if (dialogResult != DialogResult.Cancel)
                    {
                        CategoryFilterMode categoryFilterMode = dialog.FilterMode;

                        CategoryFilterDataCollection categoryFilters = new CategoryFilterDataCollection();
                        foreach (string category in dialog.GetSelectedCategoryNames())
                        {
                            CategoryFilterData categoryFilter = new CategoryFilterData();
                            categoryFilter.Name = category;
                            categoryFilters.Add(categoryFilter);
                        }

                        return new CategoryFilterSettings(categoryFilterMode, categoryFilters);
                    }
                    else
                    {
                        return currentSettings.CategoryFilterSettings;
                    }
                }
            }
            return value;
        }
        /// <summary>
        /// Initializes and draws the category filter editor dialog and returns the results to the calling object.
        /// </summary>
        /// <param name="context">See <see cref="UITypeEditor.EditValue"/>.</param>
        /// <param name="provider">See <see cref="UITypeEditor.EditValue"/>.</param>
        /// <param name="value">See <see cref="UITypeEditor.EditValue"/>.</param>
        /// <returns>See <see cref="UITypeEditor.EditValue"/>.</returns>
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            Debug.Assert(provider != null, "No service provider; we cannot edit the value");
            if (provider != null)
            {
                IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

                Debug.Assert(edSvc != null, "No editor service; we cannot edit the value");
                if (edSvc != null)
                {
                    IWindowsFormsEditorService service = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

                    CategoryFilterEditorUI dialog          = new CategoryFilterEditorUI();
                    ClientSettingsNode     currentSettings = (ClientSettingsNode)context.Instance;
                    InitializeDialog(dialog, currentSettings);

                    DialogResult dialogResult = service.ShowDialog(dialog);

                    if (dialogResult != DialogResult.Cancel)
                    {
                        CategoryFilterMode categoryFilterMode = dialog.FilterMode;

                        CategoryFilterDataCollection categoryFilters = new CategoryFilterDataCollection();
                        foreach (string category in dialog.GetSelectedCategoryNames())
                        {
                            CategoryFilterData categoryFilter = new CategoryFilterData();
                            categoryFilter.Name = category;
                            categoryFilters.Add(categoryFilter);
                        }

                        return(new CategoryFilterSettings(categoryFilterMode, categoryFilters));
                    }
                    else
                    {
                        return(currentSettings.CategoryFilterSettings);
                    }
                }
            }
            return(value);
        }
Example #6
0
        private void InitializeDialog(CategoryFilterEditorUI dialog, ClientSettingsNode node)
        {
            dialog.FilterMode = node.CategoryFilterSettings.CategoryFilterMode;

            SetCategoryFilterSettings(dialog, node);

            SetAvailableCategoryNames(dialog, node);
        }
Example #7
0
        private void SetCategoryFilterSettings(CategoryFilterEditorUI dialog, ClientSettingsNode node)
        {
            ArrayList selectedCategoryNames = new ArrayList();
            foreach (CategoryFilterData categoryFilter in node.CategoryFilterSettings.CategoryFilters)
            {
                selectedCategoryNames.Add(categoryFilter.Name);
            }

            dialog.SetSelectedCategoryNames(selectedCategoryNames);
        }
Example #8
0
        private void SetAvailableCategoryNames(CategoryFilterEditorUI dialog, ConfigurationNode node)
        {
            ConfigurationNode rootNode = node.Parent.Parent;
            ConfigurationNode[] nodes = rootNode.Hierarchy.FindNodesByType(rootNode, typeof(CategoryNode));
            ArrayList categoryNames = new ArrayList();
            if (nodes != null)
            {
                ConfigurationNode[] sortedNodes = nodes;
                Array.Sort(sortedNodes);
                foreach (ConfigurationNode categoryNode in sortedNodes)
                {
                    categoryNames.Add(categoryNode.Name);
                }
            }

            dialog.AvailableCategoryNames = categoryNames;
        }