public override void OnFinish(object sender, EventArgs e) { var fieldToken = GetBinding <FormFieldEntityToken>("BoundToken"); var fieldName = GetBinding <string>("FieldName"); var label = GetBinding <string>("Label"); var placeholderText = GetBinding <string>("PlaceholderText"); var help = GetBinding <string>("Help"); var defaultValue = GetBinding <string>("DefaultValue"); var inputElementType = Type.GetType(GetBinding <string>("InputElementType")); var isReadOnly = GetBinding <bool>("IsReadOnly"); var definition = DynamicFormsFacade.GetFormByName(fieldToken.FormName); var field = definition.Model.Fields.Get(fieldToken.FieldName); var isNewName = field.Name != fieldName; if (isNewName) { var oldNs = Localization.GenerateKey(fieldToken.FormName, field.Name); var newNs = Localization.GenerateKey(fieldToken.FormName, fieldName); LocalizationsFacade.RenameNamespace(oldNs, newNs, Localization.ResourceSet); if (RenderingLayoutFacade.HasCustomRenderingLayout(fieldToken.FormName)) { var layout = RenderingLayoutFacade.GetRenderingLayout(fieldToken.FormName); var fieldElement = layout.Body.Descendants().SingleOrDefault(el => el.Name == Namespaces.Xhtml + "p" && el.Value.Trim() == "%" + field.Name + "%"); if (fieldElement != null) { fieldElement.Value = $"%{fieldName}%"; } RenderingLayoutFacade.SaveRenderingLayout(fieldToken.FormName, layout); } } field.Name = fieldName; field.IsReadOnly = isReadOnly; using (var writer = ResourceFacade.GetResourceWriter()) { writer.AddResource(GetKey("Label"), (string)null); writer.AddResource(GetKey("PlaceholderText"), (string)null); writer.AddResource(GetKey("Help"), (string)null); var labelAttr = field.Attributes.OfType <FieldLabelAttribute>().SingleOrDefault(); if (labelAttr != null) { field.Attributes.Remove(labelAttr); } if (!String.IsNullOrEmpty(label)) { labelAttr = new FieldLabelAttribute(label); field.Attributes.Add(labelAttr); writer.AddResource(GetKey("Label"), label); } var placeholderAttr = field.Attributes.OfType <PlaceholderTextAttribute>().SingleOrDefault(); if (placeholderAttr != null) { field.Attributes.Remove(placeholderAttr); } if (!String.IsNullOrEmpty(placeholderText)) { placeholderAttr = new PlaceholderTextAttribute(placeholderText); field.Attributes.Add(placeholderAttr); writer.AddResource(GetKey("PlaceholderText"), placeholderText); } var helpAttribute = field.Attributes.OfType <FieldHelpAttribute>().FirstOrDefault(); if (helpAttribute != null) { field.Attributes.Remove(helpAttribute); } if (!String.IsNullOrEmpty(help)) { helpAttribute = new FieldHelpAttribute(help); field.Attributes.Add(helpAttribute); writer.AddResource(GetKey("Help"), help); } } definition.DefaultValues.Remove(field.Name); if (!String.IsNullOrEmpty(defaultValue)) { definition.DefaultValues.Add(field.Name, XElement.Parse(defaultValue)); } var inputTypeAttribute = field.Attributes.OfType <InputElementTypeAttribute>().FirstOrDefault(); if (inputTypeAttribute != null) { field.Attributes.Remove(inputTypeAttribute); } inputTypeAttribute = (InputElementTypeAttribute)Activator.CreateInstance(inputElementType); field.Attributes.Add(inputTypeAttribute); field.EnsureValueType(); SaveExtraSettings(field); DynamicFormsFacade.SaveForm(definition); if (isNewName) { fieldToken = new FormFieldEntityToken(definition.Model.Name, fieldName); UpdateBinding("BoundToken", fieldToken); SetSaveStatus(true, fieldToken); } else { SetSaveStatus(true); } CreateParentTreeRefresher().PostRefreshMessages(EntityToken); }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { FieldLabelAttribute fLabel = (FieldLabelAttribute)attribute; EditorGUI.PropertyField(position, property, new GUIContent(fLabel.text)); }