/// <summary>
        /// Removes all rules from a composite style
        /// </summary>
        /// <param name="style"></param>
        public static void RemoveAllRules(this ICompositeTypeStyle style)
        {
            Check.NotNull(style, "style"); //NOXLATE

            var remove = new List <ICompositeRule>();

            foreach (var r in style.CompositeRule)
            {
                remove.Add(r);
            }

            foreach (var r in remove)
            {
                style.RemoveCompositeRule(r);
            }
        }
        private void Rule_ItemDeleted(object sender, EventArgs e)
        {
            foreach (Condition c in this.Controls)
            {
                if (c.Item == sender)
                {
                    this.Controls.Remove(c);
                    break;
                }
            }

            if (m_point != null)
            {
                IPointRule remove = null;
                foreach (var pr in m_point.Rules)
                {
                    if (pr == sender)
                    {
                        remove = pr;
                        break;
                    }
                }

                if (remove != null)
                {
                    m_point.RemoveRule(remove);
                }
            }
            else if (m_line != null)
            {
                ILineRule remove = null;
                foreach (var lr in m_line.Rules)
                {
                    if (lr == sender)
                    {
                        remove = lr;
                        break;
                    }
                }

                if (remove != null)
                {
                    m_line.RemoveRule(remove);
                }
            }
            else if (m_area != null)
            {
                IAreaRule remove = null;
                foreach (var ar in m_area.Rules)
                {
                    if (ar == sender)
                    {
                        remove = ar;
                        break;
                    }
                }

                if (remove != null)
                {
                    m_area.RemoveRule(remove);
                }
            }
            else if (m_comp != null)
            {
                ICompositeRule remove = null;
                foreach (var comp in m_comp.CompositeRule)
                {
                    if (comp == sender)
                    {
                        remove = comp;
                        break;
                    }
                }

                if (remove != null)
                {
                    m_comp.RemoveCompositeRule(remove);
                }
            }

            SignalItemChanged();
        }