示例#1
0
        private void StartNewDialog()
        {
            var dlg = new NewCaseDialog2();

            dlg.Owner = this;
            var result = dlg.ShowDialog();

            if (result == null)
            {
                return;
            }
            if (!result.Value)
            {
                return;
            }
            try
            {
                DemountEnvironment();

                _case = dlg.Model
                        .ProjectDescriptor
                        .CaseInitializer
                        .Initialize(dlg.Model);

                MountEnvironment();
            }
            catch (Exception ex)
            {
                DemountEnvironment();
                //MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#2
0
        public static void Write(VCase vCase)
        {
            var path = Path.Combine(vCase.CaseDir, vCase.Name + FileExtension);

            using (var xml = new XmlTextWriter(path, Encoding.UTF8))
            {
                xml.Formatting = Formatting.Indented;
                xml.WriteStartDocument();
                xml.WriteStartElement("Case");

                xml.WriteStartElement("Name");
                xml.WriteValue(vCase.Name);
                xml.WriteEndElement();

                xml.WriteStartElement("CaseItems");
                foreach (var item in vCase.Items)
                {
                    xml.WriteStartElement("CaseItem");

                    xml.WriteStartElement("Id");
                    xml.WriteValue(item.Id.ToString());
                    xml.WriteEndElement();

                    xml.WriteStartElement("DisplayName");
                    xml.WriteValue(item.DisplayName);
                    xml.WriteEndElement();

                    xml.WriteStartElement("RelativePath");
                    xml.WriteValue(item.RelativePath ?? "");
                    xml.WriteEndElement();

                    var vProject = item as VProject;
                    if (vProject != null)
                    {
                        xml.WriteStartElement("Type");
                        xml.WriteValue(ProjectItem);
                        xml.WriteEndElement();

                        ProjectHandler.Save(vProject, xml);
                    }

                    xml.WriteEndElement();
                }
                xml.WriteEndElement();

                xml.WriteEndElement(); // Case
                xml.WriteEndDocument();
            }
        }
示例#3
0
        //private static void InitAblPisoSolver(VNewCase newProject, VCase vCase)
        //{
        //    var d = new AblPisoSolver();
        //    var pdir = InitProjectDir(newProject, d.Name);
        //    var proj = new VProject
        //    {
        //        DisplayName = d.Name,
        //        ProjectDir = pdir,
        //        ProjectDescriptor = d,
        //    };
        //    proj.Initialize();
        //    vCase.Items.Add(proj);
        //}

        //private static void InitAblGeometryAndMesh(VNewProject newProject, VCase vCase)
        //{
        //    var d = new AblGeometryAndMesh();
        //    var pdir = InitProjectDir(newProject, d.Name);
        //    var proj = new VProject
        //    {
        //        Name = d.Name,
        //        ProjectDir = pdir,
        //        ProjectDescriptor = d,
        //    };
        //    proj.Initialize();
        //    proj.GetState().Save();
        //    vCase.Items.Add(proj);
        //}

        //private static void InitWindPlant(VNewCase newProject, VCase vCase)
        //{
        //    var d = new WindPlantPisoSolver();
        //    var pdir = InitProjectDir(newProject, d.Name);
        //    var proj = new VProject
        //    {
        //        DisplayName = d.Name,
        //        ProjectDir = pdir,
        //        ProjectDescriptor = d,
        //    };
        //    proj.Initialize();
        //    vCase.Items.Add(proj);
        //}

        private static void InitMesoWind(VNewCase newProject, VCase vCase)
        {
            var d    = new MesoWindProjectDescriptor();
            var pdir = InitProjectDir(newProject, d.Name);
            var proj = new VProject
            {
                DisplayName       = d.Name,
                ProjectDir        = pdir,
                ProjectDescriptor = d,
                ProjectModel      = d.CreateProjectModel()
            };

            proj.Initialize();
            vCase.Items.Add(proj);
        }
示例#4
0
        public static void Write(VCase vCase)
        {
            var path = Path.Combine(vCase.CaseDir, vCase.Name + FileExtension);
            using (var xml = new XmlTextWriter(path, Encoding.UTF8))
            {
                xml.Formatting = Formatting.Indented;
                xml.WriteStartDocument();
                xml.WriteStartElement("Case");

                xml.WriteStartElement("Name");
                xml.WriteValue(vCase.Name);
                xml.WriteEndElement();

                xml.WriteStartElement("CaseItems");
                foreach (var item in vCase.Items)
                {
                    xml.WriteStartElement("CaseItem");

                    xml.WriteStartElement("Id");
                    xml.WriteValue(item.Id.ToString());
                    xml.WriteEndElement();

                    xml.WriteStartElement("DisplayName");
                    xml.WriteValue(item.DisplayName);
                    xml.WriteEndElement();

                    xml.WriteStartElement("RelativePath");
                    xml.WriteValue(item.RelativePath ?? "");
                    xml.WriteEndElement();

                    var vProject = item as VProject;
                    if (vProject != null)
                    {
                        xml.WriteStartElement("Type");
                        xml.WriteValue(ProjectItem);
                        xml.WriteEndElement();

                        ProjectHandler.Save(vProject, xml);
                    }

                    xml.WriteEndElement();
                }
                xml.WriteEndElement();

                xml.WriteEndElement(); // Case
                xml.WriteEndDocument();
            }
        }
示例#5
0
        public override VCase Initialize(VNewCase newProject)
        {
            var vCase = new VCase();

            vCase.Name    = newProject.CaseName;
            vCase.CaseDir = InitCaseDir(newProject);

            InitSowfaNormal(newProject, vCase);
            //InitAblPisoSolver(newProject, vCase);
            //InitWindPlant(newProject, vCase);
            InitMesoWind(newProject, vCase);
            InitWindWave(newProject, vCase);

            CaseHandler.Write(vCase);
            return(vCase);
        }
示例#6
0
        public static VCase ReadFrom(string filePath, IProjectConfiguration config)
        {
            var vCase = new VCase();

            using (var stream = new StreamReader(filePath, Encoding.UTF8))
            using (var xml = new XmlTextReader(stream))
            {
                xml.ReadToFollowing("Case");

                if (xml.ReadToFollowing("Name"))
                {
                    vCase.Name = xml.ReadElementContentAsString();
                }

                if (xml.ReadToFollowing("CaseItems"))
                {
                    while (xml.ReadToFollowing("CaseItem"))
                    {
                        VCaseItem item = null;
                        xml.ReadToFollowing("Id");
                        var id = xml.ReadElementContentAsString();

                        xml.ReadToFollowing("DisplayName");
                        var displayName = xml.ReadElementContentAsString();

                        xml.ReadToFollowing("RelativePath");
                        var relativePath = xml.ReadElementContentAsString();

                        xml.ReadToFollowing("Type");
                        var type = xml.ReadElementContentAsString();
                        if (type == ProjectItem)
                        {
                            item = ProjectHandler.ReadFrom(xml, config);
                        }

                        Debug.Assert(item != null);
                        item.Id = new Guid(id);
                        item.DisplayName = displayName;
                        item.RelativePath = relativePath;
                        vCase.Items.Add(item);
                    }
                }
            }
            return vCase;
        }
示例#7
0
        public static VCase ReadFrom(string filePath, IProjectConfiguration config)
        {
            var vCase = new VCase();

            using (var stream = new StreamReader(filePath, Encoding.UTF8))
                using (var xml = new XmlTextReader(stream))
                {
                    xml.ReadToFollowing("Case");

                    if (xml.ReadToFollowing("Name"))
                    {
                        vCase.Name = xml.ReadElementContentAsString();
                    }

                    if (xml.ReadToFollowing("CaseItems"))
                    {
                        while (xml.ReadToFollowing("CaseItem"))
                        {
                            VCaseItem item = null;
                            xml.ReadToFollowing("Id");
                            var id = xml.ReadElementContentAsString();

                            xml.ReadToFollowing("DisplayName");
                            var displayName = xml.ReadElementContentAsString();

                            xml.ReadToFollowing("RelativePath");
                            var relativePath = xml.ReadElementContentAsString();

                            xml.ReadToFollowing("Type");
                            var type = xml.ReadElementContentAsString();
                            if (type == ProjectItem)
                            {
                                item = ProjectHandler.ReadFrom(xml, config);
                            }

                            Debug.Assert(item != null);
                            item.Id           = new Guid(id);
                            item.DisplayName  = displayName;
                            item.RelativePath = relativePath;
                            vCase.Items.Add(item);
                        }
                    }
                }
            return(vCase);
        }
示例#8
0
        private void DemountEnvironment()
        {
            caseExplorerTree.Reset();

            foreach (var documentPanel in _openDocuments.Values)
            {
                dockLayoutManager1.DockController.RemoveItem(documentPanel);
            }
            _openDocuments.Clear();
            _panelInfos.Clear();

            bbFileClose.IsEnabled     = false;
            bbFileSave.IsEnabled      = false;
            bbFileSaveAll.IsEnabled   = false;
            bbToolsSettings.IsEnabled = false;

            _case = null;
        }
示例#9
0
 public void Reset()
 {
     _case = null;
     _items.Clear();
 }
示例#10
0
 public void SetCaseModel(VCase vCase)
 {
     _case = vCase;
 }