예제 #1
0
        public void Convert(string tabName, List <IPaletteCommand> commands)
        {
            dirBlocks = IO.Path.GetLocalSettingsFile("Blocks");
            var fileRibbon = RibbonGroupData.GetRibbonFile(tabName);
            var dir        = Path.GetDirectoryName(fileRibbon);

            Directory.CreateDirectory(dir);
            imagesDir = Path.Combine(dir, "Images");
            Directory.CreateDirectory(imagesDir);

            var tab = new RibbonTabData
            {
                Name   = tabName,
                Panels = commands.GroupBy(g => g.Group).Select(s => new RibbonPanelData
                {
                    Name  = s.Key,
                    Items = s.Select(GetItem).ToList()
                }).ToList()
            };
            var ribbonGroup = new RibbonGroupData {
                Tabs = new List <RibbonTabData> {
                    tab
                }
            };

            ribbonGroup.Save(fileRibbon);
        }
예제 #2
0
        private void BuildContextMenu()
        {
            var saveButton = new RibbonButtonData(Messages.Title_Save, imgUri.FormatWith("Save"), this.View.As <WorkbenchViewModel>().SaveCommand);

            var splitter = new RibbonMenuItemData(Messages.Btn_Add, imgUri.FormatWith("Add"), null);

            splitter.ControlDataCollection.Add(new RibbonMenuItemData(Messages.Title_AddDoctor, imgUri.FormatWith("Add"), this.addDoctorCommand));
            splitter.ControlDataCollection.Add(new RibbonMenuItemData(Messages.Title_AddSpecialisation, imgUri.FormatWith("Add"), this.addSpecialisationCommand));
            splitter.ControlDataCollection.Add(new RibbonMenuItemData(Messages.Title_AddInsurance, imgUri.FormatWith("Add"), this.addInsuranceCommand));
            splitter.ControlDataCollection.Add(new RibbonMenuItemData(Messages.Title_AddReputation, imgUri.FormatWith("Add"), this.addReputationCommand));
            splitter.ControlDataCollection.Add(new RibbonMenuItemData(Messages.Title_AddPractice, imgUri.FormatWith("Add"), this.addPracticeCommand));
            splitter.ControlDataCollection.Add(new RibbonMenuItemData(Messages.Title_AddProfession, imgUri.FormatWith("Add"), this.addProfessionCommand));

            var cgroup = new RibbonGroupData(Messages.Menu_Actions);

            cgroup.ButtonDataCollection.Add(saveButton);
            cgroup.ButtonDataCollection.Add(splitter);

            var tab = new RibbonTabData(Messages.Menu_File)
            {
                ContextualTabGroupHeader = Messages.Title_ContextMenu
            };

            tab.GroupDataCollection.Add(cgroup);
            PluginContext.Host.AddTab(tab);

            this.ContextualMenu = new RibbonContextualTabGroupData(Messages.Title_ContextMenu, tab)
            {
                Background = Brushes.OrangeRed, IsVisible = false
            };
            PluginContext.Host.AddContextualMenu(this.ContextualMenu);
        }
