/// <summary> /// Removes one specific filter from the panel /// </summary> /// <param name="f">The filter which should be removed</param> public void RemoveFilter(Filter f) { if (f != null) { if (f.Parent != null) { if (f.Parent.Controls != null) { f.Parent.Controls.Remove(f.GetStuff()); } else { MessageBox.Show("Error"); } } else { MessageBox.Show("Error2"); } } else { MessageBox.Show("Error3"); } int searchID = f.GetID(); for (int i = 0; i < allFilter.Count; i++) { Filter actFilter = allFilter[i]; if (actFilter.GetID() == searchID) { allFilter.RemoveAt(i); i = allFilter.Count; } } this.ResetPositions(); // this.SearchAll(); }
/// <summary> /// AddFilter creates a new filter object, adds it to an internatl list of filters. /// Calculates the place of this filter and adds it to the panel. /// </summary> /// <returns>The complete panel</returns> public Panel AddFilter() { Filter f = new Filter(newID, place, this.GetScrollPosition(), this); f.Parent = filterPanel; allFilter.Add(f); newID++; place = allFilter[allFilter.Count - 1].GetNextElementPlace(); filterPanel.Controls.Add(f.GetStuff()); this.SetButtons(); return filterPanel; }
/// <summary> /// Adds a filter object with specific values. If there is an empty filter in the panel, the empty filter gets filled. /// Otherwhise, a new filter is created and filled. /// </summary> /// <param name="selection">The category which should be selected in this filter</param> /// <param name="value">The searchvalue added to the searchbox</param> /// <returns>The complete panel</returns> public Panel AddFilter(string selection, string value) { Filter emptyF = null; foreach(Filter actF in allFilter) { if(actF.CompletelyEmpty()) emptyF = actF; } Filter f = null; if (emptyF == null) { f = new Filter(newID, place, this.GetScrollPosition(), this); } else { f = emptyF; } f.SetSearchSelector(selection); f.SetSearchValue(value); f.Parent = filterPanel; if (emptyF == null) { allFilter.Add(f); newID++; place = allFilter[allFilter.Count - 1].GetNextElementPlace(); this.SetButtons(); } filterPanel.Controls.Add(f.GetStuff()); return filterPanel; }