/// <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); }
/// <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); } }
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); } }
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); } }
/// <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); } }