public void OnBinding_ChangeOfWhichItemIsInFocus(object sender, CurrentItemEventArgs e) { VerifyNotDisposed(); ChangeOfWhichItemIsInFocus(sender, e); }
private void OnChangeOfWhichItemIsInFocus(object sender, CurrentItemEventArgs e) { VerifyNotDisposed(); _currentItemInFocus = e; RefreshLexicalEntryPreview(); }
private static string RenderGhostedField(string property, CurrentItemEventArgs currentItem, int? number) { string rtf = string.Empty; if (currentItem != null && property == currentItem.PropertyName) { //REVIEW: is a ws switch needed for a blank? rtf += SwitchToWritingSystem(BasilProject.Project.WritingSystems.AnalysisWritingSystemDefault.Id); if (number != null) { rtf += number.ToString(); } rtf += RenderBlankPosition(); } return rtf; }
private static bool IsCurrentField(MultiText text, LanguageForm l, CurrentItemEventArgs currentItem) { if (currentItem == null) { return false; } return (currentItem.DataTarget == text && currentItem.WritingSystemId == l.WritingSystemId); }
private static void RenderForm(MultiText text, CurrentItemEventArgs currentItem, StringBuilder rtfBuilder, LanguageForm form, int sizeBoost) { if (IsCurrentField(text, form, currentItem)) { rtfBuilder.Append(@"\ul"); } rtfBuilder.Append(SwitchToWritingSystem(form.WritingSystemId, sizeBoost)); rtfBuilder.Append(form.Form); // + " "); if (IsCurrentField(text, form, currentItem)) { //rtfBuilder.Append(" "); //rtfBuilder.Append(Convert.ToChar(160)); rtfBuilder.Append(@"\ulnone "); //rtfBuilder.Append(Convert.ToChar(160)); } rtfBuilder.Append(" "); }
private static string RenderField(MultiText text, CurrentItemEventArgs currentItem, int sizeBoost, Field field) { StringBuilder rtfBuilder = new StringBuilder(); if (text != null) { if (text.Count == 0 && currentItem != null && text == currentItem.DataTarget) { rtfBuilder.Append(RenderBlankPosition()); } if (field == null) // show them all { foreach (LanguageForm l in text) { RenderForm(text, currentItem, rtfBuilder, l, sizeBoost); } } else //todo: show all those turned on for the field? { LanguageForm form = text.GetBestAlternative(field.WritingSystemIds); if (form != null) { RenderForm(text, currentItem, rtfBuilder, form, sizeBoost); } } } return rtfBuilder.ToString(); }
private static string RenderField(MultiText text, CurrentItemEventArgs currentItem) { return RenderField(text, currentItem, 0, null); }
public static string ToRtf(LexEntry entry, CurrentItemEventArgs currentItem, LexEntryRepository lexEntryRepository) { if (lexEntryRepository == null) { throw new ArgumentNullException("lexEntryRepository"); } if (entry == null) { return string.Empty; } StringBuilder rtf = new StringBuilder(); rtf.Append(@"{\rtf1\ansi\uc0\fs28 "); rtf.Append(MakeFontTable()); RenderHeadword(entry, rtf, lexEntryRepository); int senseNumber = 1; foreach (LexSense sense in entry.Senses) { //rtf.Append(SwitchToWritingSystem(BasilProject.Project.WritingSystems.AnalysisWritingSystemDefault.Id)); #if GlossMeaning if (entry.Senses.Count > 1 || (currentItem != null && currentItem.PropertyName == "Gloss")) #else if (entry.Senses.Count > 1 || (currentItem != null && currentItem.PropertyName == LexSense.WellKnownProperties.Definition)) #endif { rtf.Append(" " + senseNumber); } OptionRef posRef = sense.GetProperty<OptionRef>(LexSense.WellKnownProperties.PartOfSpeech); if (posRef != null) { OptionsList list = WeSayWordsProject.Project.GetOptionsList( LexSense.WellKnownProperties.PartOfSpeech); if (list != null) { Option posOption = list.GetOptionFromKey(posRef.Value); if (posOption != null) { Field posField = WeSayWordsProject.Project.GetFieldFromDefaultViewTemplate( LexSense.WellKnownProperties.PartOfSpeech); if (posField != null) { rtf.Append(@" \i "); rtf.Append(RenderField(posOption.Name, currentItem, 0, posField)); rtf.Append(@"\i0 "); } } } } #if GlossMeaning rtf.Append(" " + RenderField(sense.Gloss, currentItem)); #else rtf.Append(" " + RenderField(sense.Definition, currentItem)); #endif // rtf.Append(@"\i0 "); foreach (LexExampleSentence exampleSentence in sense.ExampleSentences) { rtf.Append(@" \i "); rtf.Append(RenderField(exampleSentence.Sentence, currentItem)); rtf.Append(@"\i0 "); rtf.Append(RenderField(exampleSentence.Translation, currentItem)); } rtf.Append(RenderGhostedField("Sentence", currentItem, null)); rtf.Append(RenderGhostedField("Translation", currentItem, null)); ++senseNumber; } #if GlossMeaning rtf.Append(RenderGhostedField("Gloss", currentItem, entry.Senses.Count + 1)); #else rtf.Append(RenderGhostedField(LexSense.WellKnownProperties.Definition, currentItem, entry.Senses.Count + 1)); #endif rtf.Append(@"\par}"); return Utf16ToRtfAnsi(rtf.ToString()); }
public void OnBinding_ChangeOfWhichItemIsInFocus(object sender, CurrentItemEventArgs e) { VerifyNotDisposed(); ChangeOfWhichItemIsInFocus(sender, e); }