コード例 #1
0
 public override void ApplyFilters(IModelFilter modelFilter, IListFilter listFilter)
 {
     filtered = filteredAddresses.ToArray();
 }
コード例 #2
0
        /// <summary>
        /// Do the actual work of filtering
        /// </summary>
        /// <param name="objects"></param>
        /// <param name="aModelFilter"></param>
        /// <param name="aListFilter"></param>
        /// <returns></returns>
        protected virtual IEnumerable FilterObjects(IEnumerable objects, IModelFilter aModelFilter, IListFilter aListFilter)
        {
            // Being cautious
            objects = objects ?? new ArrayList();

            // Tell the world to filter the objects. If they do so, don't do anything else
            FilterEventArgs args = new FilterEventArgs(objects);
            this.OnFilter(args);
            if (args.FilteredObjects != null)
                return args.FilteredObjects;

            // Apply a filter to the list as a whole
            if (aListFilter != null)
                objects = aListFilter.Filter(objects);

            // Apply the object filter if there is one
            if (aModelFilter != null) {
                ArrayList filteredObjects = new ArrayList();
                foreach (object model in objects) {
                    if (aModelFilter.Filter(model))
                        filteredObjects.Add(model);
                }
                objects = filteredObjects;
            }

            return objects;
        }
コード例 #3
0
 internal void RegisterNewFilter(IModelFilter newFilter)
 {
     TextMatchFilter textFilter = newFilter as TextMatchFilter;
     if (textFilter != null)
     {
         Filter = textFilter;
         return;
     }
     CompositeFilter composite = newFilter as CompositeFilter;
     if (composite != null)
     {
         foreach (TextMatchFilter textSubFilter in composite.TextFilters)
         {
             Filter = textSubFilter;
             return;
         }
     }
     Filter = null;
 }
コード例 #4
0
ファイル: VirtualListDataSource.cs プロジェクト: VicBoss/KR
 /// <summary>
 /// 
 /// </summary>
 /// <param name="modelFilter"></param>
 /// <param name="listFilter"></param>
 virtual public void ApplyFilters(IModelFilter modelFilter, IListFilter listFilter) {
 }
コード例 #5
0
 /// <summary>
 /// Apply the given filters to this data source. One or both may be null.
 /// </summary>
 /// <param name="iModelFilter"></param>
 /// <param name="iListFilter"></param>
 public override void ApplyFilters(IModelFilter iModelFilter, IListFilter iListFilter) {
     this.modelFilter = iModelFilter;
     this.listFilter = iListFilter;
     this.SetObjects(this.fullObjectList);
 }
コード例 #6
0
ファイル: FinderBase.cs プロジェクト: mariocosmi/Worker
 private void FillArray(ArrayList vett, IDataReader rdr, System.Type type, IModelFilter modelFilter, Map fieldNames)
 {
     while (rdr != null && rdr.Read()) {
         ModelBase instance = ModelHelper.Instance.New(type, rdr);
         FilterResult stat = (modelFilter == null) ? FilterResult.Accept : modelFilter.Filter(vett, instance, fieldNames);
         if (stat == FilterResult.Accept)
             vett.Add(instance);
         else if (stat == FilterResult.Stop)
             break;
     }
     Logger.DebugFormat("{0} carica {1} records", this.GetType().Name, vett.Count);
 }
コード例 #7
0
 /// <summary>
 /// Apply the given filters to this data source. One or both may be null.
 /// </summary>
 /// <param name="iModelFilter"></param>
 /// <param name="iListFilter"></param>
 public override void ApplyFilters(IModelFilter iModelFilter, IListFilter iListFilter)
 {
     modelFilter = iModelFilter;
     listFilter = iListFilter;
     SetObjects(fullObjectList);
 }