public UnsupportedControlTemplate(ICellMetadata metadata, string validationGroup, IDictionary <string, CellBinding> bindings, bool enabled) : base(metadata, validationGroup, bindings, enabled) { _colSpan = metadata.ColumnSpan; _rowSpan = metadata.RowSpan; }
protected CellTemplate(ICellMetadata metadata, string validationGroup, IDictionary <string, CellBinding> bindings) { metadata.ThrowOnNull("metadata"); bindings.ThrowOnNull("bindings"); Bindings = bindings; Metadata = metadata; ValidationGroup = validationGroup; }
/// <summary> /// Method to create cell template /// </summary> /// <param name="cellMetadata"></param> /// <param name="entityMetadata"></param> /// <returns></returns> /// <exception cref="ApplicationException"></exception> public virtual ICellTemplate CreateCellTemplate(ICellMetadata cellMetadata, Microsoft.Xrm.Sdk.Metadata.EntityMetadata entityMetadata) { var fields = Fields.Where(f => f.AttributeName == cellMetadata.DataFieldName).ToList(); if (fields.Count() > 1) { throw new ApplicationException("Only one CrmEntityFormViewField with an AttributeName {0} can be specified.".FormatWith(cellMetadata.DataFieldName)); } var field = fields.FirstOrDefault(); var formXmlCellMetadata = cellMetadata as FormXmlCellMetadata; if (formXmlCellMetadata != null) { formXmlCellMetadata.FormView = FormView; if (formXmlCellMetadata.FormView != null && formXmlCellMetadata.FormView.Mode.HasValue) { if (formXmlCellMetadata.FormView.Mode.Value == FormViewMode.Insert && !formXmlCellMetadata.IsValidForCreate) { formXmlCellMetadata.ReadOnly = true; } if (formXmlCellMetadata.FormView.Mode.Value == FormViewMode.Edit && !formXmlCellMetadata.IsValidForUpdate) { formXmlCellMetadata.ReadOnly = true; } } if ((formXmlCellMetadata.IsNotesControl || formXmlCellMetadata.IsActivityTimelineControl) && (FormView.Mode == FormViewMode.Edit || FormView.Mode == FormViewMode.ReadOnly)) { return(new NotesControlTemplate(formXmlCellMetadata, ContextName, CellBindings, formXmlCellMetadata.IsActivityTimelineControl)); } if (formXmlCellMetadata.IsWebResource) { if (formXmlCellMetadata.WebResourceIsHtml) { return(new HtmlWebResourceControlTemplate(formXmlCellMetadata, ContextName, RenderWebResourcesInline)); } if (formXmlCellMetadata.WebResourceIsImage) { return(new ImageWebResourceControlTemplate(formXmlCellMetadata)); } } if (formXmlCellMetadata.IsSharePointDocuments) { return(new SharePointDocumentsControlTemplate(formXmlCellMetadata, ContextName, CellBindings)); } if (formXmlCellMetadata.IsSubgrid && (FormView.Mode == FormViewMode.Edit || FormView.Mode == FormViewMode.ReadOnly)) { return(new SubgridControlTemplate(formXmlCellMetadata, ContextName, CellBindings)); } if (formXmlCellMetadata.IsQuickForm) { return(new CrmQuickFormControlTemplate(formXmlCellMetadata, ContextName, CellBindings)); } if (formXmlCellMetadata.HasAttributeType("lookup")) { if (formXmlCellMetadata.LookupTargets.Length >= 1 && formXmlCellMetadata.LookupTargets[0] == "subject") { return(new SubjectControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } if ((field != null && field.Type == FieldType.Dropdown) || formXmlCellMetadata.ControlStyle == WebForms.WebFormMetadata.ControlStyle.LookupDropdown) { return(new LookupControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } return(new ModalLookupControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } if (formXmlCellMetadata.HasAttributeType("customer")) { if ((field != null && field.Type == FieldType.Dropdown) || formXmlCellMetadata.ControlStyle == WebForms.WebFormMetadata.ControlStyle.LookupDropdown) { return(new CustomerControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } return(new ModalLookupControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } if (formXmlCellMetadata.IsFullNameControl) { return(new FullNameControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings, entityMetadata, FormView.Mode)); } if (formXmlCellMetadata.IsAddressCompositeControl) { return(new AddressCompositeControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings, entityMetadata, FormView.Mode)); } if (ShowOwnerFields.GetValueOrDefault(false) && formXmlCellMetadata.HasAttributeType("owner")) { if ((field != null && field.Type == FieldType.Dropdown) || formXmlCellMetadata.ControlStyle == WebForms.WebFormMetadata.ControlStyle.LookupDropdown) { return(new LookupControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } return(new ModalLookupControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("string")) { switch (cellMetadata.Format) { case "Email": return(new EmailStringControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); case "Url": return(new UrlStringControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); case "TickerSymbol": return(new TickerSymbolStringControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); case "TextArea": return(new MemoControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); default: return(new StringControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } } if (cellMetadata.HasAttributeType("picklist")) { // determine if the picklist should be a multi-select picklist var picklistvaluesfield = entityMetadata.Attributes.FirstOrDefault(a => a.LogicalName == string.Format("{0}selectedvalues", cellMetadata.DataFieldName)); if (picklistvaluesfield != null) { return(new MultiSelectPicklistControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } return(new PicklistControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("boolean")) { return(formXmlCellMetadata.ControlStyle == WebForms.WebFormMetadata.ControlStyle.MultipleChoice ? new MultipleChoiceControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings) : new BooleanControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("memo")) { return(new MemoControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("decimal")) { return(new DecimalControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("datetime")) { return(new DateTimeControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("double")) { return(new DoubleControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("integer")) { switch (cellMetadata.Format) { case "Duration": return(new DurationControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); case "Language": return(new LanguageControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); case "TimeZone": return(new TimeZoneControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); default: if (formXmlCellMetadata.ControlStyle == WebForms.WebFormMetadata.ControlStyle.RankOrderAllowTies || formXmlCellMetadata.ControlStyle == WebForms.WebFormMetadata.ControlStyle.RankOrderNoTies) { return(new RankOrderControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } if (formXmlCellMetadata.ControlStyle == WebForms.WebFormMetadata.ControlStyle.ConstantSum) { return(new ConstantSumControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } if (formXmlCellMetadata.ControlStyle == WebForms.WebFormMetadata.ControlStyle.StackRank) { return(new StackRankControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } return(new IntegerControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } } if (cellMetadata.HasAttributeType("state")) { return(new StateControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("status")) { return(new StatusReasonControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("money")) { return(new MoneyControlTemplate(field, formXmlCellMetadata, ValidationGroup, CellBindings, ContextName)); } } else { if (cellMetadata.HasAttributeType("string")) { return(string.Equals("email", cellMetadata.Format, StringComparison.InvariantCultureIgnoreCase) ? new Microsoft.Xrm.Portal.Web.UI.CrmEntityFormView.EmailStringControlTemplate(cellMetadata, ValidationGroup, CellBindings) : new Microsoft.Xrm.Portal.Web.UI.CrmEntityFormView.StringControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("picklist")) { return(new Microsoft.Xrm.Portal.Web.UI.CrmEntityFormView.PicklistControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("boolean")) { return(new Microsoft.Xrm.Portal.Web.UI.CrmEntityFormView.BooleanControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("memo")) { return(new Microsoft.Xrm.Portal.Web.UI.CrmEntityFormView.MemoControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("datetime")) { return(new Microsoft.Xrm.Portal.Web.UI.CrmEntityFormView.DateTimeControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("integer")) { return(new Microsoft.Xrm.Portal.Web.UI.CrmEntityFormView.IntegerControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("money")) { return(new Microsoft.Xrm.Portal.Web.UI.CrmEntityFormView.MoneyControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } if (cellMetadata.HasAttributeType("datetime")) { return(new Microsoft.Xrm.Portal.Web.UI.CrmEntityFormView.DateTimeControlTemplate(cellMetadata, ValidationGroup, CellBindings)); } } if (!string.IsNullOrEmpty(cellMetadata.AttributeType) && EnableUnsupportedFields) { return(new UnsupportedControlTemplate(cellMetadata, ValidationGroup, CellBindings, EnableUnsupportedFields)); } return(new EmptyCellTemplate(cellMetadata)); }
public DateTimeControlTemplate(ICellMetadata metadata, string validationGroup, IDictionary <string, CellBinding> bindings) : base(metadata, validationGroup, bindings) { }
public UnsupportedControlTemplate(ICellMetadata metadata, string validationGroup, IDictionary <string, CellBinding> bindings, bool enabled) : base(metadata, validationGroup, bindings) { _enabled = enabled; }
/// <summary> /// Class initialization /// </summary> /// <param name="metadata"></param> /// <param name="validationGroup"></param> /// <param name="bindings"></param> public IgnoreCellTemplate(ICellMetadata metadata, string validationGroup, IDictionary <string, CellBinding> bindings) : base(metadata, validationGroup, bindings) { }
public EmptyCellTemplate(ICellMetadata cellMetadata) { ColumnSpan = cellMetadata.ColumnSpan; RowSpan = cellMetadata.RowSpan; Enabled = true; }