Example #1
0
        internal MenuItemCollection(
            IMenuItemContainer itemContainer)
        {
            if (null == itemContainer)
            {
                throw new ArgumentNullException(nameof(itemContainer));
            }

            this._itemContainer = itemContainer;
            this._items         = new List <MenuItem>();
        }
Example #2
0
        static IEnumerable <IMenuItemContainer> CreateItems(Configuration.MenuItemElementCollection itemElementCollection, List <IMenuItemContainer> itemContainers)
        {
            if (itemElementCollection != null)
            {
                if (!string.IsNullOrEmpty(itemElementCollection.Type))
                {
                    itemContainers.Add((IMenuItemContainer)Activator.CreateInstance(Type.GetType(itemElementCollection.Type)));
                }
                else
                {
                    foreach (Configuration.MenuItemElement element in itemElementCollection)
                    {
                        IMenuItemContainer itemContainer = null;
                        if (!string.IsNullOrEmpty(element.Type))
                        {
                            itemContainer = (IMenuItemContainer)Activator.CreateInstance(Type.GetType(element.Type));
                        }
                        else
                        {
                            itemContainer = new MenuItemTemplate();
                        }
                        itemContainers.Add(itemContainer);
                        if (itemContainer is MenuItemTemplate)
                        {
                            var itemTemplate = (MenuItemTemplate)itemContainer;

                            itemTemplate.Name               = element.Name;
                            itemTemplate.Text               = element.Text;
                            itemTemplate.Action             = element.Action;
                            itemTemplate.Controller         = element.Controller;
                            itemTemplate.Visible            = element.Visible;
                            itemTemplate.Area               = element.Area;
                            itemTemplate.RouteValues        = new System.Web.Routing.RouteValueDictionary(element.RouteValues.Attributes);
                            itemTemplate.HtmlAttributes     = new System.Web.Routing.RouteValueDictionary(element.HtmlAttributes.Attributes);
                            itemTemplate.ReadOnlyProperties = element.UnrecognizedProperties;

                            if (!string.IsNullOrEmpty(element.Initializer))
                            {
                                Type type = Type.GetType(element.Initializer);
                                itemTemplate.Initializer = (IMenuItemInitializer)Activator.CreateInstance(type);
                            }

                            List <IMenuItemContainer> subItems = new List <IMenuItemContainer>();
                            if (element.Items != null)
                            {
                                itemTemplate.ItemContainers = CreateItems(element.Items, subItems);
                            }
                        }
                    }
                }
            }
            return(itemContainers);
        }
Example #3
0
		public ActionItem (ActionTreeNode node, IMenuItemContainer parent, uint itemSpacing)
		{
			DND.SourceSet (this);
			this.parentMenu = parent;
			this.node = node;
			this.VisibleWindow = false;
			this.CanFocus = true;
			this.Events |= Gdk.EventMask.KeyPressMask;
			this.itemSpacing = itemSpacing;
			if (node.Action != null)
				node.Action.ObjectChanged += OnActionChanged;
		}
Example #4
0
 public ActionItem(ActionTreeNode node, IMenuItemContainer parent, uint itemSpacing)
 {
     DND.SourceSet(this);
     this.parentMenu    = parent;
     this.node          = node;
     this.VisibleWindow = false;
     this.CanFocus      = true;
     this.Events       |= Gdk.EventMask.KeyPressMask;
     this.itemSpacing   = itemSpacing;
     if (node.Action != null)
     {
         node.Action.ObjectChanged += OnActionChanged;
     }
 }
		private static void _FillItems(int depth, IMenuItemContainer container, IList<MenuItemEditModel> items)
		{
		    if (null == container.Items) return;
		    foreach (var i in container.Items)
		    {
		        items.Add(new MenuItemEditModel
		                      {
		                          Indent = depth,
		                          Name = i.Name,
		                          Type = i.Type,
		                          Location = i.Location,
		                      });
		        _FillItems(depth + 1, i, items);
		    }
		}
 private static void _FillItems(int depth, IMenuItemContainer container, IList <MenuItemEditModel> items)
 {
     if (null == container.Items)
     {
         return;
     }
     foreach (var i in container.Items)
     {
         items.Add(new MenuItemEditModel
         {
             Indent   = depth,
             Name     = i.Name,
             Type     = i.Type,
             Location = i.Location,
         });
         _FillItems(depth + 1, i, items);
     }
 }
Example #7
0
		internal ActionMenu (Widget wrapper, IMenuItemContainer parentMenu, ActionTreeNode node)
		{
			DND.DestSet (this, true);
			parentNode = node;
			this.parentMenu = parentMenu;
			this.wrapper = wrapper;
			this.nodes = node.Children;
			table = new Gtk.Table (0, 0, false);
			table.ColumnSpacing = 5;
			table.RowSpacing = 5;
			table.BorderWidth = 5;
			this.AppPaintable = true;
			
			Add (table);
			
			Fill ();
			
			parentNode.ChildNodeAdded += OnChildAdded;
			parentNode.ChildNodeRemoved += OnChildRemoved;
		}
        internal ActionMenu(Widget wrapper, IMenuItemContainer parentMenu, ActionTreeNode node)
        {
            DND.DestSet(this, true);
            parentNode          = node;
            this.parentMenu     = parentMenu;
            this.wrapper        = wrapper;
            this.nodes          = node.Children;
            table               = new Gtk.Table(0, 0, false);
            table.ColumnSpacing = 5;
            table.RowSpacing    = 5;
            table.BorderWidth   = 5;
            this.AppPaintable   = true;

            Add(table);

            Fill();

            parentNode.ChildNodeAdded   += OnChildAdded;
            parentNode.ChildNodeRemoved += OnChildRemoved;
        }
Example #9
0
 internal ActionMenuItem(Widget wrapper, IMenuItemContainer parent, ActionTreeNode node, uint itemSpacing) : base(node, parent, itemSpacing)
 {
     this.wrapper = wrapper;
     CreateControls();
 }
Example #10
0
 internal ActionMenuItem(IDesignArea designArea, IProject project, IMenuItemContainer parent, ActionTreeNode node)
     : this(null, parent, node, 6)
 {
     this.project    = project;
     this.designArea = designArea;
 }
Example #11
0
 internal ActionMenuItem(Widget wrapper, IMenuItemContainer parent, ActionTreeNode node)
     : this(wrapper, parent, node, 0)
 {
 }
Example #12
0
		internal ActionMenuItem (Widget wrapper, IMenuItemContainer parent, ActionTreeNode node, uint itemSpacing): base (node, parent, itemSpacing)
		{
			this.wrapper = wrapper;
			CreateControls ();
		}
Example #13
0
		internal ActionMenuItem (IDesignArea designArea, IProject project, IMenuItemContainer parent, ActionTreeNode node)
		: this (null, parent, node, 6)
		{
			this.project = project;
			this.designArea = designArea;
		}
Example #14
0
		internal ActionMenuItem (Widget wrapper, IMenuItemContainer parent, ActionTreeNode node)
		: this (wrapper, parent, node, 0)
		{
		}
        public MenuItemFactory(IMenuItemContainer container)
        {
            Guard.IsNotNull(container, "container");

            this.container = container;
        }