private WebControl getTableForFormItemTable()
        {
            var columnWidthSpecified = firstColumnWidth != null || secondColumnWidth != null;
            var table = EwfTable.Create(
                caption: heading,
                fields:
                new[]
            {
                new EwfTableField(size: columnWidthSpecified?firstColumnWidth: Unit.Percentage(1)),
                new EwfTableField(size: columnWidthSpecified ? secondColumnWidth : Unit.Percentage(2))
            });

            table.AddData(
                formItems,
                i => {
                var stack = ControlStack.Create(true);
                if (i.Validation != null)
                {
                    stack.AddModificationErrorItem(i.Validation, new ListErrorDisplayStyle());
                }
                stack.AddControls(i.Control);
                return(new EwfTableItem(i.Label, stack.ToCell(new TableCellSetup(textAlignment: i.TextAlignment))));
            });
            return(table);
        }
        private IEnumerable <Control> getNonIdListRegionBlocks()
        {
            var addRs    = new UpdateRegionSet();
            var removeRs = new UpdateRegionSet();

            yield return
                (new ControlLine(
                     new PostBackButton(
                         PostBack.CreateIntermediate(
                             addRs.ToSingleElementArray(),
                             DataUpdate,
                             id: "nonIdAdd",
                             firstModificationMethod: () => parametersModification.NonIdItemStates = parametersModification.NonIdItemStates.Concat(new[] { 0, 0 })),
                         new ButtonActionControlStyle("Add Two Items"),
                         usesSubmitBehavior: false),
                     new PostBackButton(
                         PostBack.CreateIntermediate(
                             removeRs.ToSingleElementArray(),
                             DataUpdate,
                             id: "nonIdRemove",
                             firstModificationMethod:
                             () => parametersModification.NonIdItemStates = parametersModification.NonIdItemStates.Take(parametersModification.NonIdItemStates.Count() - 2)),
                         new ButtonActionControlStyle("Remove Two Items"),
                         usesSubmitBehavior: false)));

            var stack = ControlStack.Create(true, tailUpdateRegions: new[] { new TailUpdateRegion(addRs, 0), new TailUpdateRegion(removeRs, 2) });

            for (var i = 0; i < info.NonIdItemStates.Count(); i += 1)
            {
                stack.AddItem(getNonIdItem(i));
            }

            yield return(new Box("Control List With Non-ID Items", stack.ToSingleElementArray()));
        }
        private IEnumerable <Control> getIdListRegionBlocks()
        {
            var rs = new UpdateRegionSet();

            yield return
                (new ControlLine(
                     new PostBackButton(
                         PostBack.CreateIntermediate(
                             rs.ToSingleElementArray(),
                             DataUpdate,
                             id: "idAdd",
                             firstModificationMethod:
                             () =>
                             parametersModification.ItemIds =
                                 (parametersModification.ItemIds.Any() ? parametersModification.ItemIds.Min() - 1 : 0).ToSingleElementArray().Concat(parametersModification.ItemIds)),
                         new ButtonActionControlStyle("Add Item"),
                         usesSubmitBehavior: false)));

            var stack = ControlStack.Create(
                true,
                itemInsertionUpdateRegions:
                new ItemInsertionUpdateRegion(rs, () => parametersModification.ItemIds.First().ToString().ToSingleElementArray()).ToSingleElementArray());

            foreach (var i in info.ItemIds)
            {
                stack.AddItem(getIdItem(i));
            }

            yield return(new Box("Control List With ID Items", stack.ToSingleElementArray()));
        }
Example #4
0
        private IEnumerable <Control> getStatusMessageDialog()
        {
            if (!EwfPage.Instance.StatusMessages.Any())
            {
                yield break;
            }

            var list = ControlStack.Create(true);

            list.AddControls(
                EwfPage.Instance.StatusMessages.Select(
                    i =>
                    new Label
            {
                CssClass =
                    i.Item1 == StatusMessageType.Info
                                                                        ? CssElementCreator.StatusMessageDialogControlListInfoItemCssClass
                                                                        : CssElementCreator.StatusMessageDialogControlListWarningItemCssClass,
                Text = i.Item2
            } as Control).ToArray());

            if (EwfPage.Instance.StatusMessages.Any(i => i.Item1 == StatusMessageType.Warning))
            {
                list.AddControls(new CustomButton(() => "fadeOutStatusMessageDialog( 0 )")
                {
                    ActionControlStyle = new ButtonActionControlStyle("OK")
                });
            }

            yield return(new Block(list)
            {
                CssClass = CssElementCreator.StatusMessageDialogBlockCssClass
            });
        }
        private ControlListItem getIdItem(int id)
        {
            var rs = new UpdateRegionSet();
            var pb = PostBack.CreateIntermediate(rs.ToSingleElementArray(), DataUpdate, id: PostBack.GetCompositeId("id", id.ToString()));

            var itemStack = ControlStack.Create(true);

            itemStack.AddControls(new EwfTextBox("ID {0}".FormatWith(id)));
            itemStack.AddControls(
                new PostBackButton(pb, new ButtonActionControlStyle("Remove", buttonSize: ButtonActionControlStyle.ButtonSize.ShrinkWrap), usesSubmitBehavior: false));

            pb.AddModificationMethod(() => parametersModification.ItemIds = parametersModification.ItemIds.Where(i => i != id).ToArray());

            return(new ControlListItem(itemStack.ToSingleElementArray(), id.ToString(), removalUpdateRegionSet: rs));
        }
        private ControlListItem getNonIdItem(int i)
        {
            var rs = new UpdateRegionSet();
            var pb = PostBack.CreateIntermediate(rs.ToSingleElementArray(), DataUpdate, id: PostBack.GetCompositeId("nonId", i.ToString()));

            var itemStack = ControlStack.Create(true);

            if (info.NonIdItemStates.ElementAt(i) == 1)
            {
                itemStack.AddControls(new EwfTextBox("Item {0}".FormatWith(i)));
            }
            else
            {
                itemStack.AddText("Item {0}".FormatWith(i));
            }
            itemStack.AddControls(
                new PostBackButton(pb, new ButtonActionControlStyle("Toggle", buttonSize: ButtonActionControlStyle.ButtonSize.ShrinkWrap), usesSubmitBehavior: false));

            pb.AddModificationMethod(
                () => parametersModification.NonIdItemStates = parametersModification.NonIdItemStates.Select((state, index) => index == i ? (state + 1) % 2 : state));

            return(new ControlListItem(itemStack.ToSingleElementArray(), updateRegionSet: rs));
        }