예제 #1
0
 public FilterEditorViewModel(FilterBase fbase)
 {
     if (fbase != null)
     {
         this.Category = fbase.Namespace;
         _filtersCache = FiltersCache.Replace(f => f.Namespace == fbase.Namespace && f.Description == fbase.Description, fbase).ToArray();
         CurrentFilter = fbase;
     }
 }
예제 #2
0
 /// <summary>
 /// FilterEditor ViewModelを作成します。
 /// </summary>
 /// <param name="fbase">編集するフィルタ。nullを指定できます。</param>
 /// <param name="generateCallback">編集終了時にコールバックするトリガ。OKが押された時、生成されたフィルタを返します。</param>
 public FilterEditorViewModel(FilterBase fbase, Action<FilterBase> callback)
 {
     if (callback == null)
         throw new ArgumentNullException("callback");
     this.callback = callback;
     if (fbase != null)
     {
         this.Category = fbase.Namespace;
         _filtersCache = FiltersCache.Replace(f => f.Namespace == fbase.Namespace && f.Description == fbase.Description, fbase).ToArray();
         CurrentFilter = fbase;
     }
 }
예제 #3
0
        /// <summary>
        /// フィルタクラスタにフィルタを結合します。
        /// </summary>
        public static FilterCluster Join(this FilterCluster cluster, FilterBase filter, bool concatOr = true)
        {
            var newCluster = new FilterCluster();

            if (cluster != null)
                newCluster.Filters = new IFilter[] { cluster, filter };
            else
                newCluster.Filters = new IFilter[] { filter };

            newCluster.ConcatenateOR = concatOr;

            return newCluster.Optimize();
        }
예제 #4
0
 public static void RaiseShowTweetPane(FilterBase filter)
 {
     RaiseShowTweetPane("q:" + filter.ToQuery());
 }
 public FilterItemViewModel(FilterEditControlViewModel root, FilterClusterViewModel parent, FilterBase item)
     : base(root, parent)
 {
     if (item == null)
         throw new ArgumentNullException("item");
     this.filter = item;
 }