public void CreateProjectTemplate(string projectName, string templateDescription, string fileNameWithSubfolders) { _templateLevel = Enums.TemplateLevel.Project; System.Xml.XmlWriter writer = CreateWriter(fileNameWithSubfolders, "Projects"); CreateProjectTemplate(projectName, templateDescription, writer); AddThenCloseWriter(writer); }
public void CreateFromTemplate(TemplateNode node, int dropOnNodePosition) { string templatePath = GetTemplatePath(node); _fieldDrop = true; _dropOnNodePosition = dropOnNodePosition; _templateLevel = GetTemplateLevel(node); CreateFromTemplate(templatePath); }
public void CreateFromTemplate(string templatePath) { ArrayList codeTableAssociations = new ArrayList(); Page firstPageCreated = null; if (templatePath == null) return; _templateLevel = GetTemplateLevel(templatePath); mediator.Canvas.HideUpdateStart("Loading fields from template..."); bool isnewview = false; System.Text.StringBuilder output = new System.Text.StringBuilder(); DataTable metadataSchema; _sourceTableRenames.Clear(); pageIdViewNamePairs.Clear(); viewIdViewNamePairs.Clear(); using (XmlReader reader = XmlReader.Create(templatePath)) { while (reader.ReadToFollowing("View")) { do { int viewId; if (reader["ViewId"] != null && int.TryParse(reader["ViewId"].ToString(), out viewId)) { viewIdViewNamePairs.Add(int.Parse(reader["ViewId"]), reader["Name"]); } } while (reader.ReadToNextSibling("View")); break; } while (reader.ReadToFollowing("SourceTable")) { do { CreateSourceTable(reader); } while (reader.ReadToNextSibling("SourceTable")); break; } CreateBackgroundsTable(reader); } if (_templateLevel == Enums.TemplateLevel.Project || _templateLevel == Enums.TemplateLevel.Form) { bool cancel; CreateViews(templatePath, out cancel, out isnewview); isnewview = true; if (cancel == true) return; } else { ConcatCheckCode(templatePath); } using (XmlReader reader = XmlReader.Create(templatePath)) { while (reader.ReadToFollowing("Page")) { Page page = null; XmlReader fieldSubtree = reader.ReadSubtree(); if (reader.HasAttributes) { mediator.Canvas.UpdateHidePanel("Creating Page..."); View newView; page = CreatePage(reader, isnewview, out newView); if (newView == null) { mediator.Canvas.HideUpdateEnd(); return; } int pagePosition = _dropOnNodePosition == -1 ? newView.Pages.Count : _dropOnNodePosition; page = newView.CreatePage(page.Name, pagePosition); if (_templateLevel == Enums.TemplateLevel.Form) { mediator.ProjectExplorer.AddPageNode(page, newView, true); } else { mediator.ProjectExplorer.AddPageNode(page, newView); } } else { page = mediator.ProjectExplorer.currentPage; } if (firstPageCreated == null) { firstPageCreated = page; } metadataSchema = metadata.GetMetaFieldsSchema(mediator.ProjectExplorer.currentPage.GetView().Id); int fieldIdFromTemplate = int.MinValue; while (fieldSubtree.ReadToFollowing("Field")) { do { Field field = CreateFields(fieldSubtree, metadataSchema, page, out fieldIdFromTemplate); if (field == null) continue; if (field.Id != fieldIdFromTemplate) { _templateFieldId_dbFieldId.Add(fieldIdFromTemplate, field.Id); } if (field.FieldType == MetaFieldType.Codes) { _codeFields.Add(field as DDLFieldOfCodes); KeyValuePair kvp = new KeyValuePair(field.Name, ((Epi.Fields.DDLFieldOfCodes)(field)).AssociatedFieldInformation); codeTableAssociations.Add(kvp); } if (field.FieldType == MetaFieldType.Mirror) { _mirrorFields.Add(field as MirrorField); } } while (fieldSubtree.ReadToNextSibling("Field")); break; } } } CreateGridTables(templatePath); UpdateCodeTableAssociations(templatePath, codeTableAssociations); UpdateMirrorFieldAssociations(templatePath); mediator.SetZeeOrderOfGroups(); ArrayList controlArrayList = new ArrayList(mediator.SelectedFieldControls.Keys); mediator.SelectedFieldControls.Clear(); mediator.Canvas.HideUpdateEnd(); if (firstPageCreated != null) { mediator.ProjectExplorer.currentPage = firstPageCreated; mediator.ProjectExplorer.SelectPage( mediator.ProjectExplorer.currentPage); mediator.LoadPage(mediator.ProjectExplorer.currentPage); } }
public void CreateFromTemplate(TemplateNode node, Point location) { string templatePath = GetTemplatePath(node); _fieldDrop = true; _fieldDropLocaton = location; _templateLevel = GetTemplateLevel(node); CreateFromTemplate(templatePath); }