示例#1
0
        private void EnsurePopup()
        {
            if (!CUIUtility.IsNullOrUndefined(_popupLayout))
            {
                return;
            }

            if (string.IsNullOrEmpty(PopupLayoutTitle))
            {
                throw new ArgumentNullException("No PopupLayoutTitle has been set.");
            }

            // Create the Components and Controls needed for the Group Popup
            _popupLayout      = Ribbon.CreateGroupPopupLayout(this.Id + "-Popup", this);
            _popupMenu        = Ribbon.CreateMenu(this.Id + "-popupMenu", null, null, null);
            _popupMenuSection = Ribbon.CreateMenuSection(this.Id + "-popupMenuSection", null, null, false, null, null);

            JSObject tempObj             = new JSObject();
            FlyoutAnchorProperties props = tempObj.To <FlyoutAnchorProperties>();

            props.LabelText = Title;

            RibbonProperties ribbonProperties = Ribbon.RibbonProperties;

            if (!string.IsNullOrEmpty(Properties.Image32by32Popup))
            {
                props.Image32by32      = Properties.Image32by32Popup;
                props.Image32by32Class = Properties.Image32by32PopupClass;
                props.Image32by32Top   = Properties.Image32by32PopupTop;
                props.Image32by32Left  = Properties.Image32by32PopupLeft;
            }
            else
            {
                props.Image32by32      = ribbonProperties.Image32by32GroupPopupDefault;
                props.Image32by32Class = ribbonProperties.Image32by32GroupPopupDefaultClass;
                props.Image32by32Left  = ribbonProperties.Image32by32GroupPopupDefaultLeft;
                props.Image32by32Top   = ribbonProperties.Image32by32GroupPopupDefaultTop;
            }
            props.Command = this.Command;

            _popupAnchor = new FlyoutAnchor(Ribbon,
                                            this.Id + "-PopupAnchor",
                                            props,
                                            _popupMenu);
            _popupAnchor.IsGroupPopup = true;

            // Set the enabled state of the anchor to the enabled state of the Group initially
            _popupAnchor.Enabled = Enabled;
            _popup = Ribbon.CreateGroupPopup(this.Id + "-popupMenuItem", this);

            // Compose the hierarchy needed for the Group Popup
            _popupLayout.AddChild(_popupAnchor.CreateComponentForDisplayMode("Large"));
            _popupMenu.AddChild(_popupMenuSection);
            _popupMenuSection.AddChild(_popup);

            _popup.LayoutTitle = PopupLayoutTitle;
            AddChild(_popupLayout);
        }
示例#2
0
        private MenuSection BuildMenuSection(JSObject data, BuildContext bc)
        {
            string displayMode = DataNodeWrapper.GetAttribute(data, DataNodeWrapper.DISPLAYMODE);

            if (CUIUtility.IsNullOrUndefined(displayMode))
            {
                displayMode = "Menu";
            }

            string      id          = DataNodeWrapper.GetAttribute(data, DataNodeWrapper.ID);
            string      title       = DataNodeWrapper.GetAttribute(data, DataNodeWrapper.TITLE);
            string      description = DataNodeWrapper.GetAttribute(data, DataNodeWrapper.DESCRIPTION);
            bool        scrollable  = Utility.IsTrue(DataNodeWrapper.GetAttribute(data, DataNodeWrapper.SCROLLABLE));
            string      maxheight   = DataNodeWrapper.GetAttribute(data, DataNodeWrapper.MAXHEIGHT);
            MenuSection ms          = Root.CreateMenuSection(id,
                                                             title,
                                                             description,
                                                             scrollable,
                                                             maxheight,
                                                             displayMode);

            JSObject[] menuSectionChildren = DataNodeWrapper.GetNodeChildren(data);
            JSObject   msChild             = menuSectionChildren[0];
            string     msChildName         = DataNodeWrapper.GetNodeName(msChild);

            if (msChildName == DataNodeWrapper.CONTROLS)
            {
                // Get the <MenuSection><Controls> node's children
                JSObject[] individualControls = DataNodeWrapper.GetNodeChildren(msChild);
                int        l = individualControls.Length;

                JSObject child = null;
                for (int i = 0; i < l; i++)
                {
                    child = individualControls[i];
                    if (IsNodeTrimmed(child))
                    {
                        continue;
                    }
                    Control control = BuildControl(child, bc);
                    ms.AddChild(control.CreateComponentForDisplayMode(displayMode));
                }
            }
            else if (msChildName == DataNodeWrapper.GALLERY)
            {
                Gallery gallery = BuildGallery(msChild, bc, true);
                ms.AddChild(gallery);
            }

            return(ms);
        }
