public PortableRuntimeOptionsPanelWidget(PortableDotNetProject project, IEnumerable<ItemConfiguration> configurations) { this.target = project.TargetFramework; this.project = project; this.Build (); // Aggregate all SupportedFrameworks from .NETPortable TargetFrameworks targetFrameworks = GetPortableTargetFrameworks ().ToList (); targetFrameworks.Sort (CompareFrameworks); supportedFrameworks = new SortedDictionary<string, List<SupportedFramework>> (); if (!targetFrameworks.Contains (project.TargetFramework)) { missingFramework = project.TargetFramework; targetFrameworks.Insert (0, project.TargetFramework); } foreach (var fx in targetFrameworks) { foreach (var sfx in fx.SupportedFrameworks) { List<SupportedFramework> list; if (!supportedFrameworks.TryGetValue (sfx.DisplayName, out list)) { list = new List<SupportedFramework> (); supportedFrameworks.Add (sfx.DisplayName, list); } list.Add (sfx); } } // Now create a list of config options from our supported frameworks options = new List<OptionCombo> (); foreach (var fx in supportedFrameworks) { var combo = new OptionCombo (fx.Key); var dict = new SortedDictionary<string, OptionComboItem> (); foreach (var sfx in fx.Value) { var label = GetDisplayName (sfx); OptionComboItem item; if (!dict.TryGetValue (label, out item)) { item = new OptionComboItem (label, sfx); dict.Add (label, item); } item.Targets.Add (sfx.TargetFramework); } combo.Items = dict.Values.ToList (); options.Add (combo); } CreateUI (); CurrentProfileChanged (project.TargetFramework); }
public PortableRuntimeOptionsPanelWidget (PortableDotNetProject project, IEnumerable<ItemConfiguration> configurations) { this.project = project; this.Build (); SortedDictionary<string, List<Framework>> options = new SortedDictionary<string, List<Framework>> (); foreach (var fx in Runtime.SystemAssemblyService.GetTargetFrameworks ()) { if (fx.Hidden || fx.Id.Identifier != ".NETPortable" || !project.TargetRuntime.IsInstalled (fx)) continue; foreach (var sfx in fx.SupportedFrameworks) { List<Framework> list; if (!options.TryGetValue (sfx.DisplayName, out list)) { list = new List<Framework> (); options.Add (sfx.DisplayName, list); } list.Add (sfx); } } foreach (var opt in options) { var alignment = new Alignment (0.0f, 0.5f, 1.0f, 1.0f) { LeftPadding = 18 }; List<Framework> versions = opt.Value; CheckButton check; // FIXME: VS11 introduces comboboxes for some of these... which I suspect will need to sort based on version //versions.Sort (CompareFrameworksByVersion); check = new CheckButton (versions[0].DisplayName + " " + versions[0].MinimumVersionDisplayName); check.Sensitive = false; // Desensitize until we support changing these values... foreach (var ver in versions) { if (ver.TargetFramework == project.TargetFramework) { check.Active = true; break; } } check.Show (); alignment.Add (check); alignment.Show (); vbox1.PackStart (alignment, false, false, 0); } }
public PortableRuntimeOptionsPanelWidget (PortableDotNetProject project, IEnumerable<ItemConfiguration> configurations) { this.target = project.TargetFramework; this.project = project; this.Build (); // Aggregate all SupportedFrameworks from .NETPortable TargetFrameworks SortedDictionary<string, List<SupportedFramework>> frameworks = new SortedDictionary<string, List<SupportedFramework>> (); foreach (var fx in GetPortableTargetFrameworks ()) { foreach (var sfx in fx.SupportedFrameworks) { List<SupportedFramework> list; if (!frameworks.TryGetValue (sfx.DisplayName, out list)) { list = new List<SupportedFramework> (); frameworks.Add (sfx.DisplayName, list); } list.Add (sfx); } } // Now create a list of config options from our supported frameworks var options = new List<SortedDictionary<string, List<TargetFramework>>> (); foreach (var fx in frameworks) { var dict = new SortedDictionary<string, List<TargetFramework>> (); List<SupportedFramework> versions = fx.Value; List<TargetFramework> targets; string label; foreach (var sfx in versions) { if (!string.IsNullOrEmpty (sfx.MinimumVersionDisplayName)) label = sfx.DisplayName + " " + sfx.MinimumVersionDisplayName; else label = sfx.DisplayName; if (!dict.TryGetValue (label, out targets)) { targets = new List<TargetFramework> (); dict.Add (label, targets); } targets.Add (sfx.TargetFramework); } options.Add (dict); } // Add multi-option combo boxes first foreach (var opt in options) { if (opt.Count > 1) AddMultiOptionCombo (opt); } // Now add the single-option check boxes foreach (var opt in options) { if (opt.Count == 1) { var kvp = opt.FirstOrDefault (); AddSingleOptionCheckbox (kvp.Key, kvp.Value); } } }
public PortableFrameworkSubset (PortableDotNetProject project) { this.Project = project; }