/// <summary>
        /// 
        /// </summary>
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            // Swap the filter to evade modifying it while loading the elements.
            TypeTracerFilter currentFilter = _filter;
            _filter = null;

            string[] names = Enum.GetNames(typeof(TracerItem.TypeEnum));
            Array values = Enum.GetValues(typeof(TracerItem.TypeEnum));
            for (int i = 0; i < names.Length; i++)
            {
                ListViewItem item = new ListViewItem();
                item.Text = names[i];
                item.Tag = values.GetValue(i);

                switch ((TracerItem.TypeEnum)item.Tag)
                {
                    case TracerItem.TypeEnum.MethodEntry:
                        item.ImageIndex = 2;
                     break;
                    case TracerItem.TypeEnum.MethodExit:
                     item.ImageIndex = 3;
                     break;
                    case TracerItem.TypeEnum.Trace:
                     item.ImageIndex = 4;
                     break;
                    case TracerItem.TypeEnum.System:
                     item.ImageIndex = 5;
                     break;
                    case (TracerItem.TypeEnum.Warning | TracerItem.TypeEnum.System):
                    case (TracerItem.TypeEnum.Warning | TracerItem.TypeEnum.Operation):
                    case TracerItem.TypeEnum.Warning:
                     item.ImageIndex = 1;
                     break;
                    case (TracerItem.TypeEnum.Error | TracerItem.TypeEnum.System):
                    case (TracerItem.TypeEnum.Error | TracerItem.TypeEnum.Operation):
                    case TracerItem.TypeEnum.Error:
                     item.ImageIndex = 0;
                     break;
                    default:
                     item.ImageIndex = 4;
                     break;
                }

                listViewTypes.Items.Add(item);
            }

            // Restore the current filter.
            _filter = currentFilter;

            UpdateUI();
        }
        /// <summary>
        ///
        /// </summary>
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            // Swap the filter to evade modifying it while loading the elements.
            TypeTracerFilter currentFilter = _filter;

            _filter = null;

            string[] names  = Enum.GetNames(typeof(TracerItem.TypeEnum));
            Array    values = Enum.GetValues(typeof(TracerItem.TypeEnum));

            for (int i = 0; i < names.Length; i++)
            {
                ListViewItem item = new ListViewItem();
                item.Text = names[i];
                item.Tag  = values.GetValue(i);

                switch ((TracerItem.TypeEnum)item.Tag)
                {
                case TracerItem.TypeEnum.MethodEntry:
                    item.ImageIndex = 2;
                    break;

                case TracerItem.TypeEnum.MethodExit:
                    item.ImageIndex = 3;
                    break;

                case TracerItem.TypeEnum.Trace:
                    item.ImageIndex = 4;
                    break;

                case TracerItem.TypeEnum.System:
                    item.ImageIndex = 5;
                    break;

                case (TracerItem.TypeEnum.Warning | TracerItem.TypeEnum.System):
                case (TracerItem.TypeEnum.Warning | TracerItem.TypeEnum.Operation):
                case TracerItem.TypeEnum.Warning:
                    item.ImageIndex = 1;
                    break;

                case (TracerItem.TypeEnum.Error | TracerItem.TypeEnum.System):
                case (TracerItem.TypeEnum.Error | TracerItem.TypeEnum.Operation):
                case TracerItem.TypeEnum.Error:
                    item.ImageIndex = 0;
                    break;

                default:
                    item.ImageIndex = 4;
                    break;
                }

                listViewTypes.Items.Add(item);
            }

            // Restore the current filter.
            _filter = currentFilter;

            UpdateUI();
        }