- Timestamp:
- 12/20/11 17:07:01 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Analysis.Views/3.3/DataTableVisualPropertiesDialog.cs
r6342 r7216 21 21 22 22 using System.Collections.Generic; 23 using System.ComponentModel; 23 24 using System.Linq; 24 25 using System.Windows.Forms; … … 32 33 private Dictionary<string, DataRowVisualProperties> originalDataRowVPs; 33 34 35 private HashSet<string> modifiedDisplayNames; 36 public IEnumerable<string> RowsWithModifiedDisplayNames { get { return modifiedDisplayNames.AsEnumerable(); } } 37 34 38 public DataTableVisualPropertiesDialog(DataTable dataTable) { 35 39 InitializeComponent(); 40 #region Prepare controls 36 41 upButton.Text = string.Empty; 37 42 upButton.Image = VSImageLibrary.ArrowUp; 38 43 downButton.Text = string.Empty; 39 44 downButton.Image = VSImageLibrary.ArrowDown; 45 seriesListView.Items.Clear(); 46 seriesListView.SmallImageList = new ImageList(); 47 seriesListView.SmallImageList.Images.Add(VSImageLibrary.Graph); 48 #endregion 49 40 50 Content = dataTable; 41 51 originalDataTableVPs = (DataTableVisualProperties)Content.VisualProperties.Clone(); … … 43 53 foreach (DataRow row in Content.Rows) 44 54 originalDataRowVPs.Add(row.Name, (DataRowVisualProperties)row.VisualProperties.Clone()); 45 seriesListView.Items.Clear(); 46 seriesListView.SmallImageList = new ImageList(); 47 seriesListView.SmallImageList.Images.Add(VSImageLibrary.Graph); 55 56 dataTableVisualPropertiesControl.Content = Content.VisualProperties; 57 58 modifiedDisplayNames = new HashSet<string>(); 48 59 FillSeriesListView(); 49 dataTableVisualPropertiesControl.Content = Content.VisualProperties;60 RegisterContentEvents(); 50 61 } 51 62 52 private void FillSeriesListView() { 53 seriesListView.SelectedIndices.Clear(); 63 private void RegisterContentEvents() { 54 64 foreach (DataRow row in Content.Rows) { 55 seriesListView.Items.Add(new ListViewItem(row.Name, 0));65 row.VisualProperties.PropertyChanged += new PropertyChangedEventHandler(Row_VisualProperties_PropertyChanged); 56 66 } 57 seriesListView.SelectedIndices.Add(0); 67 } 68 69 private void DeregisterContentEvents() { 70 foreach (DataRow row in Content.Rows) { 71 row.VisualProperties.PropertyChanged -= new PropertyChangedEventHandler(Row_VisualProperties_PropertyChanged); 72 } 73 } 74 75 protected override void OnClosing(CancelEventArgs e) { 76 DeregisterContentEvents(); 77 Application.DoEvents(); 78 base.OnClosing(e); 79 } 80 81 private void Row_VisualProperties_PropertyChanged(object sender, PropertyChangedEventArgs e) { 82 foreach (DataRow row in Content.Rows) { 83 if (e.PropertyName == "DisplayName" && row.VisualProperties == sender) { 84 modifiedDisplayNames.Add(row.Name); 85 break; 86 } 87 } 58 88 } 59 89 … … 79 109 row.VisualProperties = originalDataRowVPs[row.Name]; 80 110 } 111 modifiedDisplayNames.Clear(); 81 112 Content.VisualProperties = originalDataTableVPs; 82 113 Close(); … … 124 155 125 156 #region Helpers 157 private void FillSeriesListView() { 158 seriesListView.SelectedIndices.Clear(); 159 foreach (DataRow row in Content.Rows) { 160 seriesListView.Items.Add(new ListViewItem(row.Name, 0)); 161 } 162 seriesListView.SelectedIndices.Add(0); 163 } 164 126 165 private void UpdateAllSeriesPositions() { 127 166 Dictionary<string, DataRow> rows = Content.Rows.ToDictionary(x => x.Name);
Note: See TracChangeset
for help on using the changeset viewer.