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