示例#1
0
 /// <summary>
 /// Clone the given model system with a new name
 /// </summary>
 /// <param name="root"></param>
 /// <param name="name"></param>
 /// <param name="error"></param>
 /// <returns></returns>
 public bool CloneModelSystemAs(IModelSystemStructure root, string name, ref string error)
 {
     lock (_EditingSessionsLock)
     {
         var index = Project.IndexOf(root);
         if (index < 0)
         {
             error = "The model system was not found within the project!";
             return(false);
         }
         // If it is currently being edited, save that version
         var editingSession = _EditingSessions.FirstOrDefault(s => s.Session != null && s.Session.IsEditing(root));
         if (editingSession.Session != null)
         {
             return(editingSession.Session.SaveAsModelSystem(name, ref error));
         }
         var ms = _Runtime.ModelSystemController.LoadOrCreate(name);
         ms.Name                 = name;
         ms.Description          = Project.ModelSystemDescriptions[index];
         ms.ModelSystemStructure = Project.CloneModelSystemStructure(out List <ILinkedParameter> lp, out List <IRegionDisplay> regionDisplays, index);
         ms.LinkedParameters     = lp;
         ms.RegionDisplays       = regionDisplays;
         return(ms.Save(ref error));
     }
 }
示例#2
0
 public ModelSystemModel(ModelSystemEditingSession session, Project project, int modelSystemIndex)
 {
     _Project          = project;
     _ModelSystemIndex = modelSystemIndex;
     Name             = project.ModelSystemStructure[modelSystemIndex].Name;
     _Description     = project.ModelSystemDescriptions[modelSystemIndex];
     Root             = new ModelSystemStructureModel(session, (project.CloneModelSystemStructure(out List <ILinkedParameter> editingLinkedParameters, modelSystemIndex) as ModelSystemStructure));
     _Description     = _Project.ModelSystemDescriptions[modelSystemIndex];
     LinkedParameters = new LinkedParametersModel(session, this, editingLinkedParameters);
 }
示例#3
0
 public ModelSystemModel(ModelSystemEditingSession session, Project project, int modelSystemIndex)
 {
     Project = project;
     ModelSystemIndex = modelSystemIndex;
     Name = project.ModelSystemStructure[modelSystemIndex].Name;
     _Description = project.ModelSystemDescriptions[modelSystemIndex];
     List<ILinkedParameter> editingLinkedParameters;
     Root = new ModelSystemStructureModel(session, (project.CloneModelSystemStructure(out editingLinkedParameters, modelSystemIndex) as ModelSystemStructure));
     _Description = Project.ModelSystemDescriptions[modelSystemIndex];
     LinkedParameters = new LinkedParametersModel(session, this, editingLinkedParameters);
 }
示例#4
0
文件: Project.cs 项目: dianatle/XTMF
 /// <summary>
 /// This constructo
 /// </summary>
 private Project(Project toClone)
 {
     IsLoaded = true;
     Name = toClone.Name;
     var numberOfModelSystems = toClone.ModelSystemStructure.Count;
     ModelSystemStructure = new List<IModelSystemStructure>(numberOfModelSystems);
     LinkedParameters = new List<List<ILinkedParameter>>(numberOfModelSystems);
     DirectoryLocation = toClone.DirectoryLocation;
     Configuration = toClone.Configuration;
     ClonedFrom = toClone;
     for (int i = 0; i < numberOfModelSystems; i++)
     {
         List<ILinkedParameter> lp;
         var mss = toClone.CloneModelSystemStructure(out lp, i);
         ModelSystemStructure.Add(mss);
         LinkedParameters.Add(lp);
     }
     ModelSystemDescriptions = toClone.ModelSystemDescriptions.ToList();
 }