Exemple #1
0
 public bool Equals(SearchResult p)
 {
     if (p == null)
     {
         return(false);
     }
     return(Traditional.Equals(p.Traditional) && PinyinNumbered.ToLower().Equals(p.PinyinNumbered.ToLower()));
 }
Exemple #2
0
        public int CompareTo(SearchResult other)
        {
            int pinyinCompare      = PinyinNumbered.CompareTo(other.PinyinNumbered);
            int traditionalCompare = Traditional.CompareTo(other.Traditional);

            if (pinyinCompare == 0)
            {
                return(traditionalCompare);
            }
            return(pinyinCompare);
        }
Exemple #3
0
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }
            SearchResult p = obj as SearchResult;

            if (p == null)
            {
                return(false);
            }

            return(Traditional.Equals(p.Traditional) && PinyinNumbered.ToLower().Equals(p.PinyinNumbered.ToLower()));
        }
 private void WorkBoPoMoFo_KeyPress(object sender, KeyPressEventArgs e)
 {
     switch (e.KeyChar)
     {
     case '\r':
     {
         IList <string> foundPin;
         WorkNumPinyin.Text = "";
         var bopoUsit = Traditional.TryGetBoPin(WorkZhuyin.Text, out foundPin);
         if (bopoUsit)
         {
             //if (FoundPin.Count == 1)
             {
                 WorkNumPinyin.Text = foundPin[0];
             }
         }
     }
     break;
     }
 }
        private void WorkPinyin_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar != '\r')
            {
                return;
            }
            IList <string> foundBo;

            WorkZhuyin.Text = "";
            var pinUsit = Traditional.TryGetPinBo(WorkNumPinyin.Text, out foundBo);

            if (!pinUsit)
            {
                return;
            }
            //if (FoundBo.Count == 1)
            {
                WorkZhuyin.Text = foundBo[0];
                SendKeys.Send("\t");
            }
        }
 public void Traditional_JoinAndConcatBrackets(string[] content)
 {
     Traditional.JoinAndConcatBrackets(content);
 }
        private void listPinyin_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (WorkTraditional.Text.Length == 0)
            {
                listNumPinyin.Items.Clear();
                listNumPinyin.Visible = false;

                listZhuyin.Items.Clear();
                listZhuyin.Visible = false;

                return;
            }

            _current = Cursor.Position;
            IList <string> checkBoPo;
            var            workPin = listNumPinyin.SelectedItem.ToString();

            var pinUsit = Traditional.TryGetPinBo(workPin, out checkBoPo);

            if (!pinUsit)
            {
                Status.Text = @"PinBo failed on: " + workPin;
                return;
            }

            string outCrit;
            var    critUsit = Traditional.TryGetBopoCrit(checkBoPo[0], out outCrit);

            if (!critUsit)
            {
                Status.Text = @"BopoCrit failed on: " + checkBoPo[0];
                return;
            }

            if (checkBoPo.Count >= 1)
            {
                WriteNumPinyin.Text = WriteNumPinyin.Text + listNumPinyin.SelectedItem + @" ";
                textBopo.Text       = checkBoPo[0];

                WorkNumPinyin.Text = "";

                WriteTraditional.Text += WorkTraditional.Text;

                IList <string> foundCrit;
                var            pincrit = Traditional.TryGetPinCrit(listNumPinyin.SelectedItem.ToString(), out foundCrit);

                if (!pincrit)
                {
                    Status.Text = @"PinCrit failed on: " + listNumPinyin.SelectedItem;
                    return;
                }

                WriteCritPinyin.Text = WriteCritPinyin.Text + foundCrit[0] + @" ";

                WriteZhuyin.Text   = WriteZhuyin.Text + checkBoPo[0] + @" ";
                WorkNumPinyin.Text = "";

                IList <string> foundSimp;
                var            charsimp = Traditional.TryGetCharSimp(WorkTraditional.Text, out foundSimp);

                if (!charsimp)
                {
                    Status.Text = @"CharSimp failed on: " + WorkTraditional.Text;
                    return;
                }

                WriteSimplified.Text = WriteSimplified.Text + foundSimp[0];

                listZhuyin.Items.Clear();
                listZhuyin.Visible = false;
                listNumPinyin.Items.Clear();
                listNumPinyin.Visible = false;
                //Status.Text = "";
                Cursor.Position = _current;

                try
                {
                    var chinChars = WorkTraditional.Text.ToCharArray();
                    var uniHex    = ExpandUnihex(chinChars);

                    using (var ceDictionary = new ChineseStudyDataContext(Properties.Settings.Default.ChineseStudyConnection))
                    {
                        var definitions = from ed in ceDictionary.CeDictFulls
                                          where ed.Traditional == WorkTraditional.Text
                                          where ed.BoPoMoFo == checkBoPo[0]
                                          select ed;

                        foreach (var definition in definitions)
                        {
                            textDefinition.Text = definition.English;
                            break;
                        }
                    }

                    WorkTraditional.Text = "";
                    using (var uniHan = new ChineseStudyDataContext(Properties.Settings.Default.ChineseStudyConnection))
                    {
                        var characters = from q in uniHan.UniHans
                                         where q.cp == uniHex
                                         select q;
                        try
                        {
                            foreach (var character in characters)
                            {
                                textCangjie.Text = character.kCangjie;
                                WriteCji.Text    = WriteCji.Text + textCangjie.Text + @" ";
                                break;
                            }
                        }
                        catch (System.Data.StrongTypingException ex)
                        {
                            textCangjie.Text = @"DBNull";
                            Status.Text      = ex.Message;
                        }
                    }
                }
                catch (System.Data.StrongTypingException ex)
                {
                    textDefinition.Text = @"OUTERex";
                    textCangjie.Text    = @"OUTERex";
                    Status.Text         = ex.Message;
                }
            }
            else
            {
                Status.Text     = @"Please select desired BoPoMoFo";
                WorkZhuyin.Text = "";
                listZhuyin.BeginUpdate();

                listZhuyin.Items.Clear();

                foreach (var t in checkBoPo)
                {
                    listZhuyin.Items.Add(t);
                }
                listZhuyin.EndUpdate();
                listZhuyin.Visible    = true;
                listNumPinyin.Visible = false;
            }
            //SendKeys.Send("\t");
        }
        private void WorkChinese_TextChanged(object sender, EventArgs e)
        {
            InputLanguage.CurrentInputLanguage = _myLanguages[Properties.Settings.Default.Studying];
            WorkTraditional.ImeMode            = ImeMode.On;

            IList <string> foundPin;
            IList <string> foundBo;

            if ((WorkTraditional.Text == "") || (WorkTraditional.Text == @" "))
            {
                Variables.InputsBopo = null;
                WorkTraditional.Text = "";
                return;
            }

            if ((Variables.InputsBopo != null) && (Variables.InputsBopo == "xxxx"))
            {
                Variables.InputsBopo = null;
                textBopo.Text        = "";
            }

            var pinUsit = Traditional.TryGetCharPin(WorkTraditional.Text, out foundPin);

            if (!pinUsit)
            {
                Status.Text          = @"CharPin failed on: " + WorkTraditional.Text;
                WorkTraditional.Text = "";
                textBopo.Text        = "";
                return;
            }

            var boUsit = Traditional.TryGetCharBo(WorkTraditional.Text, out foundBo);

            if (!boUsit)
            {
                Status.Text          = @"CharBo failed on: " + WorkTraditional.Text;
                WorkTraditional.Text = "";
                textBopo.Text        = "";
                return;
            }

            var boCount  = foundBo.Count;
            var pinCount = foundPin.Count;

            if ((Variables.InputsBopo != null) && (foundPin.Count > 1) && (foundBo.Count > 1))
            {
                var working = Variables.InputsBopo;
                textBopo.Text = "";

                for (var j = 0; j <= 3; j++)
                {
                    if (working.Substring(j, 1) != "x")
                    {
                        textBopo.Text += working.Substring(j, 1);
                    }
                }


                for (var i = 0; i < foundBo.Count; i++)
                {
                    if (textBopo.Text != foundBo[i])
                    {
                        continue;
                    }
                    foundBo[0] = foundBo[i];
                    boCount    = 1;

                    var pin1 = Traditional.TryGetBoPin(textBopo.Text, out foundPin);

                    if (!pin1)
                    {
                        Status.Text          = @"BoPin failed on: " + textBopo.Text;
                        WorkTraditional.Text = "";
                        textBopo.Text        = "";
                        return;
                    }

                    pinCount      = 1;
                    textBopo.Text = "";
                    break;
                }
            }

            if ((pinCount == 1) && (boCount == 1))
            {
                textBopo.Text          = foundBo[0];
                WriteZhuyin.Text      += foundBo[0];
                WriteZhuyin.Text      += @" ";
                WorkZhuyin.Text        = "";
                WriteTraditional.Text += WorkTraditional.Text;

                WriteNumPinyin.Text = WriteNumPinyin.Text + foundPin[0] + @" ";
                WorkNumPinyin.Text  = "";

                var chinChars = WorkTraditional.Text.ToCharArray();
                var uniHex    = ExpandUnihex(chinChars);

                using (var uniHan = new ChineseStudyDataContext(Properties.Settings.Default.ChineseStudyConnection))
                {
                    var characters = from q in uniHan.UniHans
                                     where q.cp == uniHex
                                     select q;

                    try
                    {
                        foreach (var character in characters)
                        {
                            textCangjie.Text = character.kCangjie;
                            WriteCji.Text    = WriteCji.Text + textCangjie.Text + @" ";

                            textDefinition.Text = character.kDefinition;
                            break;
                        }
                    }
                    catch (System.Data.StrongTypingException ex)
                    {
                        textCangjie.Text = @"DBNull";
                        Status.Text      = ex.Message;
                    }
                }

                IList <string> foundCrit;
                var            critUsit = Traditional.TryGetPinCrit(foundPin[0], out foundCrit);

                if (!critUsit)
                {
                    Status.Text          = @"PinCrit failed on: " + foundPin[0];
                    WorkTraditional.Text = "";
                    textBopo.Text        = "";
                    return;
                }

                IList <string> foundSimp;
                var            simpUsit = Traditional.TryGetCharSimp(WorkTraditional.Text, out foundSimp);

                if (!simpUsit)
                {
                    Status.Text          = @"CharSimp failed on: " + WorkTraditional.Text;
                    WorkTraditional.Text = "";
                    textBopo.Text        = "";
                    return;
                }


                WriteCritPinyin.Text = WriteCritPinyin.Text + foundCrit[0] + @" ";
                WriteSimplified.Text = WriteSimplified.Text + foundSimp[0];

                listZhuyin.Items.Clear();
                listZhuyin.Visible = false;
                listNumPinyin.Items.Clear();
                listNumPinyin.Visible = false;

                //using (var ceDictionary = new ChineseStudyDataContext(Properties.Settings.Default.ChineseStudyConnection))
                //{
                //    var definitions = from ed in ceDictionary.CeDictFulls
                //                        where ed.Traditional == WorkTraditional.Text
                //                        where ed.BoPoMoFo == foundBo[0]
                //                        select ed;

                //    try
                //    {
                //        foreach (var definition in definitions)
                //        {
                //            textDefinition.Text = definition.English;
                //            break;
                //        }
                //    }
                //    catch (System.Data.StrongTypingException eng)
                //    {
                //        Status.Text = eng.Message;
                //        textDefinition.Text = @"DBNull";
                //    }
                //}

                WorkTraditional.Text = "";

                return;
            }

            listNumPinyin.BeginUpdate();
            listNumPinyin.Items.Clear();

            foreach (var t in foundPin)
            {
                listNumPinyin.Items.Add(t);
            }

            listNumPinyin.EndUpdate();
            listNumPinyin.Visible = true;



            listZhuyin.BeginUpdate();
            listZhuyin.Items.Clear();

            foreach (var t in foundBo)
            {
                listZhuyin.Items.Add(t);
            }

            listZhuyin.EndUpdate();
            listZhuyin.Visible = true;
        }
Exemple #9
0
        public override void Join(string[] array, string expectedResult)
        {
            var actualResult = Traditional.JoinAndConcatBrackets(array);

            Assert.Equal(expectedResult, actualResult);
        }
Exemple #10
0
 public override int GetHashCode()
 {
     return(Traditional.GetHashCode() ^ PinyinNumbered.GetHashCode());
 }
Exemple #11
0
        public int CompareTo(Word other)
        {
            int diff = Hanzi.CompareTo(other.Hanzi);

            return(diff != 0 ? diff : Traditional.CompareTo(other.Traditional));
        }