Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/20/11 17:07:01 (12 years ago)
Author:
abeham
Message:

#1603

  • Made display name change transparent
  • Changed ok button

#1611

  • added warning and added label to show image size
  • fixed controls resizing
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Analysis.Views/3.3/DataTableVisualPropertiesDialog.cs

    r6342 r7216  
    2121
    2222using System.Collections.Generic;
     23using System.ComponentModel;
    2324using System.Linq;
    2425using System.Windows.Forms;
     
    3233    private Dictionary<string, DataRowVisualProperties> originalDataRowVPs;
    3334
     35    private HashSet<string> modifiedDisplayNames;
     36    public IEnumerable<string> RowsWithModifiedDisplayNames { get { return modifiedDisplayNames.AsEnumerable(); } }
     37
    3438    public DataTableVisualPropertiesDialog(DataTable dataTable) {
    3539      InitializeComponent();
     40      #region Prepare controls
    3641      upButton.Text = string.Empty;
    3742      upButton.Image = VSImageLibrary.ArrowUp;
    3843      downButton.Text = string.Empty;
    3944      downButton.Image = VSImageLibrary.ArrowDown;
     45      seriesListView.Items.Clear();
     46      seriesListView.SmallImageList = new ImageList();
     47      seriesListView.SmallImageList.Images.Add(VSImageLibrary.Graph);
     48      #endregion
     49
    4050      Content = dataTable;
    4151      originalDataTableVPs = (DataTableVisualProperties)Content.VisualProperties.Clone();
     
    4353      foreach (DataRow row in Content.Rows)
    4454        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>();
    4859      FillSeriesListView();
    49       dataTableVisualPropertiesControl.Content = Content.VisualProperties;
     60      RegisterContentEvents();
    5061    }
    5162
    52     private void FillSeriesListView() {
    53       seriesListView.SelectedIndices.Clear();
     63    private void RegisterContentEvents() {
    5464      foreach (DataRow row in Content.Rows) {
    55         seriesListView.Items.Add(new ListViewItem(row.Name, 0));
     65        row.VisualProperties.PropertyChanged += new PropertyChangedEventHandler(Row_VisualProperties_PropertyChanged);
    5666      }
    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      }
    5888    }
    5989
     
    79109        row.VisualProperties = originalDataRowVPs[row.Name];
    80110      }
     111      modifiedDisplayNames.Clear();
    81112      Content.VisualProperties = originalDataTableVPs;
    82113      Close();
     
    124155
    125156    #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
    126165    private void UpdateAllSeriesPositions() {
    127166      Dictionary<string, DataRow> rows = Content.Rows.ToDictionary(x => x.Name);
Note: See TracChangeset for help on using the changeset viewer.