lw_common.ui.search_form.find_result_columns C# (CSharp) Méthode

find_result_columns() private méthode

private find_result_columns ( log_view lv ) : void
lv log_view
Résultat void
        private void find_result_columns(log_view lv) {
            // see which columns actually have useful data
            List< Tuple<int,int>> columns_and_displayidx = new List<Tuple<int,int>>();
            var available_columns = lv.available_columns; // ... getting available columns: time-consuming
            for (int col_idx = 0; col_idx < lv.list.AllColumns.Count; ++col_idx) {
                if ( lv.list.AllColumns[col_idx].Width > 0)
                    if ( col_idx != lv.viewCol.fixed_index() && available_columns.Contains(log_view_cell.cell_idx_to_type(col_idx)))
                        columns_and_displayidx.Add( new Tuple<int, int>(col_idx, lv.list.AllColumns[col_idx].DisplayIndex ));
            }
            column_indexes_ = columns_and_displayidx.OrderBy(x => x.Item2).Select(x => x.Item1).ToList();

            searchable_columns_.Clear();
            searchable_columns_msg_only_.Clear();
            int preview_col_idx = 0;
            foreach (int col_idx in column_indexes_) {
                result.AllColumns[preview_col_idx].Width = lv.list.AllColumns[col_idx].Width;
                result.AllColumns[preview_col_idx].Text = lv.list.AllColumns[col_idx] != lv.msgCol ? lv.list.AllColumns[col_idx].Text : "Message";
                result.AllColumns[preview_col_idx].FillsFreeSpace = lv.list.AllColumns[col_idx].FillsFreeSpace;
                // note: the line column never enters the search
                bool is_searchable = info_type_io.is_searchable(log_view_cell.cell_idx_to_type(col_idx));
                if (is_searchable)
                    searchable_columns_.Add(preview_col_idx);
                if ( lv.msgCol == lv.list.AllColumns[col_idx])
                    searchable_columns_msg_only_.Add(preview_col_idx);

                if (lv.lineCol != lv.list.AllColumns[col_idx])
                    result.AllColumns[preview_col_idx].Renderer = render_;
                ++preview_col_idx;
            }
            for (; preview_col_idx < result.AllColumns.Count; ++preview_col_idx)
                result.AllColumns[preview_col_idx].IsVisible = false;
            result.RebuildColumns();            
        }