A filter for selecting a group of wordform spaced on a "WfiWordSet"
Inheritance: SIL.FieldWorks.Filters.RecordFilter
Ejemplo n.º 1
0
        /// <summary>
        /// if current filter contains one of our items, then make sure we have
        /// a WordSetNullFilter() in our Filters, otherwise remove our WordSetNullFilter();
        /// We also make sure the current filter has a valid set of word references loaded.
        /// </summary>
        /// <param name="argument">current filter</param>
        /// <returns>true if handled.</returns>
        public override bool OnAdjustFilterSelection(object argument)
        {
            if (Filters.Count == 0)
            {
                return(false);                  // we aren't providing any items.
            }
            RecordFilter currentFilter = argument as RecordFilter;
            RecordFilter matchingFilter;

            if (ContainsOurFilter(currentFilter, out matchingFilter))
            {
                // we found a match. if we don't already have a WordSetNullFilter, add it now.
                if (!(Filters[0] is WordSetNullFilter))
                {
                    Filters.Insert(0, new WordSetNullFilter());
                }
                // make sure the current filter has a valid set of wordform references.
                WordSetFilter wordSetFilter = matchingFilter as WordSetFilter;
                wordSetFilter.ReloadWordSet(m_cache);
            }
            else if (Filters[0] is WordSetNullFilter)
            {
                // the current filter doesn't have one of our filters, so remove the WordSetNullFilter.
                Filters.RemoveAt(0);
            }

            // allow others to handle this message.
            return(false);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// reload the data items
        /// </summary>
        public override void ReLoad()
        {
            m_filters.Clear();

            foreach (IWfiWordSet words in m_cache.LangProject.MorphologicalDataOA.TestSetsOC)
            {
                WordSetFilter f = new WordSetFilter(words);
                m_filters.Add(f);
            }
        }
Ejemplo n.º 3
0
		public void OnAdjustFilterSelection()
		{
			var flp = new WfiRecordFilterListProvider();
			var wfiset = Cache.ServiceLocator.GetInstance<IWfiWordSetFactory>().Create();
			Cache.LangProject.MorphologicalDataOA.TestSetsOC.Add(wfiset);
			var wf1 = Cache.ServiceLocator.GetInstance<IWfiWordformFactory>().Create();
			wf1.Form.VernacularDefaultWritingSystem = Cache.TsStrFactory.MakeString("kick", Cache.DefaultVernWs);
			wfiset.CasesRC.Add(wf1);
			var andFilter = new AndFilter();
			var wsf = new WordSetFilter(wfiset);
			using (var mediator = new Mediator())
			{
				mediator.PropertyTable.SetProperty("cache", Cache);
				flp.Init(mediator, null);
				wsf.Cache = Cache;
				andFilter.Add(wsf);
				flp.Filters.Add(wsf);
				flp.OnAdjustFilterSelection(andFilter);
			}
		}
Ejemplo n.º 4
0
        public void OnAdjustFilterSelection()
        {
            var flp    = new WfiRecordFilterListProvider();
            var wfiset = Cache.ServiceLocator.GetInstance <IWfiWordSetFactory>().Create();

            Cache.LangProject.MorphologicalDataOA.TestSetsOC.Add(wfiset);
            var wf1 = Cache.ServiceLocator.GetInstance <IWfiWordformFactory>().Create();

            wf1.Form.VernacularDefaultWritingSystem = Cache.TsStrFactory.MakeString("kick", Cache.DefaultVernWs);
            wfiset.CasesRC.Add(wf1);
            var andFilter = new AndFilter();
            var wsf       = new WordSetFilter(wfiset);

            using (var mediator = new Mediator())
            {
                mediator.PropertyTable.SetProperty("cache", Cache);
                flp.Init(mediator, null);
                wsf.Cache = Cache;
                andFilter.Add(wsf);
                flp.Filters.Add(wsf);
                flp.OnAdjustFilterSelection(andFilter);
            }
        }
Ejemplo n.º 5
0
		/// <summary>
		/// reload the data items
		/// </summary>
		public override void ReLoad()
		{
			m_filters.Clear();

			foreach(IWfiWordSet words in m_cache.LangProject.MorphologicalDataOA.TestSetsOC)
			{
				WordSetFilter f = new WordSetFilter(words);
				m_filters.Add(f);
			}
		}