private bool AddNewMsa()
{
PopupTree pt = GetPopupTree();
// Force the PopupTree to Hide() to trigger popupTree_PopupTreeClosed().
// This will effectively revert the list selection to a previous confirmed state.
// Whatever happens below, we don't want to actually leave the "Specify ..." node selected!
// This is at least required if the user selects "Cancel" from the dialog below.
if (m_sense.MorphoSyntaxAnalysisRA != null)
pt.SelectObj(m_sense.MorphoSyntaxAnalysisRA.Hvo);
#if __MonoCS__
// If Popup tree is shown whilest the dialog is shown, the first click on the dialog is consumed by the
// Popup tree, (and closes it down). On .NET the PopupTree appears to be automatically closed.
pt.HideForm();
#endif
using (MsaCreatorDlg dlg = new MsaCreatorDlg())
{
SandboxGenericMSA dummyMsa = new SandboxGenericMSA();
dummyMsa.MsaType = m_sense.GetDesiredMsaType();
dlg.SetDlgInfo(Cache, m_persistProvider, m_mediator, m_sense.Entry, dummyMsa, 0, false, null);
if (dlg.ShowDialog(ParentForm) == DialogResult.OK)
{
Cache.DomainDataByFlid.BeginUndoTask(String.Format(LexTextControls.ksUndoSetX, FieldName),
String.Format(LexTextControls.ksRedoSetX, FieldName));
m_sense.SandboxMSA = dlg.SandboxMSA;
Cache.DomainDataByFlid.EndUndoTask();
LoadPopupTree(m_sense.MorphoSyntaxAnalysisRA.Hvo);
return true;
}
}
return false;
}