public SolutionRunConfigurationOptionsDialogSection(SolutionRunConfigInfo configInfo) : base(typeof(SolutionRunConfigurationPanel))
 {
     RunConfiguration = configInfo.EditedConfig;
     Label            = configInfo.EditedConfig.Name;
     HeaderLabel      = GettextCatalog.GetString("Run Configuration: {0}", configInfo.EditedConfig.Name);
     Icon             = "md-prefs-play";
 }
		public override void Initialize (OptionsDialog dialog, object dataObject)
		{
			base.Initialize (dialog, dataObject);

			config = (SolutionRunConfigInfo)dataObject;

			store = new ListStore (selectedField, projectNameField, projectField, runConfigField, projectRunConfigsField);
			listView = new ListView (store);

			var col1 = new ListViewColumn (GettextCatalog.GetString ("Solution Item"));
			var cb = new CheckBoxCellView (selectedField);
			cb.Toggled += SelectionChanged;
			cb.Editable = true;
			col1.Views.Add (cb);
			col1.Views.Add (new TextCellView (projectNameField));
			listView.Columns.Add (col1);

			var configSelView = new ComboBoxCellView (runConfigField);
			configSelView.Editable = true;
			configSelView.ItemsField = projectRunConfigsField;
			var col2 = new ListViewColumn (GettextCatalog.GetString ("Run Configuration"), configSelView);
			listView.Columns.Add (col2);

			foreach (var it in config.Solution.GetAllSolutionItems ().Where (si => si.SupportsExecute ()).OrderBy (si => si.Name)) {
				var row = store.AddRow ();
				var si = config.EditedConfig.Items.FirstOrDefault (i => i.SolutionItem == it);
				var sc = si?.RunConfiguration?.Name ?? it.GetDefaultRunConfiguration ()?.Name;
				var configs = new ItemCollection ();
				foreach (var pc in it.GetRunConfigurations ())
					configs.Add (pc.Name);
				store.SetValues (row, selectedField, si != null, projectNameField, it.Name, projectField, it, runConfigField, sc, projectRunConfigsField, configs);
			}
		}
        void RemovePanel(SolutionRunConfigInfo rc)
        {
            var section = sections [rc];

            sections.Remove(rc);
            ParentDialog.RemoveSection(section);
        }
		void AddPanel (SolutionRunConfigInfo configInfo)
		{
			configInfo.Solution = Solution;
			var sec = new SolutionRunConfigurationOptionsDialogSection (configInfo);
			sec.Fill = true;
			sections [configInfo] = sec;
			ParentDialog.AddChildSection (this, sec, configInfo);
		}
        void AddPanel(SolutionRunConfigInfo configInfo)
        {
            configInfo.Solution = Solution;
            var sec = new SolutionRunConfigurationOptionsDialogSection(configInfo);

            sec.Fill = true;
            sections [configInfo] = sec;
            ParentDialog.AddChildSection(this, sec, configInfo);
        }
        internal void AddConfiguration(MultiItemSolutionRunConfiguration editedConfig)
        {
            var c = new SolutionRunConfigInfo {
                EditedConfig = editedConfig
            };

            configs.Add(c);
            AddPanel(c);
        }
        internal void ReplaceConfiguration(MultiItemSolutionRunConfiguration oldConf, MultiItemSolutionRunConfiguration newConf)
        {
            var i    = configs.FindIndex(ci => ci.EditedConfig == oldConf);
            var oldc = configs [i];
            var newc = new SolutionRunConfigInfo {
                EditedConfig = newConf
            };

            configs [i] = newc;
            RemovePanel(oldc);
            AddPanel(newc);
        }
        public override void Initialize(OptionsDialog dialog, object dataObject)
        {
            base.Initialize(dialog, dataObject);

            Solution = (Solution)dataObject;

            foreach (var rc in Solution.MultiStartupRunConfigurations)
            {
                var c = new SolutionRunConfigInfo {
                    ProjectConfig = rc, EditedConfig = new MultiItemSolutionRunConfiguration(rc)
                };
                configs.Add(c);
                AddPanel(c);
            }
            ParentDialog.ExpandChildren(this);
        }
        public override void Initialize(OptionsDialog dialog, object dataObject)
        {
            base.Initialize(dialog, dataObject);

            config = (SolutionRunConfigInfo)dataObject;

            store    = new ListStore(selectedField, projectNameField, projectField, runConfigField, projectRunConfigsField);
            listView = new ListView(store);

            var col1 = new ListViewColumn(GettextCatalog.GetString("Solution Item"));
            var cb   = new CheckBoxCellView(selectedField);

            cb.Toggled += SelectionChanged;
            cb.Editable = true;
            col1.Views.Add(cb);
            col1.Views.Add(new TextCellView(projectNameField));
            listView.Columns.Add(col1);

            var configSelView = new ComboBoxCellView(runConfigField);

            configSelView.Editable   = true;
            configSelView.ItemsField = projectRunConfigsField;
            var col2 = new ListViewColumn(GettextCatalog.GetString("Run Configuration"), configSelView);

            listView.Columns.Add(col2);

            foreach (var it in config.Solution.GetAllSolutionItems().Where(si => si.SupportsExecute()).OrderBy(si => si.Name))
            {
                var row     = store.AddRow();
                var si      = config.EditedConfig.Items.FirstOrDefault(i => i.SolutionItem == it);
                var sc      = si?.RunConfiguration?.Name ?? it.GetDefaultRunConfiguration()?.Name;
                var configs = new ItemCollection();
                foreach (var pc in it.GetRunConfigurations())
                {
                    configs.Add(pc.Name);
                }
                store.SetValues(row, selectedField, si != null, projectNameField, it.Name, projectField, it, runConfigField, sc, projectRunConfigsField, configs);
            }
        }
		void RemovePanel (SolutionRunConfigInfo rc)
		{
			var section = sections [rc];
			sections.Remove (rc);
			ParentDialog.RemoveSection (section);
		}
		public SolutionRunConfigurationOptionsDialogSection (SolutionRunConfigInfo configInfo): base (typeof(SolutionRunConfigurationPanel))
		{
			RunConfiguration = configInfo.EditedConfig;
			Label = configInfo.EditedConfig.Name;
			HeaderLabel = GettextCatalog.GetString ("Run Configuration: " + configInfo.EditedConfig.Name);
			Icon = "md-prefs-play";
		}
		internal void ReplaceConfiguration (MultiItemSolutionRunConfiguration oldConf, MultiItemSolutionRunConfiguration newConf)
		{
			var i = configs.FindIndex (ci => ci.EditedConfig == oldConf);
			var oldc = configs [i];
			var newc = new SolutionRunConfigInfo { EditedConfig = newConf };
			configs [i] = newc;
			RemovePanel (oldc);
			AddPanel (newc);
		}
		internal void AddConfiguration (MultiItemSolutionRunConfiguration editedConfig)
		{
			var c = new SolutionRunConfigInfo { EditedConfig = editedConfig };
			configs.Add (c);
			AddPanel (c);
		}