/// <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);
        }
Beispiel #3
0
 /// <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)
 {
 }