コード例 #1
0
ファイル: PaintHelper.cs プロジェクト: hraab/LogExpert
        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);
        }
コード例 #2
0
ファイル: PaintHelper.cs プロジェクト: zarunbal/LogExpert
        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);
        }
コード例 #3
0
ファイル: LogWindow.cs プロジェクト: gspatace/logexpert
        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);
        }
コード例 #4
0
ファイル: LogWindow.cs プロジェクト: gspatace/logexpert
        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);
        }
コード例 #5
0
ファイル: PaintHelper.cs プロジェクト: gspatace/logexpert
        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);
        }