Example #1
0
        private static void AddVariantTypeGlossInfo(TsIncStrBldr sb, IWritingSystem wsGloss, IList <IMultiUnicode> multiUnicodeAccessors, IWritingSystem wsUser)
        {
            const string sSeriesSeparator = kDefaultSeriesSeparatorLexEntryTypeReverseAbbr;
            var          fBeginSeparator  = true;

            foreach (var multiUnicodeAccessor in multiUnicodeAccessors)
            {
                int wsActual2;
                var tssVariantTypeInfo = multiUnicodeAccessor.GetAlternativeOrBestTss(wsGloss.Handle, out wsActual2);
                // just concatenate them together separated by comma.
                if (tssVariantTypeInfo == null || tssVariantTypeInfo.Length <= 0)
                {
                    continue;
                }
                if (!fBeginSeparator)
                {
                    sb.AppendTsString(TsStringUtils.MakeTss(sSeriesSeparator, wsUser.Handle));
                }
                sb.AppendTsString((tssVariantTypeInfo));
                fBeginSeparator = false;
            }

            // Handle the special case where no reverse abbr was found.
            if (fBeginSeparator && multiUnicodeAccessors.Count > 0)
            {
                sb.AppendTsString(multiUnicodeAccessors.ElementAt(0).NotFoundTss);
            }
        }
 private static void InsertHomographNumber(TsIncStrBldr tisb, int nHomograph, HomographConfiguration hc,
                                           HomographConfiguration.HeadwordVariant hv)
 {
     if (nHomograph > 0 && hc.ShowHomographNumber(hv))
     {
         tisb.SetStrPropValue((int)FwTextPropType.ktptNamedStyle, HomographConfiguration.ksHomographNumberStyle);
         tisb.Append(nHomograph.ToString());
         tisb.SetStrPropValue((int)FwTextPropType.ktptNamedStyle, null);
     }
 }
Example #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sb"></param>
        /// <param name="glossAffixAccessor">GlossPrepend or GlossAppend</param>
        /// <param name="wsGloss"></param>
        /// <param name="wsUser"></param>
        /// <returns></returns>
        public static ITsString AddTssGlossAffix(TsIncStrBldr sb, IMultiUnicode glossAffixAccessor,
                                                 IWritingSystem wsGloss, IWritingSystem wsUser)
        {
            if (sb == null)
            {
                sb = TsIncStrBldrClass.Create();
            }
            int       wsActual1;
            ITsString tssGlossPrepend = glossAffixAccessor.GetAlternativeOrBestTss(wsGloss.Handle, out wsActual1);

            if (tssGlossPrepend != null && tssGlossPrepend.Length != 0)
            {
                bool isPrepend = (glossAffixAccessor.Flid == LexEntryInflTypeTags.kflidGlossPrepend);
                AppendGlossAffix(sb, tssGlossPrepend, isPrepend, kDefaultSeparatorLexEntryInflTypeGlossAffix, wsUser);
            }
            return(tssGlossPrepend);
        }
Example #4
0
        private static void AddGloss(TsIncStrBldr sb, IMultiStringAccessor gloss, IWritingSystem wsGloss)
        {
            ITsString tssGloss = GetTssGloss(gloss, wsGloss);

            sb.AppendTsString(tssGloss);
        }