/// <summary> /// For each ws in ms, add to the set of strings under that key in results the words from that alternative. /// If the alternative contains more than maxWords words, skip it. /// </summary> /// <param name="ms"></param> /// <param name="results"></param> /// <param name="maxWords"></param> private void AddKeysFrom(IMultiAccessorBase ms, Dictionary <int, HashSet <string> > results, int maxWords) { foreach (var ws in ms.AvailableWritingSystemIds) { string wordSource = ms.get_String(ws).Text; if (wordSource == null) { continue; } var words = (from Match match in WordParsingRegex.Matches(wordSource) select match.Value).ToArray(); if (words.Length > maxWords) { continue; } HashSet <string> wordSet; if (!results.TryGetValue(ws, out wordSet)) { wordSet = new HashSet <string>(); results[ws] = wordSet; } foreach (var word in words) { wordSet.Add(word); } } }
public void WriteToLcmMultiString(IMultiAccessorBase dest, ILgWritingSystemFactory wsManager) { if (dest == null) { return; } HashSet <int> destWsIdsToClear = new HashSet <int>(dest.AvailableWritingSystemIds); foreach (KeyValuePair <string, LfStringField> kv in this) { int wsId = wsManager.GetWsFromStr(kv.Key); if (wsId == 0) { continue; // Skip any unidentified writing systems } string value = kv.Value.Value; ITsString tss = LfMerge.Core.DataConverters.ConvertMongoToLcmTsStrings.SpanStrToTsString(value, wsId, wsManager); dest.set_String(wsId, tss); destWsIdsToClear.Remove(wsId); } foreach (int wsId in destWsIdsToClear) { dest.set_String(wsId, string.Empty); } }
private LfMultiText ToMultiText(IMultiAccessorBase fdoMultiString) { if (fdoMultiString == null) { return(null); } return(LfMultiText.FromFdoMultiString(fdoMultiString, ServiceLocator.WritingSystemManager)); }
public static LfMultiText ToMultiText(IMultiAccessorBase LcmMultiString, ILgWritingSystemFactory LcmWritingSystemManager) { if ((LcmMultiString == null) || (LcmWritingSystemManager == null)) { return(null); } return(LfMultiText.FromLcmMultiString(LcmMultiString, LcmWritingSystemManager)); }
public static LfMultiText ToMultiText(IMultiAccessorBase fdoMultiString, ILgWritingSystemFactory fdoWritingSystemManager) { if ((fdoMultiString == null) || (fdoWritingSystemManager == null)) { return(null); } return(LfMultiText.FromFdoMultiString(fdoMultiString, fdoWritingSystemManager)); }
/// ---------------------------------------------------------------------------------------- /// <summary> /// Create a MultiUnicodeAccessor /// </summary> /// ---------------------------------------------------------------------------------------- protected override void CreateTestData() { m_text = Cache.ServiceLocator.GetInstance <ITextFactory>().Create(); //Cache.LangProject.TextsOC.Add(m_text); IStText stText = Cache.ServiceLocator.GetInstance <IStTextFactory>().Create(); m_text.ContentsOA = stText; m_multi = stText.Title; }
protected static void SetAllMultiAlternatives(IMultiAccessorBase multiField, LabeledMultiStringControl source) { var cws = source.NumberOfWritingSystems; for (var i = 0; i < cws; i++) { var curWs = source.Ws(i); multiField.set_String(curWs, source.Value(curWs)); } }
private static bool HasMsContentChanged(IMultiAccessorBase oldStrings, LabeledMultiStringControl msControl) { var cws = msControl.NumberOfWritingSystems; for (var i = 0; i < cws; i++) { var curWs = msControl.Ws(i); if (oldStrings.get_String(curWs).Text != msControl.Value(curWs).Text) { return(true); } } return(false); }
/// <summary> /// Store the results of any editing into the actual data. /// </summary> public void GetMultilingualCaptionValues(IMultiAccessorBase caption) { if (m_lmscCaption == null) { return; } var cws = m_lmscCaption.NumberOfWritingSystems; for (var i = 0; i < cws; i++) { var curWs = m_lmscCaption.Ws(i); caption.set_String(curWs, m_lmscCaption.Value(curWs)); } }
public static LfMultiText FromLcmMultiString(IMultiAccessorBase other, ILgWritingSystemFactory wsManager) { LfMultiText newInstance = new LfMultiText(); foreach (int wsid in other.AvailableWritingSystemIds) { string wsstr = wsManager.GetStrFromWs(wsid); ITsString value = other.get_String(wsid); string text = LfMerge.Core.DataConverters.ConvertLcmToMongoTsStrings.TextFromTsString(value, wsManager); LfStringField field = LfStringField.FromString(text); if (field != null) { newInstance.Add(wsstr, field); } } return(newInstance); }
protected static void LoadAllMultiAlternatives(IMultiAccessorBase multiField, LabeledMultiStringControl destination) { var cws = destination.NumberOfWritingSystems; for (var i = 0; i < cws; i++) { var curWs = destination.Ws(i); if (curWs <= 0) { continue; } int actualWs; ITsString tssStr; if (!multiField.TryWs(curWs, out actualWs, out tssStr)) { continue; } destination.SetValue(curWs, tssStr); } }
/// <summary> /// For each ws in ms, add to the set of strings under that key in results the words from that alternative. /// If the alternative contains more than maxWords words, skip it. /// </summary> /// <param name="ms"></param> /// <param name="results"></param> /// <param name="maxWords"></param> private void AddKeysFrom(IMultiAccessorBase ms, Dictionary<int, HashSet<string>> results, int maxWords) { foreach (var ws in ms.AvailableWritingSystemIds) { string wordSource = ms.get_String(ws).Text; if (wordSource == null) continue; var words = (from Match match in WordParsingRegex.Matches(wordSource) select match.Value).ToArray(); if (words.Length > maxWords || words.Length == 0) continue; HashSet<string> wordSet; if (!results.TryGetValue(ws, out wordSet)) { wordSet = new HashSet<string>(); results[ws] = wordSet; } foreach (var word in words.Where( word => !String.IsNullOrEmpty(word) && word.Length >= MIN_SEARCH_KEY_LENGTH)) { wordSet.Add(word); } } }
/// <summary> /// Set the multilingual caption into the dialog control. /// </summary> public void SetMultilingualCaptionValues(IMultiAccessorBase caption) { if (m_lmscCaption == null) { return; } var cws = m_lmscCaption.NumberOfWritingSystems; for (var i = 0; i < cws; i++) { var curWs = m_lmscCaption.Ws(i); if (curWs <= 0) { continue; } int actualWs; ITsString tssStr; if (!caption.TryWs(curWs, out actualWs, out tssStr)) { continue; } m_lmscCaption.SetValue(curWs, tssStr); } }
/// <summary> /// Store the results of any editing into the actual data. /// </summary> public void GetMultilingualCaptionValues(IMultiAccessorBase caption) { if (m_lmscCaption == null) return; var cws = m_lmscCaption.NumberOfWritingSystems; for (var i = 0; i < cws; i++) { var curWs = m_lmscCaption.Ws(i); caption.set_String(curWs, m_lmscCaption.Value(curWs)); } }
/// <summary> /// Set the multilingual caption into the dialog control. /// </summary> public void SetMultilingualCaptionValues(IMultiAccessorBase caption) { if (m_lmscCaption == null) return; var cws = m_lmscCaption.NumberOfWritingSystems; for (var i = 0; i < cws; i++) { var curWs = m_lmscCaption.Ws(i); if (curWs <= 0) continue; int actualWs; ITsString tssStr; if (!caption.TryWs(curWs, out actualWs, out tssStr)) continue; m_lmscCaption.SetValue(curWs, tssStr); } }
protected static void LoadAllMultiAlternatives(IMultiAccessorBase multiField, LabeledMultiStringControl destination) { var cws = destination.NumberOfWritingSystems; for (var i = 0; i < cws; i++) { var curWs = destination.Ws(i); if (curWs <= 0) continue; int actualWs; ITsString tssStr; if (!multiField.TryWs(curWs, out actualWs, out tssStr)) continue; destination.SetValue(curWs, tssStr); } }
/// ---------------------------------------------------------------------------------------- /// <summary> /// Create a MultiUnicodeAccessor /// </summary> /// ---------------------------------------------------------------------------------------- protected override void CreateTestData() { m_text = Cache.ServiceLocator.GetInstance<ITextFactory>().Create(); //Cache.LangProject.TextsOC.Add(m_text); IStText stText = Cache.ServiceLocator.GetInstance<IStTextFactory>().Create(); m_text.ContentsOA = stText; m_multi = stText.Title; }
/// ------------------------------------------------------------------------------------ /// <summary> /// Gets the inspector objects for the specified MultiString. /// </summary> /// ------------------------------------------------------------------------------------ private List<IInspectorObject> GetInspectorObjectsForMultiString(IMultiAccessorBase msa, IInspectorObject ioParent, int level) { List<IInspectorObject> list = new List<IInspectorObject>(); int ws; if (ObjectBrowser.m_virtualFlag == false) list = GetMultiStringInspectorObjects(msa, ioParent, level); else list = BaseGetInspectorObjects(msa, level); Dictionary<int, string> allStrings = new Dictionary<int, string>(); try { // Put this in a try/catch because VirtualStringAccessor // didn't implement StringCount when this was written. for (int i = 0; i < msa.StringCount; i++) { ITsString tss = msa.GetStringFromIndex(i, out ws); allStrings[ws] = tss.Text; } } catch { } if (ObjectBrowser.m_virtualFlag == true) { IInspectorObject io = CreateInspectorObject(allStrings, msa, ioParent, level); io.DisplayName = "AllStrings"; io.DisplayValue = FormatCountString(allStrings.Count); io.HasChildren = (allStrings.Count > 0); list.Insert(0, io); list.Sort((x, y) => x.DisplayName.CompareTo(y.DisplayName)); } return list; }
private static string BestAlternative(IMultiAccessorBase multi, int wsDefault) { var tss = multi.BestAnalysisVernacularAlternative; if (tss.Text == "***") tss = multi.get_String(wsDefault); return MakeSafeAndNormalizedAttribute(tss.Text); }
private static bool HasMsContentChanged(IMultiAccessorBase oldStrings, LabeledMultiStringControl msControl) { var cws = msControl.NumberOfWritingSystems; for (var i = 0; i < cws; i++) { var curWs = msControl.Ws(i); //if (oldStrings.get_String(curWs).Text != Cache.TsStrFactory.EmptyString(curWs).Text // && oldStrings.get_String(curWs).Text != msControl.Value(curWs).Text) // return true; if (oldStrings.get_String(curWs).Text != msControl.Value(curWs).Text) return true; } return false; }
private static XElement ExportBestVernacularOrAnalysis(IMultiAccessorBase multiString, string elementName, Icu.UNormalizationMode mode) { if (multiString == null) throw new ArgumentNullException("multiString"); if (String.IsNullOrEmpty(elementName)) throw new ArgumentNullException("elementName"); return new XElement(elementName, Normalize(multiString.BestVernacularAnalysisAlternative, mode)); }
private void WriteTrait(TextWriter w, string sName, IMultiAccessorBase multi, int wsWant) { string sValue = null; if (wsWant > 0) sValue = multi.get_String(wsWant).Text; if (String.IsNullOrEmpty(sValue)) sValue = multi.BestAnalysisVernacularAlternative.Text; if (sValue == "***" && wsWant <= 0) sValue = multi.get_String(m_wsEn).Text; WriteTrait(w, sName, sValue); }