Example #1
0
        internal bool FindNext(FindField field, string str)
        {
            if (_words.Count == 0)
            {
                ResetSearch();
                return(false);
            }
            if (_selectedWords.Count == 0)
            {
                _startWord = _wordsView.Cast <WordViewModel>().Last();
            }
            else if (_startWord == null)
            {
                _startWord = _selectedWords[0];
            }
            else if (_selectedWords.Contains(_startWord))
            {
                ResetSearch();
                return(false);
            }

            List <WordViewModel> words   = _wordsView.Cast <WordViewModel>().ToList();
            WordViewModel        curWord = _selectedWords.Count == 0 ? _startWord : _selectedWords[0];
            int wordIndex = words.IndexOf(curWord);

            do
            {
                wordIndex = (wordIndex + 1) % words.Count;
                curWord   = words[wordIndex];
                bool match = false;
                switch (field)
                {
                case FindField.Form:
                    match = curWord.StrRep.Contains(str);
                    break;

                case FindField.Gloss:
                    match = curWord.Meaning.Gloss.Contains(str);
                    break;
                }
                if (match)
                {
                    using (_selectedWordsMonitor.Enter())
                    {
                        _selectedWords.Clear();
                        _selectedWords.Add(curWord);
                    }
                    return(true);
                }
            }while (_startWord != curWord);
            ResetSearch();
            return(false);
        }
Example #2
0
        void ReleaseDesignerOutlets()
        {
            if (FindField != null)
            {
                FindField.Dispose();
                FindField = null;
            }

            if (ProductTableView != null)
            {
                ProductTableView.Dispose();
                ProductTableView = null;
            }
        }
        //вывод погоды из комбобокса
        private void comboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var selectedItem = comboBox.SelectedItem as TextBlock;

            if (selectedItem != null)
            {
                OutputByAsync((int)selectedItem.Tag);

                FindField.Clear();
                comboBox.Visibility = Visibility.Collapsed;
                label.Visibility    = Visibility.Collapsed;
                DataCity.Visibility = Visibility.Visible;
                imgTxbl.Visibility  = Visibility.Collapsed;
            }
        }
Example #4
0
        internal bool FindNext(FindField field, string str, bool wrap, bool startAtBeginning)
        {
            if (_wordPairs.Count == 0)
            {
                if (wrap)
                {
                    ResetSearch();
                }
                return(false);
            }
            if (!startAtBeginning && _selectedWordPairs.Count == 0)
            {
                _startWordPair = _wordPairsView.Cast <WordPairViewModel>().Last();
            }
            else if (_startWordPair == null)
            {
                _startWordPair = _selectedWordPairs[0];
            }
            else if (!startAtBeginning && _selectedWordPairs.Contains(_startWordPair))
            {
                if (wrap)
                {
                    ResetSearch();
                }
                return(false);
            }

            List <WordPairViewModel> wordPairs = _wordPairsView.Cast <WordPairViewModel>().ToList();
            WordPairViewModel        curWordPair;

            if (startAtBeginning)
            {
                curWordPair = wordPairs[wordPairs.Count - 1];
                if (_startWordPair == curWordPair)
                {
                    ResetSearch();
                    return(false);
                }
            }
            else
            {
                curWordPair = _selectedWordPairs.Count == 0 ? _startWordPair : _selectedWordPairs[0];
            }
            int wordPairIndex = wordPairs.IndexOf(curWordPair);

            do
            {
                wordPairIndex++;
                if (wordPairIndex == wordPairs.Count)
                {
                    if (!wrap && !startAtBeginning && _startWordPair != curWordPair)
                    {
                        return(false);
                    }
                    wordPairIndex = 0;
                }
                curWordPair = wordPairs[wordPairIndex];
                bool match = false;
                switch (field)
                {
                case FindField.Form:
                    match = curWordPair.DomainWordPair.Word1.StrRep.Contains(str) ||
                            curWordPair.DomainWordPair.Word2.StrRep.Contains(str);
                    break;

                case FindField.Gloss:
                    match = curWordPair.Meaning.Gloss.Contains(str);
                    break;
                }
                if (match)
                {
                    using (_selectedWordPairsMonitor.Enter())
                    {
                        _selectedWordPairs.Clear();
                        _selectedWordPairs.Add(curWordPair);
                    }
                    return(true);
                }
            }while (_startWordPair != curWordPair);
            if (wrap)
            {
                ResetSearch();
            }
            return(false);
        }
