public GroupField Clone() { GroupField clone = (GroupField)this.MemberwiseClone(); base.AssignMembers(clone); return(clone); }
/// <summary> /// Constructor for Label Field Definition /// </summary> /// <param name="frm">The main form</param> /// <param name="field">The label field</param> public GroupFieldDefinition(MainForm frm, GroupField field) : base(frm) { InitializeComponent(); this.mode = FormMode.Edit; this.field = field; this.page = field.Page; LoadFormData(); }
private List<Control> GetControls(GroupField field, Size canvasSize) { DragableGroupBox group = new DragableGroupBox(); SetControlProperties(group, field, canvasSize); group.ForeColor = Color.Black; group.BackColor = field.BackgroundColor; group.Text = field.PromptText; group.AutoSize = true; group.Tag = field.ChildFieldNames; List<Control> controls = new List<Control>(); controls.Add(group); if (!fieldControls.ContainsKey(field)) { fieldControls.Add(field, controls); } else { fieldControls.Remove(field); fieldControls.Add(field, controls); } return controls; }
/// <summary> /// Update Group field. /// </summary> /// <param name="field">Group field to update.</param> public void UpdateField(GroupField field) { try { #region InputValidation if (field == null) { throw new ArgumentNullException("GroupField"); } #endregion Query updateQuery = db.CreateQuery("update metaFields set [ControlFontFamily] = @ControlFontFamily, [ControlFontStyle] = @ControlFontStyle, " + "[ControlFontSize] = @ControlFontSize, [ControlHeightPercentage] = @ControlHeightPercentage, [ControlLeftPositionPercentage] = @ControlLeftPositionPercentage, " + "[ControlTopPositionPercentage] = @ControlTopPositionPercentage, [ControlWidthPercentage] = @ControlWidthPercentage, " + "[FieldTypeId] = @FieldTypeId, [HasTabStop] = @HasTabStop, [Name] = @Name, [PageId] = @PageId, [PromptText] = @PromptText, " + "[List] = @List, [BackgroundColor] = @BackgroundColor, " + "[TabIndex] = @TabIndex where [UniqueId] = @UniqueId"); updateQuery.Parameters.Add(new QueryParameter("@ControlFontFamily", DbType.String, field.ControlFont.Name)); updateQuery.Parameters.Add(new QueryParameter("@ControlFontStyle", DbType.String, field.ControlFont.Style.ToString())); updateQuery.Parameters.Add(new QueryParameter("@ControlFontSize", DbType.Double, field.ControlFont.Size)); updateQuery.Parameters.Add(new QueryParameter("@ControlHeightPercentage", DbType.Double, field.ControlHeightPercentage)); updateQuery.Parameters.Add(new QueryParameter("@ControlLeftPositionPercentage", DbType.Double, field.ControlLeftPositionPercentage)); updateQuery.Parameters.Add(new QueryParameter("@ControlTopPositionPercentage", DbType.Double, field.ControlTopPositionPercentage)); updateQuery.Parameters.Add(new QueryParameter("@ControlWidthPercentage", DbType.Double, field.ControlWidthPercentage)); updateQuery.Parameters.Add(new QueryParameter("@FieldTypeId", DbType.Int32, (int)field.FieldType)); updateQuery.Parameters.Add(new QueryParameter("@HasTabStop", DbType.Boolean, field.HasTabStop)); updateQuery.Parameters.Add(new QueryParameter("@Name", DbType.String, field.Name)); updateQuery.Parameters.Add(new QueryParameter("@PageId", DbType.Int32, field.Page.Id)); updateQuery.Parameters.Add(new QueryParameter("@PromptText", DbType.String, field.PromptText)); updateQuery.Parameters.Add(new QueryParameter("@List", DbType.String, field.ChildFieldNames)); updateQuery.Parameters.Add(new QueryParameter("@BackgroundColor", DbType.Int32, field.BackgroundColor.ToArgb())); updateQuery.Parameters.Add(new QueryParameter("@TabIndex", DbType.Int32, field.TabIndex)); updateQuery.Parameters.Add(new QueryParameter("@UniqueId", DbType.Guid, field.UniqueId)); db.ExecuteNonQuery(updateQuery); } catch (Exception ex) { throw new GeneralException("Could not update GroupField in the database", ex); } }
/// <summary> /// Gets all the fields in a view /// </summary> /// <param name="view">A view object</param> /// <returns>A collection of fields</returns> public virtual FieldCollectionMaster GetFields(View view) { FieldCollectionMaster fields = new FieldCollectionMaster(); try { DataTable table = GetFieldsAsDataTable(view); foreach (DataRow row in table.Rows) { MetaFieldType fieldTypeId = (MetaFieldType)row[ColumnNames.FIELD_TYPE_ID]; Field field = null; switch (fieldTypeId) { case MetaFieldType.Text: field = new SingleLineTextField(view); field.LoadFromRow(row); break; case MetaFieldType.LabelTitle: field = new LabelField(view); field.LoadFromRow(row); break; case MetaFieldType.TextUppercase: field = new UpperCaseTextField(view); field.LoadFromRow(row); break; case MetaFieldType.Multiline: field = new MultilineTextField(view); field.LoadFromRow(row); break; case MetaFieldType.Number: field = new NumberField(view); field.LoadFromRow(row); break; case MetaFieldType.PhoneNumber: field = new PhoneNumberField(view); field.LoadFromRow(row); break; case MetaFieldType.Date: field = new DateField(view); field.LoadFromRow(row); break; case MetaFieldType.Time: field = new TimeField(view); field.LoadFromRow(row); break; case MetaFieldType.DateTime: field = new DateTimeField(view); field.LoadFromRow(row); break; case MetaFieldType.Checkbox: field = new CheckBoxField(view); field.LoadFromRow(row); break; case MetaFieldType.YesNo: field = new YesNoField(view); field.LoadFromRow(row); break; case MetaFieldType.Option: field = new OptionField(view); field.LoadFromRow(row); break; case MetaFieldType.CommandButton: field = new CommandButtonField(view); field.LoadFromRow(row); break; case MetaFieldType.Image: field = new ImageField(view); field.LoadFromRow(row); break; case MetaFieldType.Mirror: field = new MirrorField(view); field.LoadFromRow(row); break; case MetaFieldType.Grid: field = new GridField(view); field.LoadFromRow(row); break; case MetaFieldType.Group: field = new GroupField(view); field.LoadFromRow(row); break; case MetaFieldType.GUID: field = new GUIDField(view); field.LoadFromRow(row); break; case MetaFieldType.LegalValues: field = new DDLFieldOfLegalValues(view); field.LoadFromRow(row); break; case MetaFieldType.Codes: field = new DDLFieldOfCodes(view); ((DDLFieldOfCodes)field).LoadFromRow(row); //zack break; case MetaFieldType.List: field = new DDListField(view); ((DDListField)field).LoadFromRow(row); break; case MetaFieldType.CommentLegal: field = new DDLFieldOfCommentLegal(view); field.LoadFromRow(row); break; case MetaFieldType.Relate: field = new RelatedViewField(view); field.LoadFromRow(row); break; case MetaFieldType.RecStatus: field = new RecStatusField(view); field.LoadFromRow(row); break; case MetaFieldType.UniqueKey: field = new UniqueKeyField(view); field.LoadFromRow(row); break; case MetaFieldType.ForeignKey: field = new ForeignKeyField(view); field.LoadFromRow(row); break; case MetaFieldType.GlobalRecordId: field = new GlobalRecordIdField(view); field.LoadFromRow(row); break; default: throw new ApplicationException("Invalid Field Type"); } // Note: This check ideally shouldn't be necessary, but Epi 3.5.1 and previous versions actually do allow duplicate field names for group fields. if (fields.Contains(field)) { Logger.Log(DateTime.Now + ": " + string.Format("The {0} field with name \"{1}\" already exists in {2}. This field has not been imported.", field.GetType().ToString(), field.Name, view.Name)); } else { fields.Add(field); } } } catch (Exception ex) { } return (fields); }
/// <summary> /// Insert a GroupField record into the metaFields table. /// </summary> /// <param name="field">Group Filed</param> public int CreateField(GroupField field) { try { #region InputValidation if (field == null) { throw new ArgumentNullException("GroupField"); } #endregion Query insertQuery = db.CreateQuery("insert into metaFields([ViewId], [UniqueId], [ControlFontFamily], [ControlFontStyle], [ControlFontSize], [ControlHeightPercentage], [ControlLeftPositionPercentage], [ControlTopPositionPercentage], [ControlWidthPercentage], [FieldTypeId], [HasTabStop], [Name], [PageId], [PromptText], [List], [BackgroundColor], [TabIndex]) " + "values (@ViewId, @UniqueId, @ControlFontFamily, @ControlFontStyle, @ControlFontSize, @ControlHeightPercentage, @ControlLeftPositionPercentage, @ControlTopPositionPercentage, @ControlWidthPercentage, @FieldTypeId, @HasTabStop, @Name, @PageId, @PromptText, @List, @BackgroundColor, @TabIndex)"); insertQuery.Parameters.Add(new QueryParameter("@ViewId", DbType.Int32, field.GetView().Id)); insertQuery.Parameters.Add(new QueryParameter("@UniqueId", DbType.Guid, field.UniqueId)); insertQuery.Parameters.Add(new QueryParameter("@ControlFontFamily", DbType.String, field.ControlFont.Name)); insertQuery.Parameters.Add(new QueryParameter("@ControlFontStyle", DbType.String, field.ControlFont.Style.ToString())); insertQuery.Parameters.Add(new QueryParameter("@ControlFontSize", DbType.Double, field.ControlFont.Size)); insertQuery.Parameters.Add(new QueryParameter("@ControlHeightPercentage", DbType.Double, field.ControlHeightPercentage)); insertQuery.Parameters.Add(new QueryParameter("@ControlLeftPositionPercentage", DbType.Double, field.ControlLeftPositionPercentage)); insertQuery.Parameters.Add(new QueryParameter("@ControlTopPositionPercentage", DbType.Double, field.ControlTopPositionPercentage)); insertQuery.Parameters.Add(new QueryParameter("@ControlWidthPercentage", DbType.Double, field.ControlWidthPercentage)); insertQuery.Parameters.Add(new QueryParameter("@FieldTypeId", DbType.Int32, (int)field.FieldType)); insertQuery.Parameters.Add(new QueryParameter("@HasTabStop", DbType.Boolean, field.HasTabStop)); insertQuery.Parameters.Add(new QueryParameter("@Name", DbType.String, field.Name)); insertQuery.Parameters.Add(new QueryParameter("@PageId", DbType.Int32, field.Page.Id)); insertQuery.Parameters.Add(new QueryParameter("@PromptText", DbType.String, field.PromptText)); insertQuery.Parameters.Add(new QueryParameter("@List", DbType.String, field.ChildFieldNames)); insertQuery.Parameters.Add(new QueryParameter("@BackgroundColor", DbType.Int32, field.BackgroundColor.ToArgb())); insertQuery.Parameters.Add(new QueryParameter("@TabIndex", DbType.Int32, field.TabIndex)); db.ExecuteNonQuery(insertQuery); return GetMaxFieldId(field.GetView().Id); } catch (Exception ex) { throw new GeneralException("Could not create field in the database", ex); } }
/// <summary> /// Update Group field. /// </summary> /// <param name="field">Group field to update.</param> public void UpdateField(GroupField field) { }
/// <summary> /// Insert a GroupField record into the metaFields table. /// </summary> /// <param name="field">Group Filed</param> public int CreateField(GroupField field) { try { return field.Id; } finally { } }
/// <summary> /// Constructor for the class /// </summary> public GroupDefinition(GroupField groupField) { InitializeComponent(); this.groupField = groupField; LoadFormData(); }