public void editModelToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (SelectedModel == null)
                MessageBox.Show("Select model to edit.");
            else
            {
                DiscreteChoiceModel m = SelectedModel;

                if (m is TimeSliceDCM)
                {
                    TimeSliceDcmForm f = new TimeSliceDcmForm(m as TimeSliceDCM);
                    if (f.ShowDialog() == DialogResult.OK)
                        f.ResultingModel.Update();
                }
                else if (m is FeatureBasedDCM)
                {
                    FeatureBasedDcmForm f = new FeatureBasedDcmForm(m as FeatureBasedDCM);
                    if (f.ShowDialog() == DialogResult.OK)
                        f.ResultingModel.Update();
                }
                else if (m is KernelDensityDCM)
                {
                    KernelDensityDcmForm f = new KernelDensityDcmForm(m as KernelDensityDCM);
                    if (f.ShowDialog() == DialogResult.OK)
                        f.ResultingModel.Update();
                }

                RefreshModels(m.Id);
            }
        }
        public void addModelToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Type[] modelTypes = Assembly.GetAssembly(typeof(DiscreteChoiceModel)).GetTypes().Where(t => !t.IsAbstract && t.IsSubclassOf(typeof(DiscreteChoiceModel))).ToArray();
            if (modelTypes.Length == 0)
                MessageBox.Show("No model type are available.");
            else if (Area.GetAll().Count == 0)
                MessageBox.Show("No areas available to model. Import one first.");
            else
            {
                DynamicForm modelForm = new DynamicForm("Select model type...", DynamicForm.CloseButtons.OkCancel);
                modelForm.AddDropDown("Model type:", modelTypes, null, "model_type", false);
                if (modelForm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    Type modelType = modelForm.GetValue<Type>("model_type");
                    DiscreteChoiceModel model = null;

                    if (modelType == typeof(KernelDensityDCM))
                    {
                        KernelDensityDcmForm f = new KernelDensityDcmForm();
                        if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                            model = f.ResultingModel;
                    }
                    else if (modelType == typeof(FeatureBasedDCM))
                    {
                        FeatureBasedDcmForm f = new FeatureBasedDcmForm();
                        if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                            model = f.ResultingModel;
                    }
                    else if (modelType == typeof(TimeSliceDCM))
                    {
                        TimeSliceDcmForm f = new TimeSliceDcmForm();
                        if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                            model = f.ResultingModel;
                    }

                    if (model != null)
                        RefreshModels(model.Id);
                }
            }
        }