protected override IEnumerable <PageActionBase> CreateItems()
        {
            var pageActionGroup = new PageActionGroup(ID, GetIndentation());

            pageActionGroup.Properties.CaptionML.Set(CaptionML);
            pageActionGroup.Properties.ActionContainerType = ContainerType;
            pageActionGroup.Properties.Description         = Description;
            pageActionGroup.Properties.Enabled             = Enabled;
            pageActionGroup.Properties.Image = Image;
            pageActionGroup.Properties.Name  = Name;
#if NAV2016
            pageActionGroup.Properties.ToolTipML.Set(ToolTipML);
#endif
            pageActionGroup.Properties.Visible = Visible;

            yield return(pageActionGroup);

            if (ChildActions != null)
            {
                var variables = new List <PSVariable>()
                {
                    new PSVariable("ActionIndentation", GetIndentation() + 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 PageActionGroup pageActionGroup)
        {
            yield return(new SimpleParameter("ID", pageActionGroup.ID));

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

            yield return(new ScriptBlockParameter("ChildActions", pageActionGroup.Children.Select(a => a.ToInvocation())));
        }
        public static void Write(this PageActionGroup 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.ToString());

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