Beispiel #1
0
        protected override IEnumerable <PageControlBase> CreateItems()
        {
            var groupPageControl = new PageControlGroup(ID, GetIndentation(), GroupType);

            var variables = new List <PSVariable>()
            {
                new PSVariable("ControlIndentation", groupPageControl.IndentationLevel + 1)
            };
            var subObjects = SubObjects?.InvokeWithContext(null, variables).Select(o => o.BaseObject) ?? Enumerable.Empty <object>();

            groupPageControl.Properties.ActionList.AddRange(subObjects.OfType <PageActionBase>());
            groupPageControl.Properties.CaptionML.Set(CaptionML);
            groupPageControl.Properties.Description           = Description;
            groupPageControl.Properties.Name                  = Name;
            groupPageControl.Properties.Editable              = Editable;
            groupPageControl.Properties.Enabled               = Enabled;
            groupPageControl.Properties.FreezeColumnID        = FreezeColumnID;
            groupPageControl.Properties.IndentationColumnName = IndentationColumnName;
            groupPageControl.Properties.IndentationControls.Set(IndentationControls);
            groupPageControl.Properties.InstructionalTextML.Set(InstructionalTextML);
            groupPageControl.Properties.Layout     = Layout;
            groupPageControl.Properties.ShowAsTree = NullableBooleanFromSwitch(nameof(ShowAsTree));
            groupPageControl.Properties.Visible    = Visible;
            groupPageControl.AutoCaption(AutoCaption);

            yield return(groupPageControl);

            foreach (var childControl in subObjects.OfType <PageControlBase>())
            {
                yield return(childControl);
            }
        }
Beispiel #2
0
        public static IEnumerable <ParameterBase> ToParameters(this PageControlGroup pageControlGroup)
        {
            yield return(new SimpleParameter("ID", pageControlGroup.ID));

            foreach (var parameter in pageControlGroup.AllProperties.WithAValue.SelectMany(p => p.ToParameters()))
            {
                yield return(parameter);
            }

            yield return(new ScriptBlockParameter("SubObjects", pageControlGroup.Children.Select(c => c.ToInvocation()).Concat(pageControlGroup.Properties.ActionList.ToInvocations())));
        }
        public static void Write(this PageControlGroup groupPageControl, CSideWriter writer, int propertyIndentation)
        {
            var debt               = 0;
            var controlID          = BuildControlPart(groupPageControl.ID.ToString(), 4, ref debt);
            var controlIndentation = BuildControlPart(groupPageControl.IndentationLevel.AsString(), 4, ref debt);
            var controlType        = BuildControlPart("Group", 10, ref debt);
            var declaration        = string.Format("{{ {0};{1};{2}", controlID, controlIndentation, controlType);

            writer.Write(declaration);

            if (groupPageControl.Properties.Any(p => p.HasValue))
            {
                writer.WriteLine(";");
                writer.Indent(propertyIndentation);
                groupPageControl.Properties.Write(PropertiesStyle.Field, writer);
                writer.Unindent();
            }
            else
            {
                writer.Write(" ");
            }

            //var idLength = Math.Max(groupPageControl.ID.ToString().Length, 4);
            //var id = groupPageControl.ID.ToString().PadRight(idLength);
            //var idAndIndentation = string.Format("{0};{1}", id, groupPageControl.IndentationLevel.ToString()).PadRight(9);
            //var idAndIndentationAndType = string.Format("{0};Group", idAndIndentation);

            //writer.WriteLine("{{ {0};", idAndIndentationAndType.PadRight(20));

            if (groupPageControl.Properties.Where(p => p.HasValue).LastOrDefault() is ActionListProperty)
            {
                writer.Write(new string(' ', 13));
            }

            writer.WriteLine("}");
            writer.InnerWriter.WriteLine();
        }