Changeset 14953


Ignore:
Timestamp:
05/10/17 14:23:23 (4 years ago)
Author:
pfleck
Message:

#2709 Disposed dynamically created controls.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotMultiView.cs

    r14917 r14953  
    8585        groupingComboBox.SelectedItem = Content.GroupingVariable;
    8686
    87         GenerateCharts();
     87        GenerateCharts(true);
    8888      }
    8989    }
     
    239239
    240240      // clear caches
     241      columnHeaderCache[name].Dispose();
    241242      columnHeaderCache.Remove(name);
     243      rowHeaderCache[name].Dispose();
    242244      rowHeaderCache.Remove(name);
    243245      var keys = bodyCache.Keys.Where(t => t.Item1 == name || t.Item2 == name).ToList();
    244       foreach (var key in keys)
     246      foreach (var key in keys) {
     247        bodyCache[key].Dispose();
    245248        bodyCache.Remove(key);
     249      }
    246250
    247251      if (IsVariableChecked(name)) {
     
    255259    }
    256260    protected override void ResetAllVariables() {
    257       GenerateCharts();
     261      GenerateCharts(true);
    258262    }
    259263    #endregion
     
    331335
    332336    protected override void CheckedChangedUpdate() {
    333       GenerateCharts();
     337      GenerateCharts(false); // only checked-changes -> reuse cached values
    334338    }
    335339
    336340    #region Generate Charts
    337     private void GenerateCharts() {
     341    private void GenerateCharts(bool clearCache) {
    338342      if (suppressCheckedChangedUpdate) return;
    339343
     
    346350        tableLayoutPanel.RowStyles.Clear();
    347351      }
    348       columnHeaderCache.Clear();
    349       rowHeaderCache.Clear();
    350       bodyCache.Clear();
     352
     353      if (clearCache) {
     354        foreach (var control in bodyCache.Values
     355          .Concat(columnHeaderCache.Values)
     356          .Concat(rowHeaderCache.Values)) {
     357          control.Dispose();
     358        }
     359        columnHeaderCache.Clear();
     360        rowHeaderCache.Clear();
     361        bodyCache.Clear();
     362      }
    351363
    352364      // Set row and column count
     
    542554
    543555    private void groupingComboBox_SelectedIndexChanged(object sender, EventArgs e) {
    544       GenerateCharts();
     556      GenerateCharts(true); // new series within charts -> clear cache
    545557    }
    546558  }
Note: See TracChangeset for help on using the changeset viewer.