Example #5
0
        internal bool FindNext(FindField field, string str)
        {
            if (_words.Count == 0)
            {
                ResetSearch();
                return false;
            }
            if (_selectedWords.Count == 0)
            {
                _startWord = _wordsView.Cast<WordViewModel>().Last();
            }
            else if (_startWord == null)
            {
                _startWord = _selectedWords[0];
            }
            else if (_selectedWords.Contains(_startWord))
            {
                ResetSearch();
                return false;
            }

            List<WordViewModel> words = _wordsView.Cast<WordViewModel>().ToList();
            WordViewModel curWord = _selectedWords.Count == 0 ? _startWord : _selectedWords[0];
            int wordIndex = words.IndexOf(curWord);
            do
            {
                wordIndex = (wordIndex + 1) % words.Count;
                curWord = words[wordIndex];
                bool match = false;
                switch (field)
                {
                    case FindField.Form:
                        match = curWord.StrRep.Contains(str);
                        break;

                    case FindField.Gloss:
                        match = curWord.Meaning.Gloss.Contains(str);
                        break;
                }
                if (match)
                {
                    using (_selectedWordsMonitor.Enter())
                    {
                        _selectedWords.Clear();
                        _selectedWords.Add(curWord);
                    }
                    return true;
                }
            }
            while (_startWord != curWord);
            ResetSearch();
            return false;
        }
Example #6
0
        internal bool FindNext(FindField field, string str, bool wrap, bool startAtBeginning)
        {
            if (_wordPairs.Count == 0)
            {
                if (wrap)
                    ResetSearch();
                return false;
            }
            if (!startAtBeginning && _selectedWordPairs.Count == 0)
            {
                _startWordPair = _wordPairsView.Cast<WordPairViewModel>().Last();
            }
            else if (_startWordPair == null)
            {
                _startWordPair = _selectedWordPairs[0];
            }
            else if (!startAtBeginning && _selectedWordPairs.Contains(_startWordPair))
            {
                if (wrap)
                    ResetSearch();
                return false;
            }

            List<WordPairViewModel> wordPairs = _wordPairsView.Cast<WordPairViewModel>().ToList();
            WordPairViewModel curWordPair;
            if (startAtBeginning)
            {
                curWordPair = wordPairs[wordPairs.Count - 1];
                if (_startWordPair == curWordPair)
                {
                    ResetSearch();
                    return false;
                }
            }
            else
            {
                curWordPair = _selectedWordPairs.Count == 0 ? _startWordPair : _selectedWordPairs[0];
            }
            int wordPairIndex = wordPairs.IndexOf(curWordPair);
            do
            {
                wordPairIndex++;
                if (wordPairIndex == wordPairs.Count)
                {
                    if (!wrap && !startAtBeginning && _startWordPair != curWordPair)
                        return false;
                    wordPairIndex = 0;
                }
                curWordPair = wordPairs[wordPairIndex];
                bool match = false;
                switch (field)
                {
                    case FindField.Form:
                        match = curWordPair.DomainWordPair.Word1.StrRep.Contains(str)
                            || curWordPair.DomainWordPair.Word2.StrRep.Contains(str);
                        break;

                    case FindField.Gloss:
                        match = curWordPair.Meaning.Gloss.Contains(str);
                        break;
                }
                if (match)
                {
                    using (_selectedWordPairsMonitor.Enter())
                    {
                        _selectedWordPairs.Clear();
                        _selectedWordPairs.Add(curWordPair);
                    }
                    return true;
                }
            }
            while (_startWordPair != curWordPair);
            if (wrap)
                ResetSearch();
            return false;
        }