Esempio n. 1
0
		public void OnBinding_ChangeOfWhichItemIsInFocus(object sender, CurrentItemEventArgs e)
		{
			VerifyNotDisposed();
			ChangeOfWhichItemIsInFocus(sender, e);
		}
Esempio n. 2
0
		private void OnChangeOfWhichItemIsInFocus(object sender, CurrentItemEventArgs e)
		{
			VerifyNotDisposed();
			_currentItemInFocus = e;
			RefreshLexicalEntryPreview();
		}
Esempio n. 3
0
		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;
		}
Esempio n. 4
0
		private static bool IsCurrentField(MultiText text,
										   LanguageForm l,
										   CurrentItemEventArgs currentItem)
		{
			if (currentItem == null)
			{
				return false;
			}
			return (currentItem.DataTarget == text &&
					currentItem.WritingSystemId == l.WritingSystemId);
		}
Esempio n. 5
0
		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(" ");
		}
Esempio n. 6
0
		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();
		}
Esempio n. 7
0
		private static string RenderField(MultiText text, CurrentItemEventArgs currentItem)
		{
			return RenderField(text, currentItem, 0, null);
		}
Esempio n. 8
0
		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());
		}
Esempio n. 9
0
 public void OnBinding_ChangeOfWhichItemIsInFocus(object sender, CurrentItemEventArgs e)
 {
     VerifyNotDisposed();
     ChangeOfWhichItemIsInFocus(sender, e);
 }