Exemplo n.º 1
0
        private void Application_CustomizeTemplate(object sender, CustomizeTemplateEventArgs e)
        {
            RibbonForm ribbonForm = e.Template as RibbonForm;

            if (ribbonForm != null && ribbonForm.Ribbon is XafRibbonControlV2)
            {
                XafRibbonControlV2 ribbonControl = ribbonForm.Ribbon as XafRibbonControlV2;
                ribbonControl.BeginInit();
                foreach (IModelRibbonAction modelAction in modelActions.Select(action => action).Cast <IModelRibbonAction>().Where(a => !string.IsNullOrEmpty(a.TargetRibbonPage)))
                {
                    RibbonPage page = null;
                    page = ribbonControl.Pages.GetPageByText(modelAction.TargetRibbonPage);
                    if (page == null)
                    {
                        page      = new RibbonPage(modelAction.TargetRibbonPage);
                        page.Name = modelAction.TargetRibbonPage;
                        ribbonControl.Pages.Add(page);
                    }

                    var group = page.Groups.GetGroupByText(modelAction.TargetRibbonGroup);
                    if (group == null)
                    {
                        var ribbonGroup = new RibbonPageGroup(modelAction.TargetRibbonGroup);
                        ribbonGroup.Name = modelAction.TargetRibbonGroup;
                        ribbonGroup.AllowTextClipping = false;
                        page.Groups.Add(ribbonGroup);

                        var barLinkContainerExItem = new BarLinkContainerExItem();
                        ribbonControl.Items.Add(barLinkContainerExItem);
                        ribbonGroup.ItemLinks.Add(barLinkContainerExItem);

                        var actionContainer = new BarLinkActionControlContainer();
                        actionContainer.BeginInit();
                        ribbonControl.ActionContainers.Add(actionContainer);
                        actionContainer.ActionCategory   = modelAction.TargetRibbonGroup;
                        actionContainer.BarContainerItem = barLinkContainerExItem;
                        actionContainer.EndInit();
                    }
                }
                ribbonControl.EndInit();
            }
        }