/// <summary> /// Редактирование фильтра событий /// </summary> /// <param name="filter">Текущее значение фильтра</param> /// <returns>Новое значение фильтра</returns> public Boolean Execute(EventLinkFilterBase filter) { if (filter == null) throw new ArgumentNullException("filter"); // работаем с копией фильтра _filter = (EventLinkFilterBase)filter.Clone(); propertyGrid1.SelectedObject = _filter; return ShowDialog() == DialogResult.OK; }
/// <summary> /// Редактирование фильтра событий /// </summary> /// <param name="filter">Текущее значение фильтра</param> /// <returns>Новое значение фильтра</returns> public bool Execute(EventLinkFilterBase filter) { if (filter == null) { throw new ArgumentNullException("filter"); } // работаем с копией фильтра _filter = (EventLinkFilterBase)filter.Clone(); propertyGrid1.SelectedObject = _filter; return(ShowDialog() == DialogResult.OK); }
/// <summary> /// Копирование значений /// </summary> /// <param name="source">Фильтр-источник</param> public void Assign(EventLinkFilterBase source) { ShowInfos = source.ShowInfos; ShowErrors = source.ShowErrors; ShowWarnings = source.ShowWarnings; FromDate = source.FromDate; ToDate = source.ToDate; _maxEvents = source.MaxEvents; _eventSources = new string[source.EventSources.Length]; _maxEventsPerIteration = source.MaxEventsPerIteration; Array.Copy(source.EventSources, _eventSources, source.EventSources.Length); }
/// <summary> /// Создает экземпляр класса /// </summary> /// <param name="lv">Представление для размещения событий</param> /// <param name="filterParams">Исходная настройка фильтра для просмотра событий</param> /// <param name="viewSettings">Ширина колонок</param> /// <param name="notifyOnReloadProgress">Сообщать о прогрессе загрузки событий</param> /// <param name="replaceControlItemIcons">Заменять иконки у элементов управления</param> public ListedEventsViewLink(ListView lv, EventLinkFilterBase filterParams, ListedEventsViewSettings viewSettings, bool notifyOnReloadProgress, bool replaceControlItemIcons) { if (lv == null) { throw new ArgumentNullException("lv"); } if (filterParams == null) { throw new ArgumentNullException("filterParams"); } _guiSyncContext = SynchronizationContext.Current; _notifyOnReloadProgress = notifyOnReloadProgress; _replaceControlItemIcons = replaceControlItemIcons; // список значков для событий _lvImages = new ImageList(); _lvImages.ColorDepth = ColorDepth.Depth32Bit; _lvImages.ImageSize = new System.Drawing.Size(16, 16); _lvImages.Images.Add(Resources.Info); _lvImages.Images.Add(Resources.Error); _lvImages.Images.Add(Resources.Warning); // меняем вид представления под отображение лога _lv = lv; _lv.BeginUpdate(); try { _lv.SmallImageList = _lvImages; _lv.LargeImageList = _lvImages; _lv.Items.Clear(); _lv.Columns.Clear(); // внешний вид и поведение _lv.GridLines = true; _lv.View = View.Details; _lv.FullRowSelect = true; _lv.MultiSelect = false; _lv.HideSelection = false; // добавляем колонки _viewSettings = viewSettings; if (_viewSettings == null) { _viewSettings = new ListedEventsViewSettings(); } _lv.Columns.Add("Дата и время", _viewSettings[0]); _lv.Columns.Add("Приложение", _viewSettings[1]); _lv.Columns.Add("Тип", _viewSettings[2]); _lv.Columns.Add("Текст", _viewSettings[3]); // вешаем обработчики событий _lv.DoubleClick += new EventHandler(OnListViewDoubleClick); _lv.ColumnClick += new ColumnClickEventHandler(OnListViewColumnClick); _lv.SelectedIndexChanged += new EventHandler(OnListViewSelectedIndexChanged); _lv.ColumnWidthChanged += new ColumnWidthChangedEventHandler(OnListViewColumnWidthChanged); } finally { _lv.EndUpdate(); } _filterParams = filterParams; // списки контролов для управления процессом просмотра логов _filterItems = new List <ToolStripItem>(); _detailsItems = new List <ToolStripItem>(); _updateItems = new List <ToolStripItem>(); _cleanupItems = new List <ToolStripItem>(); _detailedViewItems = new List <Control>(); UpdateControlsEnabled(); }
/// <summary> /// Создает экземпляр класса /// </summary> /// <param name="lv">Представление для размещения событий</param> /// <param name="filterParams">Исходная настройка фильтра для просмотра событий</param> /// <param name="viewSettings">Ширина колонок</param> public ListedEventsViewLink(ListView lv, EventLinkFilterBase filterParams, ListedEventsViewSettings viewSettings) : this(lv, filterParams, viewSettings, false, true) { }
/// <summary> /// Создает экземпляр класса /// </summary> /// <param name="lv">Представление для размещения событий</param> /// <param name="filterParams">Исходная настройка фильтра для просмотра событий</param> /// <param name="viewSettings">Ширина колонок</param> /// <param name="notifyOnReloadProgress">Сообщать о прогрессе загрузки событий</param> public ListedEventsViewLink(ListView lv, EventLinkFilterBase filterParams, ListedEventsViewSettings viewSettings, bool notifyOnReloadProgress) : this(lv, filterParams, viewSettings, notifyOnReloadProgress, true) { }
/// <summary> /// Копирование значений /// </summary> /// <param name="source">Фильтр-источник</param> public void Assign(EventLinkFilterBase source) { ShowInfos = source.ShowInfos; ShowErrors = source.ShowErrors; ShowWarnings = source.ShowWarnings; FromDate = source.FromDate; ToDate = source.ToDate; _maxEvents = source.MaxEvents; _eventSources = new String[source.EventSources.Length]; _maxEventsPerIteration = source.MaxEventsPerIteration; Array.Copy(source.EventSources, _eventSources, source.EventSources.Length); }
/// <summary> /// Создает экземпляр класса /// </summary> /// <param name="lv">Представление для размещения событий</param> /// <param name="filterParams">Исходная настройка фильтра для просмотра событий</param> /// <param name="viewSettings">Ширина колонок</param> /// <param name="notifyOnReloadProgress">Сообщать о прогрессе загрузки событий</param> /// <param name="replaceControlItemIcons">Заменять иконки у элементов управления</param> public ListedEventsViewLink(ListView lv, EventLinkFilterBase filterParams, ListedEventsViewSettings viewSettings, Boolean notifyOnReloadProgress, Boolean replaceControlItemIcons) { if (lv == null) throw new ArgumentNullException("lv"); if (filterParams == null) throw new ArgumentNullException("filterParams"); _guiSyncContext = SynchronizationContext.Current; _notifyOnReloadProgress = notifyOnReloadProgress; _replaceControlItemIcons = replaceControlItemIcons; // список значков для событий _lvImages = new ImageList(); _lvImages.ColorDepth = ColorDepth.Depth32Bit; _lvImages.ImageSize = new System.Drawing.Size(16, 16); _lvImages.Images.Add(Resources.Info); _lvImages.Images.Add(Resources.Error); _lvImages.Images.Add(Resources.Warning); // меняем вид представления под отображение лога _lv = lv; _lv.BeginUpdate(); try { _lv.SmallImageList = _lvImages; _lv.LargeImageList = _lvImages; _lv.Items.Clear(); _lv.Columns.Clear(); // внешний вид и поведение _lv.GridLines = true; _lv.View = View.Details; _lv.FullRowSelect = true; _lv.MultiSelect = false; _lv.HideSelection = false; // добавляем колонки _viewSettings = viewSettings; if (_viewSettings == null) _viewSettings = new ListedEventsViewSettings(); _lv.Columns.Add("Дата и время", _viewSettings[0]); _lv.Columns.Add("Приложение", _viewSettings[1]); _lv.Columns.Add("Тип", _viewSettings[2]); _lv.Columns.Add("Текст", _viewSettings[3]); // вешаем обработчики событий _lv.DoubleClick += new EventHandler(OnListViewDoubleClick); _lv.ColumnClick += new ColumnClickEventHandler(OnListViewColumnClick); _lv.SelectedIndexChanged += new EventHandler(OnListViewSelectedIndexChanged); _lv.ColumnWidthChanged += new ColumnWidthChangedEventHandler(OnListViewColumnWidthChanged); } finally { _lv.EndUpdate(); } _filterParams = filterParams; // списки контролов для управления процессом просмотра логов _filterItems = new List<ToolStripItem>(); _detailsItems = new List<ToolStripItem>(); _updateItems = new List<ToolStripItem>(); _cleanupItems = new List<ToolStripItem>(); _detailedViewItems = new List<Control>(); UpdateControlsEnabled(); }
/// <summary> /// Создает экземпляр класса /// </summary> /// <param name="lv">Представление для размещения событий</param> /// <param name="filterParams">Исходная настройка фильтра для просмотра событий</param> /// <param name="viewSettings">Ширина колонок</param> public ListedEventsViewLink(ListView lv, EventLinkFilterBase filterParams, ListedEventsViewSettings viewSettings) : this(lv, filterParams, viewSettings, false, true) { }
/// <summary> /// Создает экземпляр класса /// </summary> /// <param name="lv">Представление для размещения событий</param> /// <param name="filterParams">Исходная настройка фильтра для просмотра событий</param> /// <param name="viewSettings">Ширина колонок</param> /// <param name="notifyOnReloadProgress">Сообщать о прогрессе загрузки событий</param> public ListedEventsViewLink(ListView lv, EventLinkFilterBase filterParams, ListedEventsViewSettings viewSettings, Boolean notifyOnReloadProgress) : this(lv, filterParams, viewSettings, notifyOnReloadProgress, true) { }