public WizardStep(WizardStepModel model)
        {
            var formModel = ModelsFacade.GetModel <FormModel>(model.FormName);

            Model = model;
            Form  = new Form(formModel);
        }
        private static IModelInstance CreateFormInstance(NameValueCollection form)
        {
            var name  = form["__type"];
            var model = ModelsFacade.GetModel <FormModel>(name);

            return(new Form(model));
        }
        public static void Delete(IDynamicDefinition definition)
        {
            var dir = Path.Combine(ModelsFacade.RootPath, definition.Name);

            C1Directory.Delete(dir, true);

            foreach (var submitHandler in definition.SubmitHandlers)
            {
                submitHandler.Delete(definition);
            }

            ModelsFacade.NotifyFormChanges();
        }
        public override void OnInitialize(object sender, EventArgs e)
        {
            if (BindingExist("Label"))
            {
                return;
            }

            var model = ModelsFacade.GetModel <FormModel>(FieldEntityToken.FormName);
            var field = model.Fields.Get(FieldEntityToken.FieldName);

            Bindings.Add("Label", GetValue("Label") ?? field.Label);

            SetupFormXml();
        }
        public override void OnFinish(object sender, EventArgs e)
        {
            var label = GetBinding <string>("Label");

            using (var writer = ResourceFacade.GetResourceWriter())
            {
                writer.AddResource(GetKey("Label"), label);

                var model = ModelsFacade.GetModel <FormModel>(FieldEntityToken.FormName);
                var field = model.Fields.Get(FieldEntityToken.FieldName);

                if (field.Attributes.OfType <PlaceholderTextAttribute>().Any())
                {
                    var placeholderText = GetBinding <string>("PlaceholderText");

                    writer.AddResource(GetKey("PlaceholderText"), placeholderText);
                }

                if (field.Attributes.OfType <FieldHelpAttribute>().Any())
                {
                    var help = GetBinding <string>("Help");

                    writer.AddResource(GetKey("Help"), help);
                }

                var validationAttributes = field.Attributes.OfType <FormValidationAttribute>();
                foreach (var attr in validationAttributes)
                {
                    var name = attr.GetType().Name;

                    var key     = "Validation." + name;
                    var binding = "Validation-" + name;

                    var value = GetBinding <string>(binding);

                    writer.AddResource(GetKey(key), value);
                }
            }

            var treeRefresher = CreateParentTreeRefresher();

            treeRefresher.PostRefreshMessages(EntityToken);

            SetSaveStatus(true);
        }
        public IEnumerable <Element> Provide(ElementProviderContext context, EntityToken token)
        {
            var folder = (FormFolderEntityToken)token;

            if (folder.FolderType != "Fields")
            {
                yield break;
            }

            var form = ModelsFacade.GetModel(folder.FormName);

            if (form == null)
            {
                yield break;
            }

            if (_entityTokenHandlers == null)
            {
                _entityTokenHandlers = new ProviderContainer <IElementProviderFor>("FormBuilder");
            }

            foreach (var field in form.Fields)
            {
                var elementHandle = context.CreateElementHandle(new FormFieldEntityToken(form.Name, field.Name));
                var fieldElement  = new Element(elementHandle)
                {
                    VisualData = new ElementVisualizedData
                    {
                        Label       = field.Name,
                        ToolTip     = field.Name,
                        HasChildren = _entityTokenHandlers.GetProvidersFor(elementHandle.EntityToken).Any(),
                        Icon        = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"),
                        OpenedIcon  = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root")
                    }
                };

                yield return(fieldElement);
            }
        }
        public void AddActions(Element element)
        {
            if (element.Actions.Any(a => a.TagValue == "edit"))
            {
                return;
            }

            var resourceWriter = ResourceFacade.GetResourceWriter(UserSettings.ActiveLocaleCultureInfo);

            if (resourceWriter == null)
            {
                return;
            }

            var token = (FormFieldEntityToken)element.ElementHandle.EntityToken;
            var model = ModelsFacade.GetModel(token.FormName);
            var field = model.Fields.Get(token.FieldName);

            if (!field.Attributes.OfType <FieldLabelAttribute>().Any())
            {
                return;
            }

            var editFieldActionToken = new WorkflowActionToken(typeof(EditFormFieldSettingsWorkflow));

            element.AddAction(new ElementAction(new ActionHandle(editFieldActionToken))
            {
                TagValue = "edit",

                VisualData = new ActionVisualizedData
                {
                    Label          = "Edit",
                    ToolTip        = "Edit",
                    Icon           = new ResourceHandle("Composite.Icons", "generated-type-data-edit"),
                    ActionLocation = ActionLocation
                }
            });
        }
