コード例 #1
0
ファイル: Template.cs プロジェクト: NALSS/epiinfo-82474
 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);
 }
コード例 #2
0
ファイル: Template.cs プロジェクト: NALSS/epiinfo-82474
        public void CreateFromTemplate(TemplateNode node, int dropOnNodePosition)
        {
            string templatePath = GetTemplatePath(node);
            _fieldDrop = true;

            _dropOnNodePosition = dropOnNodePosition;

            _templateLevel = GetTemplateLevel(node);
            CreateFromTemplate(templatePath);
        }
コード例 #3
0
ファイル: Template.cs プロジェクト: NALSS/epiinfo-82474
        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);
            }
        }
コード例 #4
0
ファイル: Template.cs プロジェクト: NALSS/epiinfo-82474
        public void CreateFromTemplate(TemplateNode node, Point location)
        {
            string templatePath = GetTemplatePath(node);
            _fieldDrop = true;

            _fieldDropLocaton = location;

            _templateLevel = GetTemplateLevel(node);
            CreateFromTemplate(templatePath);
        }