예제 #3
0
        /// <summary>
        /// Builds the context menu of this plugin.
        /// </summary>
        private void BuildContextMenu()
        {
            var navAddPrescriptionButton = new RibbonButtonData(Messages.Title_AddPrescription
                                                                , imgUri.FormatWith("Add")
                                                                , new RelayCommand(() => this.NavigateAddPrescription(), () => CanNavigateToAddPrescription()));

            var navWorkbenchButton = new RibbonButtonData(Messages.Title_PrescriptionManager
                                                          , imgUri.FormatWith("Prescription")
                                                          , new RelayCommand(() => this.NavigateWorkbench(), () => this.CanNavigatePrescription()));

            var saveButton = new RibbonButtonData(Messages.Btn_Save
                                                  , imgUri.FormatWith("Save")
                                                  , new RelayCommand(() => this.Save(), () => CanSave()));

            var navSearchButton = new RibbonButtonData(Messages.Btn_Search
                                                       , icoUri.FormatWith("Search")
                                                       , new RelayCommand(() => ViewService.Manager.ShowDialog <SearchPrescriptionViewModel>(), () => this.CanNavigateSearch()));

            var addDrugButton = new RibbonButtonData(Messages.Btn_AddDrug
                                                     , imgUri.FormatWith("Drug")
                                                     , new RelayCommand(() => ViewService.Manager.ShowDialog <AddDrugViewModel>()
                                                                        , () => this.lastNavigation == LastNavigation.AddPrescription && PluginContext.DoorKeeper.IsUserGranted(To.Write)));

            var addDrugTypeButton = new RibbonButtonData(Messages.Btn_AddDrugType
                                                         , imgUri.FormatWith("DrugType")
                                                         , new RelayCommand(() => ViewService.Manager.ShowDialog <AddDrugTypeViewModel>()
                                                                            , () => this.lastNavigation == LastNavigation.AddPrescription && PluginContext.DoorKeeper.IsUserGranted(To.Write)));

            var cgroup = new RibbonGroupData(Messages.Menu_Actions);
            var ngroup = new RibbonGroupData(Messages.Menu_Navigation);
            var mgroup = new RibbonGroupData(Messages.Menu_Manage);

            cgroup.ButtonDataCollection.Add(saveButton);
            cgroup.ButtonDataCollection.Add(navSearchButton);

            ngroup.ButtonDataCollection.Add(navWorkbenchButton);
            ngroup.ButtonDataCollection.Add(navAddPrescriptionButton);

            mgroup.ButtonDataCollection.Add(addDrugButton);
            mgroup.ButtonDataCollection.Add(addDrugTypeButton);

            var tab = new RibbonTabData(Messages.Menu_File)
            {
                ContextualTabGroupHeader = Messages.Title_PrescriptionManager
            };

            tab.GroupDataCollection.Add(cgroup);
            tab.GroupDataCollection.Add(ngroup);
            tab.GroupDataCollection.Add(mgroup);

            PluginContext.Host.AddTab(tab);

            this.ContextualMenu = new RibbonContextualTabGroupData(Messages.Title_PrescriptionManager, tab)
            {
                Background = Brushes.OrangeRed, IsVisible = false
            };
            PluginContext.Host.AddContextualMenu(this.ContextualMenu);
        }
