Exemple #1
0
        private void FilterOnFilterChanged(object sender, FilterChangedEventArgs args)
        {
            var clauseNode = (args.CurrentNode) as ClauseNode;

            if (clauseNode != null && recursive && clauseNode.Operation == ClauseType.AnyOf && args.Action == FilterChangedAction.ValueChanged)
            {
                recursive = false;
                string           propertyName      = ((ClauseNode)args.CurrentNode).FirstOperand.PropertyName;
                var              inOperator        = (InOperator)FilterControlHelpers.ToCriteria(args.CurrentNode);
                List <ITreeNode> allChildTreeNodes = GetAllChildTreeNodes(inOperator, propertyName);
                if (allChildTreeNodes.Count > 0)
                {
                    ((FilterControl)sender).FilterCriteria = new InOperator(propertyName, allChildTreeNodes);
                }
                RecursiveFilterPopLookUpTreeSelectionSimpleAction.Active[ClauseType.AnyOf.ToString()] = true;
            }
        }
 protected override void ChangeElement(NodeEditableElement element, object value)
 {
     if (element.ElementType == ElementType.Operation && !Enum.IsDefined(typeof(ClauseType), value))
     {
         Model.BeginUpdate();
         Operation = (ClauseType)value;
         var clauseType = (int)value;
         if (clauseType == ClauseTypeEnumHelper.FullText)
         {
             FilterControlHelpers.ForceAdditionalParamsCount(AdditionalOperands, 1);
         }
         Model.EndUpdate(FilterChangedAction.OperationChanged, this);
         FilterControlFocusInfo fi = FocusInfo.OnRight();
         if (fi.Node == FocusInfo.Node)
         {
             FocusInfo = fi;
         }
     }
     else
     {
         base.ChangeElement(element, value);
     }
 }