Пример #1
0
 /// <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);
                 });
             }
         }
     }
 }
Пример #2
0
        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);
        }