예제 #4
0
        /// <summary>
        /// Builds the context menu for this plugin's ribbon.
        /// </summary>
        private void BuildContextMenu()
        {
            var cgroup1 = new RibbonGroupData(BaseText.Group_Action);

            cgroup1.ButtonDataCollection.Add(new RibbonButtonData(Messages.Btn_Edit, imgUri.FormatWith("Edit"), this.EditCommand));
            cgroup1.ButtonDataCollection.Add(new RibbonButtonData(Messages.Btn_Save, imgUri.FormatWith("Save"), this.SaveCommand));
            cgroup1.ButtonDataCollection.Add(new RibbonButtonData(Messages.Btn_Revert, imgUri.FormatWith("Revert"), this.RevertCommand));
            cgroup1.ButtonDataCollection.Add(new RibbonButtonData(Messages.Btn_Deactivate, imgUri.FormatWith("Deactivate"), this.DeactivateCommand));

            var cgroup2 = new RibbonGroupData(Messages.Group_Add);

            cgroup2.ButtonDataCollection.Add(new RibbonButtonData(Messages.Btn_Reputation, imgUri.FormatWith("Reputation")
                                                                  , new RelayCommand(() => ViewService.Manager.Show <AddReputationViewModel>())));
            cgroup2.ButtonDataCollection.Add(new RibbonButtonData(Messages.Btn_Insurance, imgUri.FormatWith("Insurance")
                                                                  , new RelayCommand(() => ViewService.Manager.Show <AddInsuranceViewModel>())));
            cgroup2.ButtonDataCollection.Add(new RibbonButtonData(Messages.Btn_Job, imgUri.FormatWith("Job")
                                                                  , new RelayCommand(() => ViewService.Manager.Show <AddProfessionViewModel>())));
            cgroup2.ButtonDataCollection.Add(new RibbonButtonData(Messages.Btn_Practice, imgUri.FormatWith("Practice")
                                                                  , new RelayCommand(() => ViewService.Manager.Show <AddPracticeViewModel>())));
            cgroup2.ButtonDataCollection.Add(new RibbonButtonData(Messages.Btn_Specialisation, imgUri.FormatWith("Specialisation")
                                                                  , new RelayCommand(() => ViewService.Manager.Show <AddSpecialisationViewModel>())));
            cgroup2.ButtonDataCollection.Add(new RibbonButtonData(Messages.Btn_Doctor, imgUri.FormatWith("Doctor")
                                                                  , new RelayCommand(() => ViewService.Manager.Show <AddDoctorViewModel>())));

            var cgroup3 = new RibbonGroupData(Messages.Group_LinkedDoctor);

            cgroup3.ButtonDataCollection.Add(new RibbonButtonData(BaseText.Add, imgUri.FormatWith("DoctorAdd")
                                                                  , new RelayCommand(() => ViewService.Manager.Show <BindDoctorViewModel>(), () => this.CanManageDoctor())));
            cgroup3.ButtonDataCollection.Add(new RibbonButtonData(BaseText.Remove, imgUri.FormatWith("DoctorRemove")
                                                                  , new RelayCommand(() => ViewService.Manager.Show <UnbindDoctorViewModel>(), () => this.CanManageDoctor())));

            var cgroup4 = new RibbonGroupData(Messages.Group_Tag);

            cgroup4.ButtonDataCollection.Add(new RibbonButtonData(Messages.Btn_BindTag, imgUri.FormatWith("TagAdd")
                                                                  , new RelayCommand(() => ViewService.Manager.Show <BindTagViewModel>(), () => this.CanManageTag())));
            cgroup4.ButtonDataCollection.Add(new RibbonButtonData(Messages.Btn_UnbindTag, imgUri.FormatWith("DoctorRemove")
                                                                  , new RelayCommand(() => ViewService.Manager.Show <RemoveTagViewModel>(), () => this.CanManageTag())));
            cgroup4.ButtonDataCollection.Add(new RibbonButtonData(BaseText.Add, imgUri.FormatWith("DoctorAdd")
                                                                  , new RelayCommand(() => ViewService.Manager.Show <AddTagViewModel>(), () => this.CanManageTag())));

            var tab = new RibbonTabData(BaseText.Menu_File)
            {
                ContextualTabGroupHeader = Messages.Title_PluginName
            };

            tab.GroupDataCollection.Add(cgroup1);
            tab.GroupDataCollection.Add(cgroup2);
            tab.GroupDataCollection.Add(cgroup3);
            tab.GroupDataCollection.Add(cgroup4);
            PluginContext.Host.AddTab(tab);

            this.ContextualMenu = new RibbonContextualTabGroupData(Messages.Title_PluginName, tab)
            {
                Background = Brushes.OrangeRed, IsVisible = false
            };
            PluginContext.Host.AddContextualMenu(this.ContextualMenu);
        }
예제 #5
0
        private void ConfigureParagraphGroup(RibbonTabData tab)
        {
            var paragraphGroup = new RibbonGroupData()
            {
                Header = Messages.Menu_Paragraph,
                Order  = 51,
            };

            paragraphGroup.ButtonDataCollection.Add(this.centerAllignButton);
            paragraphGroup.ButtonDataCollection.Add(this.justifyAllignButton);
            paragraphGroup.ButtonDataCollection.Add(this.leftAllignButton);
            paragraphGroup.ButtonDataCollection.Add(this.rightAllignButton);

            tab.GroupDataCollection.Add(paragraphGroup);
        }
예제 #6
0
        private void ConfigureSaveMenu(RibbonTabData tab)
        {
            var revisionsButton = new RibbonButtonData(Messages.Btn_Revisions, imgUri.FormatWith("Undo"), this.View.As <WorkbenchViewModel>().ShowRevisionsCommand);
            var saveButton      = new RibbonButtonData(Messages.Title_Save, imgUri.FormatWith("Save"), this.View.As <WorkbenchViewModel>().SaveCommand);
            var splitButton     = this.ConfigureSplitButton();
            var macroButton     = new RibbonButtonData(Messages.Title_Macro, imgUri.FormatWith("Edit"), new RelayCommand(
                                                           () => this.EditMacro(), () => PluginContext.DoorKeeper.IsUserGranted(To.Write)));

            var cgroup = new RibbonGroupData(Messages.Menu_Actions, 1);

            cgroup.ButtonDataCollection.Add(saveButton);
            cgroup.ButtonDataCollection.Add(revisionsButton);
            cgroup.ButtonDataCollection.Add(splitButton);
            cgroup.ButtonDataCollection.Add(macroButton);
            tab.GroupDataCollection.Add(cgroup);
        }
