Beispiel #1
0
 /// <summary>
 /// Configures the dialog depending on the target vocabulary part.
 /// </summary>
 /// <param name="vocabulary">Target vocabulary part.</param>
 public void ConfigureEnvironment(ActiveVocabulary vocabulary)
 {
     this.lblNewEntryEntryPronounciation.Enabled = vocabulary == ActiveVocabulary.FOREIGN_TO_NATIVE;
     this.txbNewEntryEntryPronounciation.Enabled = vocabulary == ActiveVocabulary.FOREIGN_TO_NATIVE;
     this.lblNewEntryPronounciations.Enabled     = vocabulary == ActiveVocabulary.NATIVE_TO_FOREIGN;
     this.txbNewEntryPronounciations.Enabled     = vocabulary == ActiveVocabulary.NATIVE_TO_FOREIGN;
 }
Beispiel #2
0
        /// <summary>
        /// Dumps the entries of the selected vocabulary part to the specified XML project file handler.
        /// </summary>
        /// <param name="writer">Target project file handler.</param>
        /// <param name="target">Vocabulary part to dump the entries of.</param>
        private void WriteEntrySet(XmlTextWriter writer, ActiveVocabulary target)
        {
            EntrySet entries;

            if (target == ActiveVocabulary.FOREIGN_TO_NATIVE)
            {
                writer.WriteStartElement("ForeignEntries");
                entries = this.ForeignEntries;
            }
            else
            {
                writer.WriteStartElement("NativeEntries");
                entries = this.NativeEntries;
            }

            foreach (Entry entry in entries.AllEntries.Values)
            {
                writer.WriteStartElement("Entry");
                writer.WriteStartElement("Word");
                writer.WriteStartElement("Meaning");
                writer.WriteString(entry.Meaning.Meaning);
                writer.WriteEndElement();
                writer.WriteStartElement("Pronounciation");
                writer.WriteString(entry.Meaning.HasPronounciation() ? entry.Meaning.Pronounciation : "");
                writer.WriteEndElement();
                writer.WriteEndElement();
                writer.WriteStartElement("Translations");

                foreach (Word translation in entry.Translations.WholeVocabulary.Values)
                {
                    writer.WriteStartElement("Word");
                    writer.WriteStartElement("Meaning");
                    writer.WriteString(translation.Meaning);
                    writer.WriteEndElement();
                    writer.WriteStartElement("Pronounciation");
                    writer.WriteString(translation.HasPronounciation() ? translation.Pronounciation : "");
                    writer.WriteEndElement();
                    writer.WriteEndElement();
                }

                writer.WriteEndElement();
                writer.WriteStartElement("Notes");
                writer.WriteString(entry.Notes ?? "");
                writer.WriteEndElement();
                writer.WriteEndElement();
            }

            writer.WriteEndElement();
        }
Beispiel #3
0
        /// <summary>
        /// Loads the entries of the selected vocabulary part from the specified XML project file handler.
        /// </summary>
        /// <param name="vocabulary">Source project file handler.</param>
        /// <param name="target">Vocabulary part to fill.</param>
        private void LoadEntrySet(XElement vocabulary, ActiveVocabulary target)
        {
            EntrySet set = null;
            IEnumerable <XElement> entries = null;

            switch (target)
            {
            case ActiveVocabulary.FOREIGN_TO_NATIVE:
                set     = this.ForeignEntries;
                entries = from entry in vocabulary.Elements("ForeignEntries").Elements("Entry") select entry;
                break;

            case ActiveVocabulary.NATIVE_TO_FOREIGN:
                set     = this.NativeEntries;
                entries = from entry in vocabulary.Elements("NativeEntries").Elements("Entry") select entry;
                break;
            }

            foreach (XElement entry in entries)
            {
                List <string> translations    = new List <string>(),
                              pronounciations = new List <string>();

                IEnumerable <XElement> words = from node in entry.Elements("Translations").Elements("Word") select node;

                foreach (XElement word in words)
                {
                    translations.Add((string)(from item in word.Elements("Meaning") select item).First());
                    pronounciations.Add((string)(from item in word.Elements("Pronounciation") select item).First());
                }

                XElement meaning = (from node in entry.Elements("Word") select node).First(),
                         notes   = (from node in entry.Elements("Notes") select node).First();

                switch (target)
                {
                case ActiveVocabulary.FOREIGN_TO_NATIVE:
                    set.AddEntry(new Entry((string)(from node in meaning.Elements("Meaning") select node).First(), (string)(from node in meaning.Elements("Pronounciation") select node).First(), translations.ToArray(), pronounciations.ToArray(), ((string)notes).Split('\n'), this.NativeEntries.Language));
                    break;

                case ActiveVocabulary.NATIVE_TO_FOREIGN:
                    set.AddEntry(new Entry((string)(from node in meaning.Elements("Meaning") select node).First(), (string)(from node in meaning.Elements("Pronounciation") select node).First(), translations.ToArray(), pronounciations.ToArray(), ((string)notes).Split('\n'), this.ForeignEntries.Language));
                    break;
                }
            }
        }