예제 #1
0
        /// <summary>
        ///
        /// </summary>
        public virtual void CreateActionPanels()
        {
            var actions = new List <ActionMetaItem>();

            if (BusinessObject != null)
            {
                //получаем действия из объекта
                var meta = (IObjectMeta)BusinessObject.GetAccessor();
                meta.Actions.ForEach(a => actions.Add(new ActionMetaItem(a)));
            }
            //определяем, есть ли дополнительные действия, определённые в самой BasePanel
            if (ParentBasePanel != null)
            {
                //собираем действия, которые требуется добавить к базовым
                ParentBasePanel.SetCustomActions(actions);
                foreach (var act in ParentBasePanel.CustomActions)
                {
                    if (actions.All(a => a.Name != act.Name))
                    {
                        actions.Add(act);
                    }
                }
            }

            //добавляем действия
            AddActions(actions);
        }