private bool CheckForStemDataLoss(IMoStemAllomorph stem, List<IMoMorphSynAnalysis> rgmsaStem)
{
bool fLoseStemName = stem.StemNameRA != null;
bool fLoseGramInfo = false;
for (int i = 0; i < rgmsaStem.Count; ++i)
{
var msa = rgmsaStem[i] as IMoStemMsa;
if (msa != null &&
(msa.FromPartsOfSpeechRC.Count > 0 ||
msa.InflectionClassRA != null ||
msa.ProdRestrictRC.Count > 0 ||
msa.StratumRA != null ||
msa.MsFeaturesOA != null))
{
fLoseGramInfo = true;
break;
}
}
if (fLoseStemName || fLoseGramInfo)
{
string sMsg;
if (fLoseStemName && fLoseGramInfo)
sMsg = m_mediator.StringTbl.GetStringWithXPath("ChangeMorphTypeLoseStemNameGramInfo", m_ksPath);
else if (fLoseStemName)
sMsg = m_mediator.StringTbl.GetStringWithXPath("ChangeMorphTypeLoseStemName", m_ksPath);
else
sMsg = m_mediator.StringTbl.GetStringWithXPath("ChangeMorphTypeLoseGramInfo", m_ksPath);
string sCaption = m_mediator.StringTbl.GetStringWithXPath("ChangeLexemeMorphTypeCaption", m_ksPath);
DialogResult result = MessageBox.Show(sMsg, sCaption,
MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.No)
{
return true;
}
}
return false;
}