- Timestamp:
- 03/16/17 07:56:01 (7 years ago)
- Location:
- branches/symbreg-factors-2650
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/symbreg-factors-2650
-
branches/symbreg-factors-2650/HeuristicLab.Data.Views
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Data.Views merged: 14597
- Property svn:mergeinfo changed
-
branches/symbreg-factors-2650/HeuristicLab.Data.Views/3.3
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Data.Views/3.3 merged: 14597
- Property svn:mergeinfo changed
-
branches/symbreg-factors-2650/HeuristicLab.Data.Views/3.3/EnumValueView.cs
r14185 r14751 21 21 22 22 using System; 23 using System.Windows.Forms; 23 24 using HeuristicLab.Core.Views; 24 25 using HeuristicLab.MainForm; … … 44 45 public EnumValueView() { 45 46 InitializeComponent(); 47 this.Name = typeof(T).Name + "EnumView"; 48 46 49 valueComboBox.DataSource = Enum.GetValues(typeof(T)); 47 this.Name = typeof(T).Name + "EnumView"; 50 foreach (T flag in Enum.GetValues(typeof(T))) 51 flagsListView.Items.Add(new ListViewItem(flag.ToString()) { Tag = flag }); 52 columnHeader.Width = -1; 53 54 bool isFlags = Attribute.IsDefined(typeof(T), typeof(FlagsAttribute)); 55 if (isFlags) valueLabel.Text = "Flags:"; 56 valueComboBox.Visible = !isFlags; 57 flagsListView.Visible = isFlags; 48 58 } 49 59 public EnumValueView(EnumValue<T> content) … … 64 74 protected override void OnContentChanged() { 65 75 base.OnContentChanged(); 66 if (Content == null) 67 valueComboBox.Enabled = false; 68 else 76 if (Content == null) { 77 valueComboBox.SelectedIndex = -1; 78 foreach (ListViewItem item in flagsListView.Items) 79 item.Checked = false; 80 } else { 69 81 valueComboBox.SelectedItem = Content.Value; 82 foreach (ListViewItem item in flagsListView.Items) { 83 var flag = (Enum)item.Tag; 84 item.Checked = ((Enum)(object)Content.Value).HasFlag(flag); 85 } 86 } 70 87 } 71 88 72 89 protected override void SetEnabledStateOfControls() { 73 90 base.SetEnabledStateOfControls(); 74 if (Content == null) valueComboBox.Enabled = false; 75 else valueComboBox.Enabled = !ReadOnly; 91 if (Content == null) { 92 valueComboBox.Enabled = false; 93 flagsListView.Enabled = false; 94 } else { 95 valueComboBox.Enabled = !ReadOnly; 96 flagsListView.Enabled = !ReadOnly; 97 } 76 98 } 77 99 … … 79 101 if (InvokeRequired) 80 102 Invoke(new EventHandler(Content_ValueChanged), sender, e); 81 else 103 else { 82 104 valueComboBox.SelectedItem = Content.Value; 105 foreach (ListViewItem item in flagsListView.Items) { 106 var flag = (Enum)item.Tag; 107 item.Checked = ((Enum)(object)Content.Value).HasFlag(flag); 108 } 109 } 83 110 } 84 111 … … 87 114 Content.Value = (T)valueComboBox.SelectedItem; 88 115 } 116 117 private void flagsListView_ItemChecked(object sender, ItemCheckedEventArgs e) { 118 var flag = (T)e.Item.Tag; 119 if ((Content != null) && !Content.ReadOnly) 120 Content.Value = ((Enum)(object)Content.Value).SetFlag(flag, e.Item.Checked); 121 } 89 122 } 90 123 }
Note: See TracChangeset
for help on using the changeset viewer.