예제 #7
0
        private void AddButton(RibbonTabData tab, string goupName, RibbonControlData button)
        {
            var group = (from g in tab.GroupDataCollection
                         where g.Header == goupName
                         select g).FirstOrDefault();

            if (group == null)
            {
                throw new PluginException(Messages.PluginException_HomeMenuVoid);
            }

            group.ButtonDataCollection.Add(button);
            // I use ToList() because it makes a copy of the list. Otherwise, clearing the ObservableCollection
            // clears the linq result.
            group.ButtonDataCollection.Refill(group.ButtonDataCollection.OrderBy(e => e.Order).ToList());
        }
예제 #8
0
        private void ConfigureFontGroup(RibbonTabData tab)
        {
            var fontGroup = new RibbonGroupData()
            {
                Header = Messages.Menu_Font,
                Order  = 50,
            };

            fontGroup.ButtonDataCollection.Add(this.boldButton);
            fontGroup.ButtonDataCollection.Add(this.italicButton);
            fontGroup.ButtonDataCollection.Add(this.underlineButton);
            fontGroup.ButtonDataCollection.Add(this.bulletsButton);
            fontGroup.ButtonDataCollection.Add(this.numberingButton);
            //fontGroup.ButtonDataCollection.Add(this.fontsComboBox);
            //fontGroup.ButtonDataCollection.Add(this.fontsSizeComboBox);
            tab.GroupDataCollection.Add(fontGroup);
        }
예제 #9
0
        /// <summary>
        /// Builds the context menu the ribbon for this plugin.
        /// </summary>
        private void BuildContextMenu()
        {
            var ngroup = new RibbonGroupData(Messages.Menu_Navigation, 1);
            var cgroup = new RibbonGroupData(Messages.Menu_Actions, 2);

            var tab = new RibbonTabData()
            {
                Header = Messages.Menu_File, ContextualTabGroupHeader = Messages.Title_AuthorisationManager
            };

            tab.GroupDataCollection.Add(cgroup);
            tab.GroupDataCollection.Add(ngroup);

            this.ContextualMenu = new RibbonContextualTabGroupData(Messages.Title_AuthorisationManager, tab)
            {
                Background = Brushes.OrangeRed, IsVisible = false,
            };
            PluginContext.Host.AddContextualMenu(this.ContextualMenu);
            PluginContext.Host.AddTab(tab);

            ICommand roleCommand = new RelayCommand(() => this.NavigateRole(), () => this.CanNavigateRole());

            ngroup.ButtonDataCollection.Add(new RibbonButtonData(Messages.Title_RoleManager, imgUri.FormatWith("Admin"), roleCommand)
            {
                Order = 1,
            });

            ICommand userCommand = new RelayCommand(() => this.NavigateUser(), () => this.CanNavigateUser());

            ngroup.ButtonDataCollection.Add(new RibbonButtonData(Messages.Title_UserManager, imgUri.FormatWith("UserSetup"), userCommand)
            {
                Order = 2,
            });

            ICommand addRoleCommand = new RelayCommand(() => ViewService.Manager.ShowDialog <AddRoleViewModel>());

            cgroup.ButtonDataCollection.Add(new RibbonButtonData(Messages.Title_AddRole, imgUri.FormatWith("New"), addRoleCommand)
            {
                Order = 2,
            });
        }
