/// <summary> /// Constructor for NewParameterWindow. /// </summary> /// <param name="owner">owner object.</param> internal InputParameterNameDialog(SimulationConfigurationDialog owner) { m_owner = owner; InitializeComponent(); }
/// <summary> /// Show the simulation setting dialog with the set ID. /// </summary> /// <param name="viewParamID">the simulation parameter ID.</param> private void ShowSetupSimulationDialog(string viewParamID) { Dictionary<string, SimulationParameterSet> sim = new Dictionary<string, SimulationParameterSet>(); foreach (string paramID in m_dManager.GetSimulationParameterIDs()) { SimulationParameterSet sps = new SimulationParameterSet(paramID); foreach (string modelID in m_dManager.GetModelList()) { PerModelSimulationParameter pmsp = new PerModelSimulationParameter(modelID); foreach (KeyValuePair<string, double> pair in m_dManager.GetInitialCondition(paramID, modelID)) { pmsp.InitialConditions.Add( KeyValuePairConverter<string, double>.Convert(pair)); } sps.PerModelSimulationParameters.Add(pmsp); } sps.LoggerPolicy = (LoggerPolicy)m_dManager.GetLoggerPolicy(paramID).Clone(); sim.Add(sps.Name, sps); } string currentParameterID = m_dManager.CurrentProject.Info.SimulationParam; SimulationConfigurationDialog win = new SimulationConfigurationDialog(this, sim.Values); if (viewParamID != null) win.ChangeParameterID(sim[viewParamID]); using (win) { List<string> delList = new List<string>(); DialogResult r = win.ShowDialog(); if (r != DialogResult.OK) return; foreach (SimulationParameterSet sps in sim.Values) { bool deleted = true; foreach (SimulationParameterSet newSps in win.Result) { if (newSps.Name == sps.Name) { deleted = false; break; } } if (deleted) { delList.Add(sps.Name); // m_dManager.DeleteSimulationParameter(sps.Name); } } try { foreach (SimulationParameterSet sps in win.Result) { if (!sim.ContainsKey(sps.Name)) m_dManager.CreateSimulationParameter(sps.Name); m_dManager.SetLoggerPolicy(sps.Name, sps.LoggerPolicy); List<EcellObject> steppers = new List<EcellObject>(); foreach (PerModelSimulationParameter pmsp in sps.PerModelSimulationParameters) { { Dictionary<string, double> pairs = new Dictionary<string, double>(pmsp.InitialConditions.Count); foreach (MutableKeyValuePair<string, double> pair in pmsp.InitialConditions) pairs.Add(pair.Key, pair.Value); if (sps.Name.Equals(Constants.defaultSimParam)) m_dManager.ImportSimulationParameter(pmsp.ModelID, sps.Name, pairs); else m_dManager.UpdateInitialCondition(sps.Name, pmsp.ModelID, pairs); } } foreach (String key in delList) { m_dManager.DeleteSimulationParameter(key); } m_env.PluginManager.ParameterUpdate( m_env.DataManager.CurrentProjectID, sps.Name); } if (!currentParameterID.Equals(win.CurrentParameterID)) m_env.DataManager.SetSimulationParameter(win.CurrentParameterID); } catch (Exception ex) { Util.ShowErrorDialog(ex.Message); } } }