Ejemplo n.º 1
0
        /// <summary>
        /// This method is called when we are creating a new lexical relation slice.
        /// If the user selects an item it's hvo is returned.
        /// Otherwise 0 is returned and the lexical relation should not be created.
        /// </summary>
        /// <param name="lrt"></param>
        /// <returns></returns>
        private int GetRootObjectHvo(ILexRefType lrt)
        {
            int            hvoFirst = 0;
            BaseEntryGoDlg dlg      = null;

            switch ((LexRefType.MappingTypes)lrt.MappingType)
            {
            case LexRefType.MappingTypes.kmtSenseAsymmetricPair:
            case LexRefType.MappingTypes.kmtSenseTree:
                dlg = new LinkEntryOrSenseDlg();
                (dlg as LinkEntryOrSenseDlg).SelectSensesOnly = true;
                break;

            case LexRefType.MappingTypes.kmtEntryAsymmetricPair:
            case LexRefType.MappingTypes.kmtEntryTree:
                dlg = new GoDlg();
                break;

            case LexRefType.MappingTypes.kmtEntryOrSenseAsymmetricPair:
            case LexRefType.MappingTypes.kmtEntryOrSenseTree:
                dlg = new LinkEntryOrSenseDlg();
                break;

            default:
                Debug.Assert(lrt.MappingType == (int)LexRefType.MappingTypes.kmtSenseAsymmetricPair ||
                             lrt.MappingType == (int)LexRefType.MappingTypes.kmtSenseTree);
                return(0);
            }
            Debug.Assert(dlg != null);
            WindowParams wp = new WindowParams();

            //wp.m_title = String.Format(LexEdStrings.ksIdentifyXEntry,
            //   lrt.Name.AnalysisDefaultWritingSystem);
            wp.m_title = String.Format(LexEdStrings.ksIdentifyXEntry,
                                       lrt.ReverseName.BestAnalysisAlternative.Text);
            wp.m_label = LexEdStrings.ksFind_;
            //wp.m_btnText = LexEdStrings.ks_Link;
            wp.m_btnText = LexEdStrings.ks_Add;
            dlg.SetDlgInfo(m_cache, wp, Mediator);
            dlg.SetHelpTopic("khtpChooseLexicalRelationAdd");
            if (dlg.ShowDialog(FindForm()) == DialogResult.OK)
            {
                hvoFirst = dlg.SelectedID;
            }
            dlg.Dispose();
            return(hvoFirst);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// This method is called when we are creating a new lexical relation slice.
        /// If the user selects an item it's hvo is returned.
        /// Otherwise 0 is returned and the lexical relation should not be created.
        /// </summary>
        /// <param name="lrt"></param>
        /// <returns></returns>
        private int GetChildObjectHvo(ILexRefType lrt)
        {
            int            hvoFirst = 0;
            BaseEntryGoDlg dlg      = null;
            string         sTitle   = "";

            switch ((LexRefType.MappingTypes)lrt.MappingType)
            {
            case LexRefType.MappingTypes.kmtEntryOrSensePair:
            case LexRefType.MappingTypes.kmtEntryOrSenseAsymmetricPair:                     // Entry or sense pair with different Forward/Reverse
                dlg = new LinkEntryOrSenseDlg();
                (dlg as LinkEntryOrSenseDlg).SelectSensesOnly = false;
                sTitle = String.Format(LexEdStrings.ksIdentifyXLexEntryOrSense,
                                       lrt.Name.BestAnalysisAlternative.Text);
                break;

            case LexRefType.MappingTypes.kmtSenseCollection:
            case LexRefType.MappingTypes.kmtSensePair:
            case LexRefType.MappingTypes.kmtSenseAsymmetricPair:                     // Sense pair with different Forward/Reverse names
            case LexRefType.MappingTypes.kmtSenseSequence:
            case LexRefType.MappingTypes.kmtSenseTree:
                dlg = new LinkEntryOrSenseDlg();
                (dlg as LinkEntryOrSenseDlg).SelectSensesOnly = true;
                sTitle = String.Format(LexEdStrings.ksIdentifyXSense,
                                       lrt.Name.BestAnalysisAlternative.Text);
                break;

            case LexRefType.MappingTypes.kmtEntryCollection:
            case LexRefType.MappingTypes.kmtEntryPair:
            case LexRefType.MappingTypes.kmtEntryAsymmetricPair:                     // Entry pair with different Forward/Reverse names
            case LexRefType.MappingTypes.kmtEntrySequence:
            case LexRefType.MappingTypes.kmtEntryTree:
                dlg    = new GoDlg();
                sTitle = String.Format(LexEdStrings.ksIdentifyXLexEntry,
                                       lrt.Name.BestAnalysisAlternative.Text);
                break;

            case LexRefType.MappingTypes.kmtEntryOrSenseCollection:
            case LexRefType.MappingTypes.kmtEntryOrSenseSequence:
            case LexRefType.MappingTypes.kmtEntryOrSenseTree:
                dlg    = new LinkEntryOrSenseDlg();
                sTitle = String.Format(LexEdStrings.ksIdentifyXLexEntryOrSense,
                                       lrt.Name.BestAnalysisAlternative.Text);
                break;

            default:
                Debug.Assert(lrt.MappingType == (int)LexRefType.MappingTypes.kmtSenseAsymmetricPair ||
                             lrt.MappingType == (int)LexRefType.MappingTypes.kmtSenseTree);
                return(0);
            }
            Debug.Assert(dlg != null);
            WindowParams wp = new WindowParams();

            wp.m_title   = sTitle;
            wp.m_label   = LexEdStrings.ksFind_;
            wp.m_btnText = LexEdStrings.ks_Add;

            // Don't display the current entry in the list of matching entries.  See LT-2611.
            ICmObject objEntry = this.Object;

            while (objEntry.ClassID == LexSense.kclsidLexSense)
            {
                objEntry = CmObject.CreateFromDBObject(m_cache, objEntry.OwnerHVO);
            }
            Debug.Assert(objEntry.ClassID == LexEntry.kclsidLexEntry);
            dlg.StartingEntry = objEntry as ILexEntry;

            dlg.SetDlgInfo(m_cache, wp, Mediator);
            dlg.SetHelpTopic("khtpChooseLexicalRelationAdd");
            if (dlg.ShowDialog(FindForm()) == DialogResult.OK)
            {
                hvoFirst = dlg.SelectedID;
            }
            dlg.Dispose();
            return(hvoFirst);
        }