/// <summary> /// Gets the field editor. /// </summary> /// <param name="prop">The property.</param> /// <param name="fieldEditorAttr">The field editor attribute.</param> /// <returns></returns> private static string GetFieldEditor(PropertyInfo prop, FieldEditorAttribute fieldEditorAttr) { return fieldEditorAttr == null ? prop.PropertyType.ToString() : fieldEditorAttr.DataType; }
/// <summary>Gets the schedule date field vm.</summary> /// <param name="prop">The property.</param> /// <param name="model">The model.</param> /// <param name="promptAttr">The prompt attribute.</param> /// <param name="display">The display.</param> /// <param name="fieldEditorAttr">The field editor attribute.</param> /// <returns></returns> private ScheduleDateFieldViewModel GetScheduleDateFieldVM(PropertyInfo prop, IEditableRoot model, PromptAttribute promptAttr, DisplayAttribute display, FieldEditorAttribute fieldEditorAttr) { var vm = ScheduleDateFieldViewModelFactory.CreateExport().Value; SetupField(prop, promptAttr, display, vm, model); vm.FieldType = GetFieldEditor(prop, fieldEditorAttr); return vm; }
/// <summary> /// Gets the text field vm. /// </summary> /// <param name="prop">The property.</param> /// <param name="model">The model.</param> /// <param name="textAttr">The text attribute.</param> /// <param name="promptAttr">The prompt attribute.</param> /// <param name="display">The display.</param> /// <param name="fieldEditorAttr">The field editor attribute.</param> /// <returns></returns> private TextFieldViewModel GetTextFieldVM(PropertyInfo prop, IEditableRoot model, TextFieldAttribute textAttr, PromptAttribute promptAttr, DisplayAttribute display, FieldEditorAttribute fieldEditorAttr) { var vm = TextFieldViewModelFactory.CreateExport().Value; vm.NumberOfRows = textAttr.NumberOfRows; vm.Mask = textAttr.Mask; vm.MaskType = textAttr.MaskType; vm.MaxLength = textAttr.NumberOfCharacters; SetupField(prop, promptAttr, display, vm, model); vm.FieldType = GetFieldEditor(prop, fieldEditorAttr); return vm; }
/// <summary> /// Gets the date time field vm. /// </summary> /// <param name="prop">The property.</param> /// <param name="model">The model.</param> /// <param name="dateAttr">The date attribute.</param> /// <param name="promptAttr">The prompt attribute.</param> /// <param name="display">The display.</param> /// <param name="fieldEditorAttr">The field editor attribute.</param> /// <returns></returns> private DateTimeFieldViewModel GetDateTimeFieldVM(PropertyInfo prop, IEditableRoot model, DateTimeFormatAttribute dateAttr, PromptAttribute promptAttr, DisplayAttribute display, FieldEditorAttribute fieldEditorAttr) { var vm = DateTimeFieldViewModelFactory.CreateExport().Value; vm.InputMode = dateAttr.Value; SetupField(prop, promptAttr, display, vm, model); vm.FieldType = GetFieldEditor(prop, fieldEditorAttr); return vm; }
/// <summary> /// Gets the numeric field view model vm. /// </summary> /// <param name="prop">The property.</param> /// <param name="model">The model.</param> /// <param name="promptAttr">The prompt attribute.</param> /// <param name="display">The display.</param> /// <param name="fieldEditorAttr">The field editor attribute.</param> /// <param name="numericAttr">The numeric attribute.</param> /// <returns></returns> private NumericFieldViewModel GetNumericFieldViewModelVM(PropertyInfo prop, IEditableRoot model, PromptAttribute promptAttr, DisplayAttribute display, FieldEditorAttribute fieldEditorAttr, NumericAttribute numericAttr) { var vm = NumericFieldViewModelFactory.CreateExport().Value; SetupField(prop, promptAttr, display, vm, model, 0); vm.FieldType = GetFieldEditor(prop, fieldEditorAttr); vm.NumericType = numericAttr.NumericType; vm.NumberOfDigits = numericAttr.NumberOfDigits; return vm; }
/// <summary> /// Gets the checkbox field vm. /// </summary> /// <param name="prop">The property.</param> /// <param name="model">The model.</param> /// <param name="promptAttr">The prompt attribute.</param> /// <param name="display">The display.</param> /// <param name="fieldEditorAttr">The field editor attribute.</param> /// <returns></returns> private FieldViewModel GetCheckboxFieldVM(PropertyInfo prop, IEditableRoot model, PromptAttribute promptAttr, DisplayAttribute display, FieldEditorAttribute fieldEditorAttr) { var vm = FieldViewModelFactory.CreateExport().Value; SetupField(prop, promptAttr, display, vm, model); vm.FieldType = GetFieldEditor(prop, fieldEditorAttr); foreach (var nameValueAttribute in prop.GetCustomAttributes(typeof(NameValueAttribute), true).Cast<NameValueAttribute>()) vm.AddProperty(GetAttributeName(nameValueAttribute), nameValueAttribute.Value.GetType(), true); foreach (var nameValueAttribute in prop.GetCustomAttributes(typeof(NameValueAttribute), true).Cast<NameValueAttribute>()) vm.SetPropertyValue(GetAttributeName(nameValueAttribute), nameValueAttribute.Value); return vm; }
/// <summary> /// Gets the cr field vm. /// </summary> /// <param name="prop">The property.</param> /// <param name="model">The model.</param> /// <param name="crossRefAttr">The cross reference attribute.</param> /// <param name="promptAttr">The prompt attribute.</param> /// <param name="display">The display.</param> /// <param name="fieldEditorAttr">The field editor attribute.</param> /// <returns></returns> private ICrossRefFieldViewModelBase GetCRFieldVM(PropertyInfo prop, IEditableRoot model, CrossRefFieldAttribute crossRefAttr, PromptAttribute promptAttr, DisplayAttribute display, FieldEditorAttribute fieldEditorAttr) { ICrossRefFieldViewModelBase crossReffieldViewModel; dynamic defaultValue = null; if (crossRefAttr.AllowMultiple) { crossReffieldViewModel = MultiCrossRefFieldViewModelFactory.CreateExport().Value; var crType = TheDynamicTypeManager.GetCrossReferenceListType(model.ProcessName, prop.Name); defaultValue = Activator.CreateInstance(crType); } else { var vm = SingleCrossRefFieldViewModelFactory.CreateExport().Value; vm.AllowAddNew = false; // crossRefAttr.AllowAddNew; vm.AllowViewDetail = false; // crossRefAttr.AllowViewDetail; vm.AllowClear = crossRefAttr.AllowClear; crossReffieldViewModel = vm; } crossReffieldViewModel.List = null; crossReffieldViewModel.ReferenceName = crossRefAttr.ReferenceTableName; crossReffieldViewModel.DisplayField = crossRefAttr.RefFieldName; crossReffieldViewModel.DisplayPath = crossRefAttr.DisplayFieldList; crossReffieldViewModel.FieldType = crossRefAttr.AllowMultiple ? "MultiCrossRef" : "SingleCrossRef"; crossReffieldViewModel.ItemProcess = crossRefAttr.ReferenceTableName; SetupField(prop, promptAttr, display, crossReffieldViewModel, model, defaultValue); crossReffieldViewModel.ItemType = crossReffieldViewModel.List != null ? crossReffieldViewModel.List.GetType().BaseType.GetGenericArguments()[1] : TheDynamicTypeManager.GetCrossReferenceItemType(model.ProcessName, prop.Name); return crossReffieldViewModel; }
private IFieldViewModel SetupDateTimeFieldViewModel(PropertyInfo prop, IEditableRoot model, IDetailsViewModel detailsViewModel, DateTimeFormatAttribute dateAttr, FieldEditorAttribute fieldEditorAttr, CommonSettingsAttribute commonSettingsAttr, DocumentationAttribute docAttr, PromptAttribute promptAttr, object display) { var vm = DateTimeFieldViewModelFactory.CreateExport().Value; vm.InputMode = dateAttr.Value; vm.FieldType = GetFieldEditor(prop, fieldEditorAttr); SetupField(prop, commonSettingsAttr, docAttr, promptAttr, display, vm, model, detailsViewModel); return vm; }