/// <summary> /// Adds columns for the given <paramref name="detector"/>. /// </summary> /// <param name="detector">the detector to add columns for</param> public void AddColumns(IDetector detector) { Columns.SuspendChangeNotification(); // Add columns from the given detector that are not yet in this tree if (!_detectors.Contains(detector)) { _detectors.Add(detector); foreach (IColumnInfo columnInfo in detector.GetColumns()) { if (Columns[columnInfo.Name] == null) { AddColumn(detector, columnInfo, false); } } } // Check the database for visible columns for the given dectector IProject project = _projectManager.Project; if (project != null) { IList <IColumnInfo> visibleColumns = project.GetVisibleColumns(detector); foreach (ColumnInfo columnInfo in visibleColumns) { Column column = Columns[columnInfo.Name]; if (column != null) { column.Width = columnInfo.Width; column.Active = true; } } } Columns.ResumeChangeNotification(); }
/// <summary> /// Sets the columns for this tree to the column names of the /// given <paramref name="detector"/>. /// </summary> /// <param name="detector">the detector</param> /// <param name="isWorkpad">The column chooser can be called from a workpad or the main dailog</param> public void SetColumns(IDetector detector, bool isWorkpad) { _detectors.Clear(); Columns.Clear(); listViewHiddenColumns.Items.Clear(); listViewVisibleColumns.Items.Clear(); if (!isWorkpad && detector == null) { return; } //if(detector==null && isWorkpad) -> default columns only if (detector != null) { _detectors.Add(detector); } IList <IColumnInfo> visibleColumns = null; IProject project = _projectManager.Project; if (project != null && detector != null) { visibleColumns = project.GetVisibleColumns(detector); } if (visibleColumns == null || visibleColumns.Count == 0) { // Do not add column 'Detector' / 'Detector Version' and 'File' to the default visible columns visibleColumns = new List <IColumnInfo>(); foreach (IColumnInfo columnInfo in DefaultColumnExtensions.GetHeaderTreeDefaultColumns(DisplayMode)) { if (columnInfo.Name != Enum.GetName(typeof(DefaultColumnIndex), DefaultColumnIndex.Detector) && columnInfo.Name != Enum.GetName(typeof(DefaultColumnIndex), DefaultColumnIndex.DetectorVersion) && columnInfo.Name != Enum.GetName(typeof(DefaultColumnIndex), DefaultColumnIndex.File)) { visibleColumns.Add(columnInfo); } } if (project != null && detector != null) { project.SetVisibleColumns(detector, visibleColumns); } } Columns.SuspendChangeNotification(); // Add the visible columns foreach (ColumnInfo columnInfo in visibleColumns) { AddColumn(detector, GetCorrectCaptionForOffsetAndLength(columnInfo), true); } // Make the Offset column the default sort column; sort ascending Column offsetColumn = Columns[DefaultColumnIndex.Offset.GetName()]; if (offsetColumn != null) { offsetColumn.SortDirection = ListSortDirection.Ascending; HeaderPanel.SortColumn = offsetColumn; } // Add the invisible default columns foreach (ColumnInfo defaultColumnInfo in DefaultColumnExtensions.GetHeaderTreeDefaultColumns(DisplayMode)) { if (!IsVisibleColumn(defaultColumnInfo.Name, visibleColumns)) { AddColumn(detector, defaultColumnInfo, false); } } // Add the invisible custom columns foreach (IColumnInfo customColumnInfo in detector.GetColumns()) { if (!IsVisibleColumn(customColumnInfo.Name, visibleColumns)) { AddColumn(detector, customColumnInfo, false); } } Columns.ResumeChangeNotification(); CreateColumns(); }