/// <summary>
 /// Constructor for NewParameterWindow.
 /// </summary>
 /// <param name="owner">owner object.</param>
 internal InputParameterNameDialog(SimulationConfigurationDialog owner)
 {
     m_owner = owner;
     InitializeComponent();
 }
Exemple #2
0
        /// <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);
                }
            }
        }