예제 #1
0
        public async Task SearchMenuTextChanged()
        {
            //  if (FastSearchCheck == false)

            collapseMenu(true);
            await SetupSideMenu();

            List <TreeViewItemExCategory> newResult = new List <TreeViewItemExCategory>();

            var cats = MainMenuCategories.Where(a => a.Name.ContainsIgniorCase(SearchMenuTextSide));

            if (cats != null)
            {
                newResult = cats.ToList();
            }
            //MainMenuCategories.ForEach(cat =>
            //{
            //    var toleave = cat.Items.Where(a => a.Name.ContainsIgniorCase(SearchMenuText));

            //    var newCat = new TreeViewItemExCategory(cat.Name);
            //    newCat.Items = new ObservableCollection<TreeViewItemEx>(toleave);
            //    if (newCat.Items.Any())
            //        newResult.Add(newCat);
            //});

            //if (newResult.Count == 1)
            //{
            //    // Open directly
            //    var item = newResult.FirstOrDefault();
            //    var lines = item.Items;

            //    if (lines != null && lines.Count == 1)
            //    {
            //        var line = lines.FirstOrDefault();
            //        await OpenMenuItem(line);
            //        return;
            //    }
            //}

            MenuIsExpanded = true;
            NotifyOfPropertyChange("MenuIsExpanded");
            MainMenuCategories = newResult;
            NotifyOfPropertyChange("MainMenuCategories");
        }
예제 #2
0
        public async void SearchMenuTextChanged()
        {
            collapseMenu(true);
            await SetupSideMenu();

            List <TreeViewItemExCategory> newResult = new List <TreeViewItemExCategory>();

            MainMenuCategories.ForEach(cat =>
            {
                var toleave = cat.Items.Where(a => a.Name.ContainsIgniorCase(SearchMenuText));

                var newCat   = new TreeViewItemExCategory(cat.Name);
                newCat.Items = new ObservableCollection <TreeViewItemEx>(toleave);
                if (newCat.Items.Any())
                {
                    newResult.Add(newCat);
                }
            });

            MenuIsExpanded = true;
            NotifyOfPropertyChange("MenuIsExpanded");
            MainMenuCategories = newResult;
            NotifyOfPropertyChange("MainMenuCategories");
        }
