SIL.FieldWorks.LexText.Controls.MSAPopupTreeManager.AddNewMsa C# (CSharp) Method

AddNewMsa() private method

private AddNewMsa ( ) : bool
return bool
		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;
		}