private CriteriaOperator SetCollectionSourceCriteria(FiltersByCollectionWrapper filtersByCollectionWrapper)
 {
     CriteriaOperator criteriaOperator = CriteriaOperator.Parse(filtersByCollectionWrapper.PropertyPathFilter);
     if (criteriaOperator != null) {
         new FilterWithObjectsProcessor(View.ObjectSpace).Process(criteriaOperator,FilterWithObjectsProcessorMode.StringToObject);
         var criterion = new PropertyPathParser(View.ObjectSpace.Session.GetClassInfo(View.ObjectTypeInfo.Type)).Parse(filtersByCollectionWrapper.PropertyPath, criteriaOperator.ToString());
         ((ListView) View).CollectionSource.Criteria[filtersByCollectionWrapper.ID] =criterion;
         return criteriaOperator;
     }
     return criteriaOperator;
 }
 private ListViewInfoNodeWrapper GetNodeMemberSearchWrapper(FiltersByCollectionWrapper filtersByCollectionWrapper)
 {
     var nodeWrapper =
         (ListViewInfoNodeWrapper)
         (new ApplicationNodeWrapper(Application.Info).Views.Items.Where(
             wrapper => wrapper.Id == filtersByCollectionWrapper.CriteriaPathListViewId)).
             FirstOrDefault();
     if (nodeWrapper== null)
         throw new ArgumentNullException(filtersByCollectionWrapper.CriteriaPathListViewId+" not found");
     return nodeWrapper;
 }
 private string ApplyFilterString(FiltersByCollectionWrapper filtersByCollectionWrapper)
 {
     ((ListView)View).CollectionSource.Criteria[filtersByCollectionWrapper.ID] = null;
     CriteriaOperator criteriaOperator = SetCollectionSourceCriteria(filtersByCollectionWrapper);
     return GetHintPanelText(filtersByCollectionWrapper, criteriaOperator);
 }
 private string GetHintPanelText(FiltersByCollectionWrapper filtersByCollectionWrapper, CriteriaOperator criteriaOperator)
 {
     if (criteriaOperator != null)
     {
         var wrapper = new LocalizedCriteriaWrapper(filtersByCollectionWrapper.BinaryOperatorLastMemberClassType, criteriaOperator);
         wrapper.UpdateParametersValues();
         CriteriaOperator userFriendlyFilter = CriteriaOperator.Clone(wrapper.CriteriaOperator);
         new FilterWithObjectsUserFrendlyStringProcessor(filtersByCollectionWrapper.BinaryOperatorLastMemberClassType).Process(userFriendlyFilter);
         return userFriendlyFilter.ToString();
     }
     return null;
 }
        private void AcceptFilter(FiltersByCollectionWrapper filtersByCollectionWrapper)
        {
            ListViewInfoNodeWrapper nodeWrapper = GetNodeMemberSearchWrapper(filtersByCollectionWrapper);

            string attributeValue = nodeWrapper.Node.GetAttributeValue(FilterStringAttributeName);
            filtersByCollectionWrapper.PropertyPathFilter = attributeValue;
            ApplyFilterString();
            View.Refresh();
        }