/// <summary> /// Do the work of making a menu that shows the clusters to the users /// </summary> /// <param name="column"></param> /// <param name="clusters"></param> /// <returns></returns> virtual protected ToolStripMenuItem CreateFilteringMenuItem(OLVColumn column, List <ICluster> clusters) { ToolStripCheckedListBox checkedList = new ToolStripCheckedListBox(); checkedList.Tag = column; foreach (ICluster cluster in clusters) { checkedList.AddItem(cluster, column.ValuesChosenForFiltering.Contains(cluster.ClusterKey)); } if (!String.IsNullOrEmpty(SELECT_ALL_LABEL)) { int checkedCount = checkedList.CheckedItems.Count; if (checkedCount == 0) { checkedList.AddItem(SELECT_ALL_LABEL, CheckState.Unchecked); } else { checkedList.AddItem(SELECT_ALL_LABEL, checkedCount == clusters.Count ? CheckState.Checked : CheckState.Indeterminate); } } checkedList.ItemCheck += new ItemCheckEventHandler(HandleItemCheckedWrapped); ToolStripMenuItem clearAll = new ToolStripMenuItem(CLEAR_ALL_FILTERS_LABEL, ClearFilteringImage, delegate(object sender, EventArgs args) { this.ClearAllFilters(column); }); ToolStripMenuItem apply = new ToolStripMenuItem(APPLY_LABEL, FilteringImage, delegate(object sender, EventArgs args) { this.EnactFilter(checkedList, column); }); ToolStripMenuItem subMenu = new ToolStripMenuItem(FILTERING_LABEL, null, new ToolStripItem[] { clearAll, new ToolStripSeparator(), checkedList, apply }); return(subMenu); }
/// <summary> /// Do the work of making a menu that shows the clusters to the users /// </summary> /// <param name="column"></param> /// <param name="clusters"></param> /// <returns></returns> protected virtual ToolStripMenuItem CreateFilteringMenuItem(OLVColumn column, List<ICluster> clusters) { var checkedList = new ToolStripCheckedListBox(); checkedList.Tag = column; foreach (ICluster cluster in clusters) checkedList.AddItem(cluster, column.ValuesChosenForFiltering.Contains(cluster.ClusterKey)); if (!String.IsNullOrEmpty(SELECT_ALL_LABEL)) { int checkedCount = checkedList.CheckedItems.Count; if (checkedCount == 0) checkedList.AddItem(SELECT_ALL_LABEL, CheckState.Unchecked); else checkedList.AddItem(SELECT_ALL_LABEL, checkedCount == clusters.Count ? CheckState.Checked : CheckState.Indeterminate); } checkedList.ItemCheck += HandleItemCheckedWrapped; var clearAll = new ToolStripMenuItem(CLEAR_ALL_FILTERS_LABEL, ClearFilteringImage, delegate { ClearAllFilters(column); }); var apply = new ToolStripMenuItem(APPLY_LABEL, FilteringImage, delegate { EnactFilter(checkedList, column); }); var subMenu = new ToolStripMenuItem(FILTERING_LABEL, null, new ToolStripItem[] { clearAll, new ToolStripSeparator(), checkedList, apply }); return subMenu; }
/// <summary> /// Do the work of making a menu that shows the clusters to the users /// </summary> /// <param name="column"></param> /// <param name="clusters"></param> /// <returns></returns> virtual protected ToolStripMenuItem CreateFilteringMenuItem(OLVColumn column, List<ICluster> clusters) { ToolStripCheckedListBox checkedList = new ToolStripCheckedListBox(); checkedList.Tag = column; foreach (ICluster cluster in clusters) checkedList.AddItem(cluster, column.ValuesChosenForFiltering.Contains(cluster.ClusterKey)); if (!String.IsNullOrEmpty(SELECT_ALL_LABEL)) { int checkedCount = checkedList.CheckedItems.Count; if (checkedCount == 0) checkedList.AddItem(SELECT_ALL_LABEL, CheckState.Unchecked); else checkedList.AddItem(SELECT_ALL_LABEL, checkedCount == clusters.Count ? CheckState.Checked : CheckState.Indeterminate); } checkedList.ItemCheck += new ItemCheckEventHandler(HandleItemCheckedWrapped); ToolStripMenuItem clearAll = new ToolStripMenuItem(CLEAR_ALL_FILTERS_LABEL, ClearFilteringImage, delegate(object sender, EventArgs args) { this.ClearAllFilters(column); }); ToolStripMenuItem apply = new ToolStripMenuItem(APPLY_LABEL, FilteringImage, delegate(object sender, EventArgs args) { this.EnactFilter(checkedList, column); }); ToolStripMenuItem subMenu = new ToolStripMenuItem(FILTERING_LABEL, null, new ToolStripItem[] { clearAll, new ToolStripSeparator(), checkedList, apply }); return subMenu; }