示例#1
0
        private string ApplyFilterString(FiltersByCollectionWrapper filtersByCollectionWrapper)
        {
            View.CollectionSource.Criteria[filtersByCollectionWrapper.ID] = null;
            CriteriaOperator criteriaOperator = SetCollectionSourceCriteria(filtersByCollectionWrapper);

            return(GetHintPanelText(filtersByCollectionWrapper, criteriaOperator));
        }
示例#2
0
        private void AcceptFilter(FiltersByCollectionWrapper filtersByCollectionWrapper)
        {
            IModelListView nodeWrapper = GetNodeMemberSearchWrapper(filtersByCollectionWrapper);

            filtersByCollectionWrapper.PropertyPathFilter = GetActiveFilter(nodeWrapper);
            ApplyFilterString();
            View.Refresh();
        }
示例#3
0
        private IModelListView GetNodeMemberSearchWrapper(FiltersByCollectionWrapper filtersByCollectionWrapper)
        {
            var nodeWrapper = Application.Model.Views.OfType <IModelListView>().FirstOrDefault(wrapper => wrapper.Id == filtersByCollectionWrapper.CriteriaPathListViewId);

            if (nodeWrapper == null)
            {
                throw new ArgumentNullException(filtersByCollectionWrapper.CriteriaPathListViewId + " not found");
            }
            return(nodeWrapper);
        }
示例#4
0
 private string GetHintPanelText(FiltersByCollectionWrapper filtersByCollectionWrapper, CriteriaOperator criteriaOperator)
 {
     if (!(ReferenceEquals(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);
 }
示例#5
0
        private CriteriaOperator SetCollectionSourceCriteria(FiltersByCollectionWrapper filtersByCollectionWrapper)
        {
            CriteriaOperator criteriaOperator = CriteriaOperator.Parse(filtersByCollectionWrapper.PropertyPathFilter);

            if (!(ReferenceEquals(criteriaOperator, null)))
            {
                new FilterWithObjectsProcessor(View.ObjectSpace).Process(criteriaOperator, FilterWithObjectsProcessorMode.StringToObject);
                var criterion = new PropertyPathParser(((XPObjectSpace)View.ObjectSpace).Session.GetClassInfo(View.ObjectTypeInfo.Type)).Parse(filtersByCollectionWrapper.PropertyPath, criteriaOperator.ToString());
                View.CollectionSource.Criteria[filtersByCollectionWrapper.ID] = criterion;
                return(criteriaOperator);
            }
            return(null);
        }
        private CriteriaOperator SetCollectionSourceCriteria(FiltersByCollectionWrapper filtersByCollectionWrapper)
        {
            var session = ((XPObjectSpace)ObjectSpace).Session;

            if (!string.IsNullOrEmpty(filtersByCollectionWrapper.PropertyPathFilter))
            {
                CriteriaOperator criteriaOperator = ObjectSpace.ParseCriteria(filtersByCollectionWrapper.PropertyPathFilter);
                OnPropertyPathFilterParsed(criteriaOperator);
                var criteriaProcessor = new FilterWithObjectsProcessor(ObjectSpace, View.ObjectTypeInfo, IsAsyncServerMode());
                criteriaProcessor.Process(criteriaOperator, FilterWithObjectsProcessorMode.StringToObject);
                var enumParametersProcessor = new EnumPropertyValueCriteriaProcessor(View.ObjectTypeInfo);
                enumParametersProcessor.Process(criteriaOperator);
                var patchXpoSpecificFieldNameForGridCriteriaProcessor = new PatchXpoSpecificFieldNameProcessor();
                patchXpoSpecificFieldNameForGridCriteriaProcessor.Process(criteriaOperator);

                var classInfo = session.GetClassInfo(View.ObjectTypeInfo.Type);
                var criterion = new PropertyPathParser(classInfo, session).Parse(filtersByCollectionWrapper.PropertyPath, criteriaOperator.ToString());
                View.CollectionSource.Criteria[filtersByCollectionWrapper.ID] = criterion;
                return(criteriaOperator);
            }
            return(null);
        }