Ejemplo n.º 1
0
        private void UpdateFields(
            FormDefinition formDefinition,
            INZazuWpfFieldFactory fieldFactory,
            IResolveLayout resolveLayout)
        {
            Dispose();
            DisposeChecks();

            // make sure at least the minimum is set for render the layout
            if (formDefinition?.Fields == null)
            {
                return;
            }

            CreateFields(formDefinition.Fields, fieldFactory);

            if (formDefinition.Checks != null)
            {
                CreateFormChecks(formDefinition.Checks, fieldFactory.Resolve <ICheckFactory>());
            }

            var layout = resolveLayout.Resolve(formDefinition.Layout);

            var parentFields = FormDefinition.Fields.Select(fd => GetField(fd.Key));

            layout.DoLayout(Layout, parentFields, resolveLayout);

            this.SetFieldValues(FormData.Values);

            SetReadOnly(IsReadOnly);
        }
Ejemplo n.º 2
0
        private INZazuWpfLayoutStrategy SafeResolve(IResolveLayout resolveLayout, string name)
        {
            if (resolveLayout == null)
            {
                return(this);
            }
            var layout = resolveLayout.Resolve(name);

            return(layout ?? this);
        }