protected override void Initialize(bool initData) { base.Initialize(initData); if (initData) { _xColumn = _doc.RowHeaderColumn; _yColumn = _doc.ColumnHeaderColumn; // Initialize value columns _valueColumns.Clear(); for (int i = 0; i < _doc.ColumnCount; ++i) { var col = _doc.GetDataColumnProxy(i); _valueColumns.Add(new SelectableListNode(col.Document != null ? col.Document.FullName : "Unresolved column", col, false)); } CalcMaxPossiblePlotRangeTo(); // Initialize tables string[] tables = Current.Project.DataTableCollection.GetSortedTableNames(); string dataTableName = _doc.DataTable == null ? string.Empty : _doc.DataTable.Name; _availableTables.Clear(); foreach (var tableName in tables) { _availableTables.Add(new SelectableListNode(tableName, Current.Project.DataTableCollection[tableName], dataTableName == tableName)); } // Initialize columns FillAvailableColumnList(); _rowsController = new Common.AscendingIntegerCollectionController(); _rowsController.InitializeDocument(_doc.ParticipatingDataRows.Clone()); } if (null != _view) { EhSelectedColumnKindChanged(); // ask view which column kind is now selected UpdateButtonEnablingInView(); // do that in every case, even if nothing has changed _view.InitializeAvailableTables(_availableTables); _view.InitializeAvailableColumns(_availableColumns); _view.GroupNumber = _doc.GroupNumber; _view.UseAllAvailableDataColumns = _doc.UseAllAvailableDataColumnsOfGroup; _view.UseAllAvailableDataRows = _doc.UseAllAvailableDataRows; _view.Initialize_XColumn(_xColumn == null ? string.Empty : _xColumn.FullName); _view.Initialize_YColumn(_yColumn == null ? string.Empty : _yColumn.FullName); _view.Initialize_VColumns(_valueColumns); CalcMaxPossiblePlotRangeTo(); if (_rowsController.ViewObject == null) { Current.Gui.FindAndAttachControlTo(_rowsController); } _view.Initialize_DataRowsControl(_rowsController.ViewObject); } }
public override IEnumerable <ControllerAndSetNullMethod> GetSubControllers() { yield return(new ControllerAndSetNullMethod(_rowsController, () => _rowsController = null)); }