예제 #3
0
        public async Task SetupSideMenu()
        {
            MessageCount = DS.db.Count <CoreMessageBase>(a => a.DueDate <= DateTime.Now && a.StatusMessage == "En attente");

            // Init actions
            MainMenuCategories.Clear();

            //      sideMenu.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
            // Load config models
            var models = new List <IDocument>();
            var config = new XmlDocument();

            config.Load("Modules/Models.xml");

            // get ModulesERP
            var modules = DataHelpers.Modules;// GetMongoDataSync("ModuleErp") as IEnumerable<ModuleErp>;

            config.DocumentElement.RemoveAll();

            var TopMenus = modules.Where(z => !string.IsNullOrEmpty(z.GroupeModule)).Select(a => _(a.GroupeModule)).Distinct();

            if (MenuPanelLoaded == false)
            {
                MenuPanel.Children.Clear();
            }

            foreach (var groupe in TopMenus)
            {
                var moduleOfGroupe = modules.Where(a => _(a.GroupeModule) == groupe).OrderBy(a => a.ModuleMenuIndex);

                //(2) string.Empty makes cleaner code
                XmlElement section = config.CreateElement(string.Empty, "section", string.Empty);
                section.SetAttribute("header", groupe);
                section.SetAttribute("icon", "Desktop");

                if (MenuPanelLoaded == false)
                {
                    string _icon      = "";
                    var    _savedIcon = ModuleIcons.ModuleIcon.TryGetValue(groupe, out _icon);

                    //if (_savedIcon)
                    //{
                    // icon found
                    Button   menubtn = new Button();
                    PackIcon pi      = new PackIcon()
                    {
                        Kind = PackIconKind.CheckboxMarkedCircleOutline, Height = 22, Width = 22
                    };
                    try
                    {
                        pi.Kind   = (PackIconKind)Enum.Parse(typeof(PackIconKind), _icon);
                        pi.Height = 22; pi.Width = 22;
                    }
                    catch { }

                    Border border = new Border();
                    border.BorderThickness     = new Thickness(0);
                    border.Margin              = new Thickness(0);
                    border.HorizontalAlignment = HorizontalAlignment.Left;
                    border.Child = menubtn;

                    var sp = new StackPanel {
                        Orientation = Orientation.Horizontal
                    };
                    sp.Children.Add(pi);
                    sp.Children.Add(new TextBlock {
                        Text = groupe, Foreground = Brushes.White, Margin = new Thickness(10, 0, 10, 0)
                    });

                    menubtn.Content = sp;
                    menubtn.Click  += Menubtn_Click;
                    menubtn.Tag     = new ArrayList {
                        groupe, pi
                    };
                    ShadowAssist.SetShadowDepth(menubtn, ShadowDepth.Depth0);
                    //   menubtn.ToolTip = groupe;
                    // BorderThickness="0"  BorderBrush="#F5F6F7"
                    menubtn.BorderThickness = new Thickness(0);
                    //  menubtn.Width = 55;
                    menubtn.Height = 40;
                    menubtn.Style  = App.Current.TryFindResource("MenuButtonHd") as Style;
                    border.Child   = menubtn;
                    MenuPanel.Children.Add(border);
                    NotifyOfPropertyChange("MenuPanel");
                    //}
                }


                foreach (var module in moduleOfGroupe)
                {
                    XmlElement document = config.CreateElement(string.Empty, "item", string.Empty);
                    //header ="Tiers" icon="Users" description="" class="Ovresko.Generix.Core.Modules.Tier"
                    document.SetAttribute("header", module.Libelle);
                    document.SetAttribute("icon", "Users");
                    document.SetAttribute("class", module.ClassName);
                    if (module.IsInstanceModule)
                    {
                        document.SetAttribute("instance", "getInstance");
                    }
                    section.AppendChild(document);
                }
                config.DocumentElement.AppendChild(section);
            }
            MenuPanelLoaded = true;
            config.Save("Modules/Models.xml");
            config.Load("Modules/Models.xml");
            parentStack = new StackPanel();
            // Iteerate over items

            foreach (XmlNode node in config.DocumentElement.ChildNodes)
            {
                // iterate over sections
                Console.Write(node.ChildNodes);
                var header = node.Attributes["header"].Value;

                // ExpanderMenu expander = new ExpanderMenu();

                //   var nodeTree = new TreeViewItemExCategory(header, new Li);
                var Children = new List <TreeViewItemEx>();
                //
                var items = node.ChildNodes;

                foreach (XmlNode item in items)
                {
                    var modelHeader   = item.Attributes["header"].Value;
                    var modelClass    = item.Attributes["class"].Value;
                    var modelIcon     = item.Attributes["icon"].Value;
                    var modelInstance = item.Attributes["instance"]?.Value;

                    var itemNode = new TreeViewItemEx(modelHeader, modelHeader);
                    itemNode.NodeXml = item;
                    //   itemNode.HeaderContent = new Button() { Content = modelHeader };

                    //var i = new FontAwesome.WPF.ImageAwesome();
                    //// i.Icon = (FontAwesomeIcon)Enum.Parse(typeof(FontAwesomeIcon), modelIcon);
                    //i.Icon = FontAwesomeIcon.Plus;
                    //i.Foreground = System.Windows.Media.Brushes.LightGray;
                    // itemNode.HeaderIcon = modelIcon;
                    Children.Add(itemNode);
                }
                var Category = new TreeViewItemExCategory(header, Children.ToArray());

                MainMenuCategories.Add(Category);
            }
            NotifyOfPropertyChange("sideMenu");
        }