public static void SetColumnizer(ILogLineColumnizer columnizer, DataGridView gridView) { int rowCount = gridView.RowCount; int currLine = gridView.CurrentCellAddress.Y; int currFirstLine = gridView.FirstDisplayedScrollingRowIndex; try { gridView.Columns.Clear(); } catch (ArgumentOutOfRangeException ae) { // Occures sometimes on empty gridViews (no lines) if bookmark window was closed and re-opened in floating mode. // Don't know why. Logger.logError(ae.Message); } DataGridViewTextBoxColumn markerColumn = new DataGridViewTextBoxColumn(); markerColumn.HeaderText = ""; markerColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; markerColumn.Resizable = DataGridViewTriState.False; markerColumn.DividerWidth = 1; markerColumn.ReadOnly = true; // markerColumn.HeaderCell.ContextMenuStrip = this.columnContextMenuStrip; gridView.Columns.Add(markerColumn); DataGridViewTextBoxColumn lineNumberColumn = new DataGridViewTextBoxColumn(); lineNumberColumn.HeaderText = "Line"; lineNumberColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; lineNumberColumn.Resizable = DataGridViewTriState.NotSet; lineNumberColumn.DividerWidth = 1; lineNumberColumn.ReadOnly = true; // lineNumberColumn.HeaderCell.ContextMenuStrip = this.columnContextMenuStrip; gridView.Columns.Add(lineNumberColumn); foreach (string colName in columnizer.GetColumnNames()) { DataGridViewColumn titleColumn = new LogTextColumn(); titleColumn.HeaderText = colName; titleColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; titleColumn.Resizable = DataGridViewTriState.NotSet; titleColumn.DividerWidth = 1; //titleColumn.HeaderCell.ContextMenuStrip = this.columnContextMenuStrip; gridView.Columns.Add(titleColumn); } gridView.RowCount = rowCount; if (currLine != -1) { gridView.CurrentCell = gridView.Rows[currLine].Cells[0]; } if (currFirstLine != -1) { gridView.FirstDisplayedScrollingRowIndex = currFirstLine; } //gridView.Refresh(); //AutoResizeColumns(gridView); }
public static void SetColumnizer(ILogLineColumnizer columnizer, DataGridView gridView) { int rowCount = gridView.RowCount; int currLine = gridView.CurrentCellAddress.Y; int currFirstLine = gridView.FirstDisplayedScrollingRowIndex; try { gridView.Columns.Clear(); } catch (ArgumentOutOfRangeException ae) { // Occures sometimes on empty gridViews (no lines) if bookmark window was closed and re-opened in floating mode. // Don't know why. _logger.Error(ae); } gridView.Columns.Add(CreateMarkerColumn()); gridView.Columns.Add(CreateLineNumberColumn()); foreach (string colName in columnizer.GetColumnNames()) { gridView.Columns.Add(CreateTitleColumn(colName)); } gridView.RowCount = rowCount; if (currLine != -1) { gridView.CurrentCell = gridView.Rows[currLine].Cells[0]; } if (currFirstLine != -1) { gridView.FirstDisplayedScrollingRowIndex = currFirstLine; } //gridView.Refresh(); //AutoResizeColumns(gridView); }
public void SetColumnizer(ILogLineColumnizer columnizer, DataGridView gridView) { int rowCount = gridView.RowCount; int currLine = gridView.CurrentCellAddress.Y; int currFirstLine = gridView.FirstDisplayedScrollingRowIndex; gridView.Columns.Clear(); DataGridViewTextBoxColumn markerColumn = new DataGridViewTextBoxColumn(); markerColumn.HeaderText = ""; markerColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; markerColumn.Resizable = DataGridViewTriState.False; markerColumn.DividerWidth = 1; markerColumn.ReadOnly = true; markerColumn.HeaderCell.ContextMenuStrip = columnContextMenuStrip; gridView.Columns.Add(markerColumn); DataGridViewTextBoxColumn lineNumberColumn = new DataGridViewTextBoxColumn(); lineNumberColumn.HeaderText = "Line"; lineNumberColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; lineNumberColumn.Resizable = DataGridViewTriState.NotSet; lineNumberColumn.DividerWidth = 1; lineNumberColumn.ReadOnly = true; lineNumberColumn.HeaderCell.ContextMenuStrip = columnContextMenuStrip; gridView.Columns.Add(lineNumberColumn); foreach (string colName in columnizer.GetColumnNames()) { DataGridViewColumn titleColumn = new LogTextColumn(); titleColumn.HeaderText = colName; titleColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; titleColumn.Resizable = DataGridViewTriState.NotSet; titleColumn.DividerWidth = 1; titleColumn.HeaderCell.ContextMenuStrip = columnContextMenuStrip; gridView.Columns.Add(titleColumn); } columnNamesLabel.Text = CalculateColumnNames(_filterParams); gridView.RowCount = rowCount; if (currLine != -1) { gridView.CurrentCell = gridView.Rows[currLine].Cells[0]; } if (currFirstLine != -1) { gridView.FirstDisplayedScrollingRowIndex = currFirstLine; } gridView.Refresh(); AutoResizeColumns(gridView); ApplyFrozenState(gridView); }
void SetColumnizerInternal(ILogLineColumnizer columnizer) { Logger.logInfo("SetColumnizerInternal(): " + columnizer.GetName()); ILogLineColumnizer oldColumnizer = CurrentColumnizer; bool oldColumnizerIsXmlType = CurrentColumnizer is ILogLineXmlColumnizer; bool oldColumnizerIsPreProcess = CurrentColumnizer is IPreProcessColumnizer; bool mustReload = false; // Check if the filtered columns disappeared, if so must refresh the UI if (_filterParams.columnRestrict) { string[] newColumns = columnizer != null ? columnizer.GetColumnNames() : new string[0]; bool colChanged = false; if (dataGridView.ColumnCount - 2 == newColumns.Length) // two first columns are 'marker' and 'line number' { for (int i = 0; i < newColumns.Length; i++) { if (dataGridView.Columns[i].HeaderText != newColumns[i]) { colChanged = true; break; // one change is sufficient } } } else { colChanged = true; } if (colChanged) { // Update UI columnNamesLabel.Text = CalculateColumnNames(_filterParams); } } Type oldColType = _filterParams.currentColumnizer != null ? _filterParams.currentColumnizer.GetType() : null; Type newColType = columnizer != null ? columnizer.GetType() : null; if (oldColType != newColType && _filterParams.columnRestrict && _filterParams.isFilterTail) { _filterParams.columnList.Clear(); } if (CurrentColumnizer == null || !CurrentColumnizer.GetType().Equals(columnizer.GetType())) { CurrentColumnizer = columnizer; _freezeStateMap.Clear(); if (CurrentLogFileReader != null) { IPreProcessColumnizer preprocessColumnizer = CurrentColumnizer as IPreProcessColumnizer; if (preprocessColumnizer != null) { CurrentLogFileReader.PreProcessColumnizer = preprocessColumnizer; } else { CurrentLogFileReader.PreProcessColumnizer = null; } } // always reload when choosing XML columnizers if (CurrentLogFileReader != null && CurrentColumnizer is ILogLineXmlColumnizer) { //forcedColumnizer = currentColumnizer; // prevent Columnizer selection on SetGuiAfterReload() mustReload = true; } // Reload when choosing no XML columnizer but previous columnizer was XML if (CurrentLogFileReader != null && !(CurrentColumnizer is ILogLineXmlColumnizer) && oldColumnizerIsXmlType) { CurrentLogFileReader.IsXmlMode = false; //forcedColumnizer = currentColumnizer; // prevent Columnizer selection on SetGuiAfterReload() mustReload = true; } // Reload when previous columnizer was PreProcess and current is not, and vice versa. // When the current columnizer is a preProcess columnizer, reload in every case. bool isCurrentColumnizerIPreProcessColumnizer = CurrentColumnizer is IPreProcessColumnizer; if ((isCurrentColumnizerIPreProcessColumnizer != oldColumnizerIsPreProcess) || isCurrentColumnizerIPreProcessColumnizer) { //forcedColumnizer = currentColumnizer; // prevent Columnizer selection on SetGuiAfterReload() mustReload = true; } } else { CurrentColumnizer = columnizer; } IInitColumnizer initColumnizer = oldColumnizer as IInitColumnizer; if (initColumnizer != null) { initColumnizer.DeSelected(new ColumnizerCallback(this)); } initColumnizer = columnizer as IInitColumnizer; if (initColumnizer != null) { initColumnizer.Selected(new ColumnizerCallback(this)); } SetColumnizer(columnizer, dataGridView); SetColumnizer(columnizer, filterGridView); if (_patternWindow != null) { _patternWindow.SetColumnizer(columnizer); } _guiStateArgs.TimeshiftPossible = columnizer.IsTimeshiftImplemented(); SendGuiStateUpdate(); if (CurrentLogFileReader != null) { dataGridView.RowCount = CurrentLogFileReader.LineCount; } if (_filterResultList != null) { filterGridView.RowCount = _filterResultList.Count; } if (mustReload) { Reload(); } else { if (CurrentColumnizer.IsTimeshiftImplemented()) { SetTimestampLimits(); SyncTimestampDisplay(); } Settings settings = ConfigManager.Settings; ShowLineColumn(!settings.hideLineColumn); ShowTimeSpread(Preferences.showTimeSpread && columnizer.IsTimeshiftImplemented()); } if (!columnizer.IsTimeshiftImplemented() && IsTimeSynced) { FreeFromTimeSync(); } columnComboBox.Items.Clear(); foreach (String columnName in columnizer.GetColumnNames()) { columnComboBox.Items.Add(columnName); } columnComboBox.SelectedIndex = 0; OnColumnizerChanged(CurrentColumnizer); }
public static void SetColumnizer(ILogLineColumnizer columnizer, DataGridView gridView) { int rowCount = gridView.RowCount; int currLine = gridView.CurrentCellAddress.Y; int currFirstLine = gridView.FirstDisplayedScrollingRowIndex; try { gridView.Columns.Clear(); } catch (ArgumentOutOfRangeException ae) { // Occures sometimes on empty gridViews (no lines) if bookmark window was closed and re-opened in floating mode. // Don't know why. Logger.logError(ae.Message); } DataGridViewTextBoxColumn markerColumn = new DataGridViewTextBoxColumn(); markerColumn.HeaderText = ""; markerColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; markerColumn.Resizable = DataGridViewTriState.False; markerColumn.DividerWidth = 1; markerColumn.ReadOnly = true; // markerColumn.HeaderCell.ContextMenuStrip = this.columnContextMenuStrip; gridView.Columns.Add(markerColumn); DataGridViewTextBoxColumn lineNumberColumn = new DataGridViewTextBoxColumn(); lineNumberColumn.HeaderText = "Line"; lineNumberColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; lineNumberColumn.Resizable = DataGridViewTriState.NotSet; lineNumberColumn.DividerWidth = 1; lineNumberColumn.ReadOnly = true; // lineNumberColumn.HeaderCell.ContextMenuStrip = this.columnContextMenuStrip; gridView.Columns.Add(lineNumberColumn); foreach (string colName in columnizer.GetColumnNames()) { DataGridViewColumn titleColumn = new LogTextColumn(); titleColumn.HeaderText = colName; titleColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; titleColumn.Resizable = DataGridViewTriState.NotSet; titleColumn.DividerWidth = 1; //titleColumn.HeaderCell.ContextMenuStrip = this.columnContextMenuStrip; gridView.Columns.Add(titleColumn); } gridView.RowCount = rowCount; if (currLine != -1) gridView.CurrentCell = gridView.Rows[currLine].Cells[0]; if (currFirstLine != -1) gridView.FirstDisplayedScrollingRowIndex = currFirstLine; //gridView.Refresh(); //AutoResizeColumns(gridView); }