示例#3
0
        private void FillMenu(Menu menu, JSObject data, BuildContext bc)
        {
            JSObject[] children = DataNodeWrapper.GetNodeChildren(data);
            int        l        = children.Length;

            for (int i = 0; i < l; i++)
            {
                JSObject child = children[i];
                string   name  = DataNodeWrapper.GetNodeName(child);
                if (name != DataNodeWrapper.MENUSECTION)
                {
                    throw new InvalidOperationException("Tags with the name: " + name + " cannot be children of Menu tags.");
                }

                // Skip over menu sections that have been trimmed
                if (IsNodeTrimmed(child))
                {
                    continue;
                }

                MenuSection ms = BuildMenuSection(child, bc);
                menu.AddChild(ms);
            }
        }
示例#4
0
        private void EnsurePopup()
        {
            if (!CUIUtility.IsNullOrUndefined(_popupLayout))
                return;

            if (string.IsNullOrEmpty(PopupLayoutTitle))
                throw new ArgumentNullException("No PopupLayoutTitle has been set.");

            // Create the Components and Controls needed for the Group Popup
            _popupLayout = Ribbon.CreateGroupPopupLayout(this.Id + "-Popup", this);
            _popupMenu = Ribbon.CreateMenu(this.Id + "-popupMenu", null, null, null);
            _popupMenuSection = Ribbon.CreateMenuSection(this.Id + "-popupMenuSection", null, null, false, null, null);

            JSObject tempObj = new JSObject();
            FlyoutAnchorProperties props = tempObj.To<FlyoutAnchorProperties>();
            props.LabelText = Title;

            RibbonProperties ribbonProperties = Ribbon.RibbonProperties;

            if (!string.IsNullOrEmpty(Properties.Image32by32Popup))
            {
                props.Image32by32 = Properties.Image32by32Popup;
                props.Image32by32Class = Properties.Image32by32PopupClass;
                props.Image32by32Top = Properties.Image32by32PopupTop;
                props.Image32by32Left = Properties.Image32by32PopupLeft;
            }
            else
            {
                props.Image32by32 = ribbonProperties.Image32by32GroupPopupDefault;
                props.Image32by32Class = ribbonProperties.Image32by32GroupPopupDefaultClass;
                props.Image32by32Left = ribbonProperties.Image32by32GroupPopupDefaultLeft;
                props.Image32by32Top = ribbonProperties.Image32by32GroupPopupDefaultTop;
            }
            props.Command = this.Command;

            _popupAnchor = new FlyoutAnchor(Ribbon,
                                            this.Id + "-PopupAnchor", 
                                            props, 
                                            _popupMenu);
            _popupAnchor.IsGroupPopup = true;

            // Set the enabled state of the anchor to the enabled state of the Group initially
            _popupAnchor.Enabled = Enabled;
            _popup = Ribbon.CreateGroupPopup(this.Id + "-popupMenuItem", this);

            // Compose the hierarchy needed for the Group Popup
            _popupLayout.AddChild(_popupAnchor.CreateComponentForDisplayMode("Large"));
            _popupMenu.AddChild(_popupMenuSection);
            _popupMenuSection.AddChild(_popup);

            _popup.LayoutTitle = PopupLayoutTitle;
            AddChild(_popupLayout);
        }