SIL.FieldWorks.IText.ConcordanceControl.SearchForMatches C# (CSharp) Method

SearchForMatches() protected method

protected SearchForMatches ( ) : List
return List
		protected override List<IParaFragment> SearchForMatches()
		{
			if (m_fObjectConcorded)
				return FindMatchingItems();
			List<IParaFragment> occurrences = null;
#if WANTPORT // FWR-2830 we should display progress somehow...
			bool fCreatedProgressState = false;
#endif
			using (new WaitCursor(this))
			{
#if WANTPORT // FWR-2830 ConcordanceItemsVh no longer exists, we should display progress somehow though.
				if (ConcordanceItemsVh.Progress is NullProgressState)
				{
					ConcordanceItemsVh.Progress = FwXWindow.CreateMilestoneProgressState(m_mediator);
					fCreatedProgressState = true;
				}
#endif
				string sMatch = m_tbSearchText.Visible ? m_tbSearchText.Text.Trim() : m_cbSearchText.SelectedItem.ToString();
				if (sMatch.Length == 0)
					return new List<IParaFragment>();
				if (sMatch.Length > 1000)
				{
					sMatch = sMatch.Substring(0, 1000);
					MessageBox.Show(ITextStrings.ksMatchStringTooLong, ITextStrings.ksWarning);
					m_tbSearchText.Text = sMatch;
				}
				int ws = ((IWritingSystem) m_cbWritingSystem.SelectedItem).Handle;

				ConcordLine conc = (ConcordLine)m_cbLine.SelectedItem;
				switch (conc.Line)
				{
					case ConcordanceLines.kBaseline:
						occurrences = UpdateConcordanceForBaseline(ws);
						break;
					case ConcordanceLines.kWord:
						occurrences = UpdateConcordanceForWord(ws);
						break;
					case ConcordanceLines.kMorphemes:
						occurrences = UpdateConcordanceForMorphemes(ws);
						break;
					case ConcordanceLines.kLexEntry:
						occurrences = UpdateConcordanceForLexEntry(ws);
						break;
					case ConcordanceLines.kLexGloss:
						occurrences = UpdateConcordanceForLexGloss(ws);
						break;
					case ConcordanceLines.kWordGloss:
						occurrences = UpdateConcordanceForWordGloss(ws);
						break;
					case ConcordanceLines.kFreeTranslation:
						occurrences = UpdateConcordanceForFreeTranslation(ws);
						break;
					case ConcordanceLines.kLiteralTranslation:
						occurrences = UpdateConcordanceForLiteralTranslation(ws);
						break;
					case ConcordanceLines.kNote:
						occurrences = UpdateConcordanceForNote(ws);
						break;
					case ConcordanceLines.kGramCategory:
						occurrences = UpdateConcordanceForGramInfo(ws);
						break;
					case ConcordanceLines.kWordCategory:
						occurrences = UpdateConcordanceForWordCategory(ws);
						break;
					case ConcordanceLines.kTags:
						occurrences = UpdateConcordanceForTag(ws);
						break;
					default:
						occurrences = new List<IParaFragment>();
						break;
				}
			}
#if WANTPORT // FWR-2830 clean up after whatever we now do to get a progress state.
			if (fCreatedProgressState)
			{
				ConcordanceItemsVh.Progress.Dispose();
				ConcordanceItemsVh.Progress = null;
			}
#endif
			return occurrences;
		}