protected override IEnumerable<PageActionBase> CreateItems()
        {
            var pageActionContainer = new PageActionContainer(0, ID, ContainerType.GetValueOrDefault(PageActionContainerType.ActionItems));
            pageActionContainer.Properties.CaptionML.Set(CaptionML);
            pageActionContainer.Properties.Description = Description;
            pageActionContainer.Properties.Name = Name;
#if NAV2016
            pageActionContainer.Properties.ToolTipML.Set(ToolTipML);
#endif

            yield return pageActionContainer;

            if (ChildActions != null)
            {
                var variables = new List<PSVariable>() { new PSVariable("ActionIndentation", 1) };
                var childActions = ChildActions
                    .InvokeWithContext(null, variables)
                    .Select(o => o.BaseObject)
                    .Cast<PageActionBase>();

                foreach (var childAction in childActions)
                {
                    yield return childAction;
                }
            }

        }
示例#2
0
        public static IEnumerable <ParameterBase> ToParameters(this PageActionContainer pageActionContainer)
        {
            yield return(new SimpleParameter("ID", pageActionContainer.ID));

            foreach (var parameter in pageActionContainer.Properties.Where(p => p.HasValue).SelectMany(p => p.ToParameters()))
            {
                yield return(parameter);
            }

            yield return(new ScriptBlockParameter("ChildActions", pageActionContainer.Children.Select(a => a.ToInvocation())));
        }
        public static void Write(this PageActionContainer action, CSideWriter writer)
        {
            var idLength         = Math.Max(action.ID.ToString().Length, 8);
            var id               = action.ID.ToString().PadRight(idLength);
            var idAndIndentation = string.Format("{0};{1}", id, action.IndentationLevel.HasValue ? action.IndentationLevel.ToString() : string.Empty);

            writer.Write("{{ {0};", idAndIndentation.PadRight(13));
            writer.Indent(writer.Column);
            writer.WriteLine("ActionContainer;");
            action.Properties.Write(PropertiesStyle.Field, writer);
            writer.WriteLine("}");
            writer.Unindent();
        }