예제 #10
0
        /// <summary>
        /// Builds the context menu of this plugin.
        /// </summary>
        private void BuildContextMenu()
        {
            var counter = 0;
            var cgroup  = new RibbonGroupData(Messages.Menu_Actions, 1);
            var tab     = new RibbonTabData()
            {
                Header = Messages.Menu_File, ContextualTabGroupHeader = Messages.Title_PathologyManager
            };

            tab.GroupDataCollection.Add(cgroup);
            this.ContextualMenu = new RibbonContextualTabGroupData(Messages.Title_PathologyManager, tab)
            {
                Background = Brushes.OrangeRed, IsVisible = false,
            };
            PluginContext.Host.AddContextualMenu(this.ContextualMenu);
            PluginContext.Host.AddTab(tab);

            ICommand addPeriodCommand = new RelayCommand(() => ViewService.Manager.ShowDialog <AddPeriodViewModel>()
                                                         , () => PluginContext.DoorKeeper.IsUserGranted(To.Write));

            cgroup.ButtonDataCollection.Add(new RibbonButtonData(Messages.Title_AddPeriods, imgUri.FormatWith("Add"), addPeriodCommand)
            {
                Order = counter++
            });

            ICommand addPathologyCategory = new RelayCommand(() => ViewService.Manager.ShowDialog <AddPathologyCategoryViewModel>()
                                                             , () => PluginContext.DoorKeeper.IsUserGranted(To.Write));

            cgroup.ButtonDataCollection.Add(new RibbonButtonData(Messages.Title_AddPathologyCategory, imgUri.FormatWith("PathologyType"), addPathologyCategory)
            {
                Order = counter++
            });

            ICommand addPathologyCommand = new RelayCommand(() => ViewService.Manager.ShowDialog <AddPathologyViewModel>()
                                                            , () => PluginContext.DoorKeeper.IsUserGranted(To.Write));

            cgroup.ButtonDataCollection.Add(new RibbonButtonData(Messages.Title_AddPathology, imgUri.FormatWith("Pathology"), addPathologyCommand)
            {
                Order = counter++
            });
        }
예제 #11
0
        private void BuildContextMenu()
        {
            var tab = new RibbonTabData()
            {
                Header = Messages.Menu_File,
                ContextualTabGroupHeader = Messages.Title_MedicalRecord
            };

            this.ConfigureSaveMenu(tab);
            this.ConfigureFontGroup(tab);
            this.ConfigureParagraphGroup(tab);
            PluginContext.Host.AddTab(tab);

            this.ContextualMenu = new RibbonContextualTabGroupData(Messages.Title_MedicalRecord, tab)
            {
                Background = Brushes.OrangeRed,
                IsVisible  = false,
            };

            PluginContext.Host.AddContextualMenu(this.ContextualMenu);
        }
예제 #12
0
        /// <summary>
        /// Builds the context menu the ribbon for this plugin.
        /// </summary>
        private void BuildContextMenu()
        {
            this.addRelationCommand = new RelayCommand(() => this.NavigateRelation(), () => this.CanNavigateRelation());

            var cgroup = new RibbonGroupData(Messages.Menu_Actions);

            cgroup.ButtonDataCollection.Add(new RibbonButtonData(Messages.Title_AddRelation, imgUri.FormatWith("Add"), addRelationCommand));

            var tab = new RibbonTabData(Messages.Menu_File, cgroup)
            {
                ContextualTabGroupHeader = Messages.Title_FamilyManager
            };

            PluginContext.Host.AddTab(tab);

            this.ContextualMenu = new RibbonContextualTabGroupData(Messages.Title_FamilyManager, tab)
            {
                Background = Brushes.OrangeRed, IsVisible = false,
            };
            PluginContext.Host.AddContextualMenu(this.ContextualMenu);
        }
예제 #13
0
        private void BuildContextMenu()
        {
            var addPicButton  = new RibbonButtonData(Messages.Title_BtnAddPic, imgUri.FormatWith("Add"), this.GetAddPicCommand());
            var addTypeButton = new RibbonButtonData(Messages.Title_AddPicType, imgUri.FormatWith("Add"), this.GetAddCategoryCommand());
            var cgroup        = new RibbonGroupData(Messages.Menu_Actions);

            cgroup.ButtonDataCollection.Add(addPicButton);
            cgroup.ButtonDataCollection.Add(addTypeButton);

            var tab = new RibbonTabData(Messages.Menu_File, cgroup)
            {
                ContextualTabGroupHeader = Messages.Title_Pictures
            };

            PluginContext.Host.AddTab(tab);

            this.ContextualMenu = new RibbonContextualTabGroupData(Messages.Title_Pictures, tab)
            {
                Background = Brushes.OrangeRed, IsVisible = false
            };
            PluginContext.Host.AddContextualMenu(this.ContextualMenu);
        }
