Exemple #1
0
        private ToolStripMenuItem CreateColumnFilteringMenuItem(OLVColumn column, List <ICluster> clusters)
        {
            var listBox = new ToolStripCheckedListBox
            {
                Tag = column,
            };

            foreach (var cluster in clusters)
            {
                listBox.AddItem(cluster, column.ValuesChosenForFiltering.Contains(cluster.ClusterKey));
            }

            var state = listBox.CheckedItems.Count == 0
                ? CheckState.Unchecked
                : listBox.CheckedItems.Count == clusters.Count
                    ? CheckState.Checked
                    : CheckState.Indeterminate;

            listBox.AddItem(SELECT_ALL_LABEL, state);

            listBox.ItemCheck += HandleItemCheckedWrapped;

            var clearAllMenuItem = new ToolStripMenuItem(CLEAR_ALL_FILTERS_LABEL, ClearFilteringImage, (sender, args) => ClearAllFilters(column));

            var applMenuItem = new ToolStripMenuItem(APPLY_LABEL, FilteringImage, (sender, args) => ApplyFilter(listBox, column));

            var freeText = new ToolStripTextBoxWithPlaceHolderText()
            {
                Tag             = column,
                Text            = "",
                PlaceHolderText = "search in column",
            };

            var menuItem = new ToolStripMenuItem(FILTERING_LABEL, null,
                                                 new ToolStripItem[]
            {
                freeText,
                new ToolStripSeparator(),
                clearAllMenuItem,
                new ToolStripSeparator(),
                listBox,
                applMenuItem
            });

            return(menuItem);
        }