Ejemplo n.º 1
0
        private void DeleteSelectedItemExec()
        {
            var isFind = false;
            var item   = SelectedItem;

            foreach (var tab in Tabs)
            {
                foreach (var panel in tab.Panels)
                {
                    if (panel.Items.Contains(item))
                    {
                        isFind = true;
                        panel.Items.Remove(item);
                    }
                }
            }

            if (isFind)
            {
                FreeItems.Add(item);
            }
            else
            {
                FreeItems.Remove(item);
            }
        }
Ejemplo n.º 2
0
 private void SaveExec()
 {
     // Сохранить текущую группу настроек
     try
     {
         if (RibbonGroup != null)
         {
             ClearImages();
             RibbonGroup.Tabs = Tabs?.Select(t => new RibbonTabData
             {
                 Name   = t.Name,
                 Panels = t.Panels.Select(p => new RibbonPanelData
                 {
                     Name  = p.Name,
                     Items = p.Items.Select(s => s.GetItem()).ToList()
                 }).ToList()
             }).ToList();
             RibbonGroup.FreeItems = FreeItems.Select(s => s.GetItem()).ToList();
             SaveRibbonGroup(RibbonGroup, UserGroup);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Ejemplo n.º 3
0
        private void DeletePanelExec(RibbonPanelDataVM panel)
        {
            foreach (var item in panel.Items)
            {
                FreeItems.Add(item);
            }

            SelectedTab.Panels.Remove(panel);
        }
Ejemplo n.º 4
0
 public virtual void Clear()
 {
     lock (LockObject)
     {
         while (FreeItems.Count > 0)
         {
             Cleanup(FreeItems.Pop());
         }
     }
 }
Ejemplo n.º 5
0
 public virtual T Take()
 {
     lock (LockObject)
     {
         if (FreeItems.Count == 0)
         {
             if (MaxFreeCount == 0 || AllocateDefaultCount == 0)
             {
                 return(Create());
             }
             Allocate();
         }
         return(FreeItems.Pop());
     }
 }
Ejemplo n.º 6
0
 public virtual bool Return(T item, bool force)
 {
     Reset(item);
     lock (LockObject)
     {
         if (FreeItems.Count < MaxFreeCount || force)
         {
             FreeItems.Push(item);
             return(true);
         }
         else
         {
             Cleanup(item);
             return(false);
         }
     }
 }
Ejemplo n.º 7
0
        public RibbonVM()
        {
            ribbonVm   = this;
            UserGroups = new List <string> {
                PikSettings.UserGroup, Commands.GroupCommon
            };
            if (!PikSettings.AdditionalUserGroup.IsNullOrEmpty())
            {
                UserGroups.Add(PikSettings.AdditionalUserGroup);
            }
            UserGroup  = PikSettings.UserGroup;
            BlockFiles = BlockFile.GetFiles();
            this.WhenAnyValue(v => v.UserGroup).Subscribe(s =>
            {
                userGroup   = UserGroup;
                RibbonGroup = LoadRibbonGroup(UserGroup);
                Tabs        = new ObservableCollection <RibbonTabDataVM>(RibbonGroup.Tabs?.Select(t => new RibbonTabDataVM
                {
                    Name   = t.Name,
                    Panels = new ObservableCollection <RibbonPanelDataVM>(t.Panels.Select(p => new RibbonPanelDataVM
                    {
                        Name  = p.Name,
                        Items = new ObservableCollection <RibbonItemDataVM>(p.Items?.Select(GetItemVM) ?? new List <RibbonItemDataVM>())
                    }))
                }));
                FreeItems = new ObservableCollection <RibbonItemDataVM>(
                    RibbonGroup.FreeItems?.Select(GetItemVM) ?? new List <RibbonItemDataVM>());
            });

            var iconConverter = new NetLib.WPF.Converters.PackIconImageSourceConverter();

            iconConverter.Convert(PackIconMaterialKind.FormatListBulleted, null, null,
                                  CultureInfo.CurrentCulture);
            Save               = new RelayCommand(SaveExec);
            SelectImage        = new RelayCommand(SelectImageExec);
            DeleteSelectedItem = new RelayCommand(DeleteSelectedItemExec);
            DeletePanel        = new RelayCommand <RibbonPanelDataVM>(DeletePanelExec, e => ShowMessage(e.Message));
            NewPanel           = new RelayCommand(() => SelectedTab.Panels.Add(new RibbonPanelDataVM {
                Name = "Панель"
            }));
            AddTab = new RelayCommand(() => Tabs.Add(new RibbonTabDataVM {
                Name = "Вкладка" + Tabs.Count
            }));
            AddCommandItem = new RelayCommand(() =>
            {
                FreeItems.Add(new RibbonCommandVM(new RibbonCommand())
                {
                    Image = iconConverter.Convert(PackIconFontAwesomeKind.TerminalSolid, null, null, null) as ImageSource
                });
            });
            AddSplitItem = new RelayCommand(() =>
            {
                FreeItems.Add(new RibbonSplitVM(new RibbonSplit())
                {
                    Image = iconConverter.Convert(PackIconMaterialKind.FormatListBulleted, null, null, null) as ImageSource
                });
            });
            AddInsertBlockItem = new RelayCommand(() =>
            {
                FreeItems.Add(new RibbonInsertBlockVM(new RibbonInsertBlock(), BlockFiles)
                {
                    Image = iconConverter.Convert(PackIconFontAwesomeKind.ObjectGroupRegular, null, null, null) as ImageSource
                });
            });
            AddVisualInsertBlockItem = new RelayCommand(() =>
            {
                FreeItems.Add(new RibbonVisualInsertBlockVM(new RibbonVisualInsertBlock(), BlockFiles)
                {
                    Image = iconConverter.Convert(PackIconFontAwesomeKind.WindowsBrands, null, null, null) as ImageSource
                });
            });
            AddToggleItem = new RelayCommand(() =>
            {
                FreeItems.Add(new RibbonToggleVM(new RibbonToggle())
                {
                    Image = iconConverter.Convert(PackIconMaterialKind.Check, null, null, null) as ImageSource
                });
            });
        }