예제 #14
0
        /// <summary>
        /// Builds the context menu of this plugin.
        /// </summary>
        private void BuildContextMenu()
        {
            var cgroup = new RibbonGroupData(Messages.Menu_Actions, 1);
            var tab    = new RibbonTabData()
            {
                Header = Messages.Menu_File, ContextualTabGroupHeader = Messages.Title_MeetingsManager
            };

            tab.GroupDataCollection.Add(cgroup);
            this.ContextualMenu = new RibbonContextualTabGroupData(Messages.Title_MeetingsManager, tab)
            {
                Background = Brushes.OrangeRed, IsVisible = false,
            };
            PluginContext.Host.AddContextualMenu(this.ContextualMenu);
            PluginContext.Host.AddTab(tab);

            ICommand addCommand = new RelayCommand(() => ViewService.Manager.ShowDialog <AddMeetingViewModel>(), () => IsCalendatEditor);

            cgroup.ButtonDataCollection.Add(new RibbonButtonData(Messages.Title_AddMeeting, imgUri.FormatWith("Add"), addCommand)
            {
                Order = 1,
            });

            ICommand removeCommand = new RelayCommand(() => ViewService.Manager.ShowDialog <RemoveMeetingViewModel>(), () => IsCalendatEditor);

            cgroup.ButtonDataCollection.Add(new RibbonButtonData(Messages.Title_RemoveMeeting, imgUri.FormatWith("Delete"), removeCommand)
            {
                Order = 2,
            });

            ICommand addCategoryCommand = new RelayCommand(() => ViewService.Manager.ShowDialog <AddCategoryViewModel>(), () => IsCalendatEditor);

            cgroup.ButtonDataCollection.Add(new RibbonButtonData(Messages.Msg_AddCategory, imgUri.FormatWith("AddCategory"), addCategoryCommand)
            {
                Order = 3,
            });
        }
예제 #15
0
        /// <summary>
        /// Builds the context menu the ribbon for this plugin.
        /// </summary>
        private void BuildContextMenu()
        {
            var vacuumButton = new RibbonButtonData(Messages.Btn_Vacuum
                                                    , imgUri.FormatWith("Vacuum")
                                                    , new RelayCommand(() => VacuumDatabase()));
            var cgroup = new RibbonGroupData(Messages.Menu_Actions);

            cgroup.ButtonDataCollection.Add(vacuumButton);

            var tab = new RibbonTabData(Messages.Menu_File)
            {
                ContextualTabGroupHeader = Messages.Title_FirstAidManager
            };

            tab.GroupDataCollection.Add(cgroup);

            PluginContext.Host.AddTab(tab);

            this.ContextualMenu = new RibbonContextualTabGroupData(Messages.Title_FirstAidManager, tab)
            {
                Background = Brushes.OrangeRed, IsVisible = false
            };
            PluginContext.Host.AddContextualMenu(this.ContextualMenu);
        }
예제 #16
0
 /// <summary>
 /// Adds the specified tab.
 /// </summary>
 /// <param name="tab">The tab.</param>
 public void AddTab(RibbonTabData tab)
 {
     this.Dispatcher.Invoke((Action) delegate { App.RibbonData.TabDataCollection.Add(tab); });
 }