Ejemplo n.º 8
0
 public virtual void Save(IDynamicDefinition form)
 {
     ModelsFacade.NotifyFormChanges();
 }
        private void SetupFormXml()
        {
            XDocument formDocument;

            var markupProvider = new FormDefinitionFileMarkupProvider(XmlFilePath);

            using (var reader = markupProvider.GetReader())
            {
                formDocument = XDocument.Load(reader);
            }

            if (formDocument.Root == null)
            {
                return;
            }

            var model = ModelsFacade.GetModel <FormModel>(FieldEntityToken.FormName);
            var field = model.Fields.Get(FieldEntityToken.FieldName);

            var bindingsXElement = formDocument.Root.Element(Namespaces.BindingForms10 + FormKeyTagNames.Bindings);
            var layoutElement    = formDocument.Root.Element(Namespaces.BindingForms10 + FormKeyTagNames.Layout);

            if (bindingsXElement == null || layoutElement == null)
            {
                return;
            }

            var tabPanelsElement = layoutElement.Element(Namespaces.BindingFormsStdUiControls10 + "TabPanels");

            if (tabPanelsElement == null)
            {
                return;
            }

            var basicFieldGroup = tabPanelsElement.Element(Namespaces.BindingFormsStdUiControls10 + "PlaceHolder").Element(Namespaces.BindingFormsStdUiControls10 + "FieldGroup");

            if (field.Attributes.OfType <PlaceholderTextAttribute>().Any())
            {
                var binding = "PlaceholderText";

                AddDynamicBinding(bindingsXElement, binding, GetValue(binding) ?? field.PlaceholderText);
                AddTextBox(basicFieldGroup, "Placeholder text", binding);
            }

            if (field.Attributes.OfType <FieldHelpAttribute>().Any())
            {
                var binding = "Help";

                AddDynamicBinding(bindingsXElement, binding, GetValue(binding) ?? field.Help);
                AddTextBox(basicFieldGroup, "Help", binding);
            }

            var validationAttributes = field.Attributes.OfType <FormValidationAttribute>();

            if (!validationAttributes.Any())
            {
                DeliverFormData(FieldEntityToken.FieldName, StandardUiContainerTypes.Document, formDocument.ToString(), Bindings, BindingsValidationRules);

                return;
            }

            basicFieldGroup.Attribute("Label").Remove();
            tabPanelsElement.Element(Namespaces.BindingFormsStdUiControls10 + "PlaceHolder").Add(new XAttribute("Label", "Basic"));

            var fieldGroup = new XElement(Namespaces.BindingFormsStdUiControls10 + "FieldGroup");

            foreach (var attr in validationAttributes)
            {
                var name    = attr.GetType().Name;
                var label   = attr.AttributeName();
                var binding = "Validation-" + name;

                AddTextBox(fieldGroup, label, binding);
                AddDynamicBinding(bindingsXElement, binding, GetValue("Validation." + name) ?? attr.GetValidationMessage(field));
            }

            tabPanelsElement.Add(
                new XElement(Namespaces.BindingFormsStdUiControls10 + "PlaceHolder", new XAttribute("Label", "Validation"),
                             fieldGroup
                             )
                );

            DeliverFormData(FieldEntityToken.FieldName, StandardUiContainerTypes.Document, formDocument.ToString(), Bindings, BindingsValidationRules);
        }