private DataViewTemplate GetDataViewTemplate(DataViewCategory category) { DataViewTemplate dataViewTemplate = this.dataViewTemplates.Find((Predicate <DataViewTemplate>)(t => t.Category == category)); if (dataViewTemplate == null) { dataViewTemplate = new DataViewTemplate(this.Platform, category); this.dataViewTemplates.Add(dataViewTemplate); } return(dataViewTemplate); }
public DocumentCompositeNode GenerateDataView(IDocumentContext documentContext, IList <DataSchemaNodePath> entries, DataViewCategory category, DocumentCompositeNode containerNode, IDataViewLayoutBuilder layoutBuilder) { try { DataViewTemplate dataViewTemplate = this.GetDataViewTemplate(category); if (containerNode == null) { containerNode = (DocumentCompositeNode)dataViewTemplate.RootNode.Clone(documentContext); } this.layoutBuilder = layoutBuilder != null ? layoutBuilder : (!PlatformTypes.Grid.IsAssignableFrom((ITypeId)containerNode.Type) ? (IDataViewLayoutBuilder) new PanelDataViewLayoutBuilder() : (IDataViewLayoutBuilder) new GridDataViewLayoutBuilder()); DataViewBuilderContext context = new DataViewBuilderContext(containerNode, category); for (int index = 0; index < entries.Count; ++index) { this.ProcessSingleSchemaPath(context, entries[index], dataViewTemplate); } } catch (Exception ex) { } return(containerNode); }
private void ProcessSingleSchemaPath(DataViewBuilderContext context, DataSchemaNodePath schemaPath, DataViewTemplate dataViewTemplate) { DataViewTemplateEntry templateEntryInternal = this.GetDataViewTemplateEntryInternal(schemaPath.Type, dataViewTemplate); if (templateEntryInternal == null) { return; } context.CurrentSchemaPath = schemaPath; context.CurrentLabelNode = (DocumentCompositeNode)null; context.CurrentFieldNode = (DocumentCompositeNode)null; this.CreateLabelElement(context, templateEntryInternal); this.CreateFieldElement(context, templateEntryInternal); this.layoutBuilder.SetElementLayout(context); }
public DataViewTemplateEntry GetDataViewTemplateEntry(IType dataType, DataViewCategory category) { DataViewTemplate dataViewTemplate = this.GetDataViewTemplate(category); return(this.GetDataViewTemplateEntryInternal(dataType, dataViewTemplate)); }
private DataViewTemplateEntry GetDataViewTemplateEntryInternal(IType platformType, DataViewTemplate dataViewTemplate) { if (platformType == null) { return((DataViewTemplateEntry)null); } DataViewTemplateEntry viewTemplateEntry = dataViewTemplate.TemplateEntries.Find((Predicate <DataViewTemplateEntry>)(entry => entry.DataType.IsAssignableFrom((ITypeId)platformType))); if (viewTemplateEntry == null) { if (!DataViewBuilder.ShouldTreatAsStringType(platformType)) { return((DataViewTemplateEntry)null); } platformType = this.Platform.Metadata.ResolveType(PlatformTypes.String); viewTemplateEntry = dataViewTemplate.TemplateEntries.Find((Predicate <DataViewTemplateEntry>)(entry => entry.DataType.IsAssignableFrom((ITypeId)platformType))); } return(viewTemplateEntry); }