/// <summary> /// Handle launching of the MSA editor. /// </summary> protected override void HandleChooser() { using (MsaCreatorDlg dlg = new MsaCreatorDlg()) { IMoMorphSynAnalysis originalMsa = m_obj as IMoMorphSynAnalysis; ILexEntry entry = originalMsa.Owner as ILexEntry; dlg.SetDlgInfo(m_cache, m_persistProvider, m_mediator, m_propertyTable, entry, SandboxGenericMSA.Create(originalMsa), originalMsa.Hvo, true, String.Format(LexEdStrings.ksEditX, Slice.Label)); if (dlg.ShowDialog(FindForm()) == DialogResult.OK) { SandboxGenericMSA sandboxMsa = dlg.SandboxMSA; if (!originalMsa.EqualsMsa(sandboxMsa)) { UndoableUnitOfWorkHelper.Do(LexEdStrings.ksUndoEditFunction, LexEdStrings.ksRedoEditFunction, entry, () => { originalMsa.UpdateOrReplace(sandboxMsa); }); } } } }
private bool EditExistingMsa() { 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 "Modify ..." 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 SandboxGenericMSA dummyMsa = SandboxGenericMSA.Create(m_sense.MorphoSyntaxAnalysisRA); using (MsaCreatorDlg dlg = new MsaCreatorDlg()) { dlg.SetDlgInfo(Cache, m_persistProvider, m_mediator, m_sense.Entry, dummyMsa, m_sense.MorphoSyntaxAnalysisRA.Hvo, true, m_sEditGramFunc); 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); }