예제 #17
0
        /// <summary>
        /// Builds the context menu of this plugin.
        /// </summary>
        private void BuildContextMenu()
        {
            var tab = new RibbonTabData()
            {
                Header = BaseText.Menu_File, ContextualTabGroupHeader = Messages.Title_AdministratorManager
            };

            this.ContextualMenu = new RibbonContextualTabGroupData(Messages.Title_AdministratorManager, tab)
            {
                Background = Brushes.OrangeRed, IsVisible = false,
            };
            var cgroup = new RibbonGroupData(Messages.Group_Add, 1);

            tab.GroupDataCollection.Add(cgroup);
            PluginContext.Host.AddContextualMenu(this.ContextualMenu);
            PluginContext.Host.AddTab(tab);

            int i       = 0;
            var buttons = new List <RibbonButtonData>();

            buttons.Add(new RibbonButtonData(Messages.Title_AddInsurance, imgUri.FormatWith("Insurance")
                                             , new RelayCommand(() => ViewService.Manager.ShowDialog <AddInsuranceViewModel>(), () => PluginContext.DoorKeeper.IsUserGranted(To.Write)))
            {
                Order = i++
            });

            buttons.Add(new RibbonButtonData(Messages.Title_AddPractice, imgUri.FormatWith("Practice")
                                             , new RelayCommand(() => ViewService.Manager.ShowDialog <AddPracticeViewModel>(), () => PluginContext.DoorKeeper.IsUserGranted(To.Write)))
            {
                Order = i++
            });

            buttons.Add(new RibbonButtonData(Messages.Title_AddDrugType, imgUri.FormatWith("DrugType")
                                             , new RelayCommand(() => ViewService.Manager.ShowDialog <AddDrugTypeViewModel>(), () => PluginContext.DoorKeeper.IsUserGranted(To.Write)))
            {
                Order = i++
            });

            buttons.Add(new RibbonButtonData(Messages.Title_AddDrug, imgUri.FormatWith("Drug")
                                             , new RelayCommand(() => ViewService.Manager.ShowDialog <AddDrugViewModel>(), () => PluginContext.DoorKeeper.IsUserGranted(To.Write)))
            {
                Order = i++
            });

            buttons.Add(new RibbonButtonData(Messages.Title_AddPathologyType, imgUri.FormatWith("PathologyType")
                                             , new RelayCommand(() => ViewService.Manager.ShowDialog <AddPathologyTypeViewModel>(), () => PluginContext.DoorKeeper.IsUserGranted(To.Write)))
            {
                Order = i++
            });

            buttons.Add(new RibbonButtonData(Messages.Title_AddPathology, imgUri.FormatWith("Pathology")
                                             , new RelayCommand(() => ViewService.Manager.ShowDialog <AddPathologyViewModel>(), () => PluginContext.DoorKeeper.IsUserGranted(To.Write)))
            {
                Order = i++
            });

            buttons.Add(new RibbonButtonData(Messages.Title_AddProfession, imgUri.FormatWith("Job")
                                             , new RelayCommand(() => ViewService.Manager.ShowDialog <AddProfessionViewModel>(), () => PluginContext.DoorKeeper.IsUserGranted(To.Write)))
            {
                Order = i++
            });

            buttons.Add(new RibbonButtonData(Messages.Title_AddReputation, imgUri.FormatWith("Reputation")
                                             , new RelayCommand(() => ViewService.Manager.ShowDialog <AddReputationViewModel>(), () => PluginContext.DoorKeeper.IsUserGranted(To.Write)))
            {
                Order = i++
            });

            buttons.Add(new RibbonButtonData(Messages.Title_AddPictureType, imgUri.FormatWith("PictureType")
                                             , new RelayCommand(() => ViewService.Manager.ShowDialog <AddPictureTypeViewModel>(), () => PluginContext.DoorKeeper.IsUserGranted(To.Write)))
            {
                Order = i++
            });

            buttons.Add(new RibbonButtonData(Messages.Title_AddSpecialisation, imgUri.FormatWith("Specialisation")
                                             , new RelayCommand(() => ViewService.Manager.ShowDialog <AddSpecialisationViewModel>(), () => PluginContext.DoorKeeper.IsUserGranted(To.Write)))
            {
                Order = i++
            });

            buttons.Add(new RibbonButtonData(Messages.Title_AddDoctor, imgUri.FormatWith("Doctor")
                                             , new RelayCommand(() => ViewService.Manager.ShowDialog <AddDoctorViewModel>(), () => PluginContext.DoorKeeper.IsUserGranted(To.Write)))
            {
                Order = i++
            });

            buttons.Add(new RibbonButtonData(Messages.Title_AddSearchTag, imgUri.FormatWith("SearchTag")
                                             , new RelayCommand(() => ViewService.Manager.ShowDialog <AddSearchTagViewModel>(), () => PluginContext.DoorKeeper.IsUserGranted(To.Write)))
            {
                Order = i++
            });

            foreach (var button in buttons)
            {
                cgroup.ButtonDataCollection.Add(button);
            }
        }