internal void PopulateDefaultAutoCompleteCandidates()
        {
            if (PortViewModel.PortModel.PortType == PortType.Input)
            {
                switch (PortViewModel.PortModel.GetInputPortType())
                {
                case "int":
                    FilteredResults = DefaultResults.Where(e => e.Name == "Number Slider" || e.Name == "Integer Slider").ToList();
                    break;

                case "double":
                    FilteredResults = DefaultResults.Where(e => e.Name == "Number Slider" || e.Name == "Integer Slider").ToList();
                    break;

                case "string":
                    FilteredResults = DefaultResults.Where(e => e.Name == "String").ToList();
                    break;

                case "bool":
                    FilteredResults = DefaultResults.Where(e => e.Name == "Boolean").ToList();
                    break;

                default:
                    FilteredResults = DefaultResults.Where(e => e.Name == "String" || e.Name == "Number Slider" || e.Name == "Integer Slider" || e.Name == "Number" || e.Name == "Boolean");
                    break;
                }
            }
            else
            {
                FilteredResults = DefaultResults.Where(e => e.Name == "Watch" || e.Name == "Watch 3D" || e.Name == "Python Script").ToList();
            }

            defaultSearchElementsCache = FilteredResults.Select(x => x.Model).ToList();
        }
        /// <summary>
        /// When down key is pressed, selected element should move forward.
        /// When up key is pressed, selected element should move back.
        /// </summary>
        public void MoveSelection(Direction direction)
        {
            var oldItem = FilteredResults.FirstOrDefault(item => item.IsSelected);

            if (oldItem == null)
            {
                return;
            }

            int newItemIndex = FilteredResults.IndexOf(oldItem);

            if ((newItemIndex <= 0 && direction == Direction.Up) ||
                (newItemIndex >= FilteredResults.Count() - 1 && direction == Direction.Down))
            {
                return;
            }

            if (direction == Direction.Down)
            {
                newItemIndex++;
            }
            else
            {
                newItemIndex--;
            }

            oldItem.IsSelected = false;
            var newItem = FilteredResults.ElementAt(newItemIndex);

            newItem.IsSelected = true;
        }
        /// <summary>
        /// Executes selected item in search UI.
        /// </summary>
        public void ExecuteSelectedItem()
        {
            var selected = FilteredResults.FirstOrDefault(item => item.IsSelected);

            if (selected != null)
            {
                selected.ClickedCommand.Execute(null);
            }
        }
Exemple #4
0
 public void Clear()
 {
     FilteredResults.Clear();
     _allResults.Clear();
     ActiveFilters.Clear();
     foreach (var filter in _allFilters)
     {
         filter.Clear();
     }
 }
Exemple #5
0
        private void ShowResults()
        {
            SearchResultsList.SuspendLayout();
            SearchResultsList.Items.Clear();

            if (AlwaysShowList || !IsSearchBoxEmpty())
            {
                var topResults = FilteredResults.Count() > MaxResults?FilteredResults.Take(MaxResults).ToList() : FilteredResults;

                bool first = true;
                foreach (var item in topResults)
                {
                    var name     = GetNameForObject(item);
                    var hintText = GetHintForObject(item);
                    var emphasis = GetHintEmphasisRangeForObject(item);
                    var image    = OnGetIconForItem != null?OnGetIconForItem(item) : null;

                    var menuItem = new ToolStripButtonWithHint(name, image, hintText);

                    menuItem.EmphasisStart = emphasis.X;
                    menuItem.EmphasisEnd   = emphasis.Y;

                    SearchResultsList.Items.Add(menuItem);

                    if (first)
                    {
                        menuItem.Select();
                        first = false;
                    }

                    menuItem.Click += MenuItemClick;
                }

                var unshownCount = FilteredResults.Count() - topResults.Count();
                if (unshownCount > 0)
                {
                    SearchResultsList.Items.Add(new ToolStripLabel(String.Format(" + {0} more (continue typing to filter further)", unshownCount))
                    {
                        ForeColor = Color.Gray
                    });
                }

                SearchResultsList.ResumeLayout();

                if (!SearchResultsList.Visible)
                {
                    SearchResultsList.Show(new Point(Left, Bottom));
                }
            }
            else
            {
                SearchResultsList.ResumeLayout();
                SearchResultsList.Hide();
            }
        }
Exemple #6
0
        public void ApplyFilters()
        {
            var activeFilters = _allFilters.SelectMany(i => i.Where(e => e.IsChecked));

            FilteredResults.AddRemoveRange(activeFilters.SelectMany(i => i.Parents).Distinct());
            if (FilteredResults.Count == 0 && _allFilters.SelectMany(i => i.Where(e => e.IsChecked)).Count() == 0)
            {
                FilteredResults.AddRemoveRange(_allResults);
            }
            ActiveFilters.AddRemoveRange(activeFilters);
        }
Exemple #7
0
        public void DoFilter()
        {
            Records = DataContext.Schedule.ToList();

            if (string.IsNullOrEmpty(Pattern))
            {
                FilteredResults = Records;
            }
            else
            {
                Regex           aRegex  = new Regex(Pattern);
                List <Schedule> Results = new List <Schedule>();
                for (int i = 0; i < Records.Count; i++)
                {
                    string Words = (Records[i].Id).ToString() + " " + Records[i].Name + " " + Records[i].BeginDate + " " + Records[i].BeginTime + " " + Records[i].EndDate + " "
                                   + Records[i].EndTime + " " + Records[i].Place + " " + Records[i].Memo;
                    MatchCollection aMatches = aRegex.Matches(Words);
                    for (int j = 0; j < aMatches.Count; j++)
                    {
                        if (aMatches[j].Success)
                        {
                            Results.Add(Records[i]);
                        }
                    }
                }
                FilteredResults = Results;
            }
            for (int i = 0; i < FilteredResults.Count; i++)
            {
                for (int j = FilteredResults.Count - 1; j > i; j--)
                {
                    if (FilteredResults[i] == FilteredResults[j])
                    {
                        FilteredResults.RemoveAt(j);
                    }
                }
            }
        }
Exemple #8
0
        public void SearchStr()
        {
            Records = DataContext.Conts.ToList();

            if (string.IsNullOrEmpty(Pattern))
            {
                FilteredResults = Records;
            }
            else
            {
                Regex        aRegex  = new Regex(Pattern);
                List <Conts> Results = new List <Conts>();
                for (int i = 0; i < Records.Count; i++)
                {
                    string Words = Records[i].name + " " + Records[i].mobile + " " + Records[i].memo + " " + Records[i].sex + " "
                                   + Records[i].birth;
                    MatchCollection aMatches = aRegex.Matches(Words);
                    for (int j = 0; j < aMatches.Count; j++)
                    {
                        if (aMatches[j].Success)
                        {
                            Results.Add(Records[i]);
                        }
                    }
                }
                FilteredResults = Results;
            }
            for (int i = 0; i < FilteredResults.Count; i++)
            {
                for (int j = FilteredResults.Count - 1; j > i; j--)
                {
                    if (FilteredResults[i] == FilteredResults[j])
                    {
                        FilteredResults.RemoveAt(j);
                    }
                }
            }
        }
Exemple #9
0
        public async Task AddImage(ImageInsights insights)
        {
            // Load image from file
            BitmapImage bitmapImage = new BitmapImage();

            if (insights.ImageUri.IsFile)
            {
                await bitmapImage.SetSourceAsync((await(await StorageFile.GetFileFromPathAsync(insights.ImageUri.AbsoluteUri)).OpenStreamForReadAsync()).AsRandomAccessStream());
            }
            else
            {
                bitmapImage.UriSource = insights.ImageUri;
            }

            //load smaller image - for performace
            bitmapImage.DecodePixelHeight = 270;

            // Create the view models
            ImageInsightsViewModel insightsViewModel = new ImageInsightsViewModel()
            {
                Insights = insights, ImageSource = bitmapImage
            };

            //tags
            foreach (var entity in insights.VisionInsights?.Tags ?? Array.Empty <string>())
            {
                AddFilter(TagFilters, entity, entity, insightsViewModel);
            }

            //faces
            foreach (var entity in insights.FaceInsights ?? Array.Empty <FaceInsights>())
            {
                var key        = entity.UniqueFaceId == Guid.Empty ? Guid.NewGuid() : entity.UniqueFaceId;
                var imageScale = bitmapImage.PixelHeight < bitmapImage.DecodePixelHeight ? 1d : (double)bitmapImage.DecodePixelHeight / (double)bitmapImage.PixelHeight;
                var filter     = AddFilter(FaceFilters, entity, key, insightsViewModel, bitmapImage, entity.FaceRectangle.ToRect().Scale(imageScale).Inflate(2));

                //rescale face rect if image has been rescaled
                if (filter.Count == 1 && bitmapImage.PixelHeight == 0)
                {
                    bitmapImage.ImageOpened += (sender, e) =>
                    {
                        var bitmap = sender as BitmapImage;
                        if (bitmap.DecodePixelHeight != 0 && bitmap.DecodePixelHeight < bitmap.PixelHeight)
                        {
                            var imageFilter = filter as ImageFilterViewModel;
                            imageFilter.ImageCrop = entity.FaceRectangle.ToRect().Scale((double)bitmap.DecodePixelHeight / (double)bitmap.PixelHeight).Inflate(2);
                        }
                    };
                }
            }

            //emotions
            insightsViewModel.Emotions = insights.FaceInsights?.Select(i => Util.EmotionToRankedList(i.FaceAttributes.Emotion).First().Key).Distinct().ToArray() ?? Array.Empty <string>();
            foreach (var entity in insightsViewModel.Emotions)
            {
                AddFilter(EmotionFilters, entity, entity, insightsViewModel);
            }

            //objects
            foreach (var entity in insights.VisionInsights?.Objects ?? Array.Empty <string>())
            {
                AddFilter(ObjectFilters, entity, entity, insightsViewModel);
            }

            //landmarks
            foreach (var entity in insights.VisionInsights?.Landmarks ?? Array.Empty <string>())
            {
                AddFilter(LandmarkFilters, entity, entity, insightsViewModel);
            }

            //celebrities
            foreach (var entity in insights.VisionInsights?.Celebrities ?? Array.Empty <string>())
            {
                AddFilter(CelebrityFilters, entity, entity, insightsViewModel);
            }

            //brands
            foreach (var entity in insights.VisionInsights?.Brands ?? Array.Empty <string>())
            {
                AddFilter(BrandFilters, entity, entity, insightsViewModel);
            }

            //moderation
            insightsViewModel.Moderation = GetAdultFlags(insights.VisionInsights?.Adult).ToArray();
            foreach (var entity in insightsViewModel.Moderation)
            {
                AddFilter(ModerationFilters, entity, entity, insightsViewModel);
                insightsViewModel.BlurImage = true; //set blur flag
            }

            //words
            foreach (var entity in insights.VisionInsights?.Words ?? Array.Empty <string>())
            {
                AddFilter(WordFilters, entity, entity, insightsViewModel);
            }

            //color
            insightsViewModel.Color = GetColorFlags(insights.VisionInsights?.Color).ToArray();
            foreach (var entity in insightsViewModel.Color)
            {
                AddFilter(ColorFilters, entity, entity, insightsViewModel);
            }

            //orientation
            insightsViewModel.Orientation = GetOrientation(insights.VisionInsights?.Metadata);
            if (insightsViewModel.Orientation != null)
            {
                AddFilter(OrientationFilters, insightsViewModel.Orientation, insightsViewModel.Orientation, insightsViewModel);
            }

            //image type
            insightsViewModel.ImageType = GetImageTypeFlags(insights.VisionInsights?.ImageType).ToArray();
            foreach (var entity in insightsViewModel.ImageType)
            {
                AddFilter(ImageTypeFilters, entity, entity, insightsViewModel);
            }

            //size
            insightsViewModel.Size = GetSize(insights.VisionInsights?.Metadata);
            if (insightsViewModel.Size != null)
            {
                AddFilter(SizeFilters, insightsViewModel.Size, insightsViewModel.Size, insightsViewModel);
            }

            //People
            insightsViewModel.People = GetPeopleFlags(insights.VisionInsights?.Objects, insights.FaceInsights).ToArray();
            foreach (var entity in insightsViewModel.People)
            {
                AddFilter(PeopleFilters, entity, entity, insightsViewModel);
            }

            //face attributes
            insightsViewModel.FaceAttributes = GetFaceAttributesFlags(insights.FaceInsights).ToArray();
            foreach (var entity in insightsViewModel.FaceAttributes)
            {
                AddFilter(FaceAttributesFilters, entity, entity, insightsViewModel);
            }

            //face qualtity
            insightsViewModel.FaceQualtity = GetFaceQualityFlags(insights.FaceInsights).ToArray();
            foreach (var entity in insightsViewModel.FaceQualtity)
            {
                AddFilter(FaceQualityFilters, entity, entity, insightsViewModel);
            }

            //Custom Vision tags
            insightsViewModel.CustomVisionTags = GetCustomVisionTags(insights.CustomVisionInsights).ToArray();
            foreach (var entity in insightsViewModel.CustomVisionTags)
            {
                AddFilter(CustomVisionTagFilters, entity, entity, insightsViewModel);
            }

            //Custom Vision objects
            insightsViewModel.CustomVisionObjects = GetCustomVisionObjects(insights.CustomVisionInsights).ToArray();
            foreach (var entity in insightsViewModel.CustomVisionObjects)
            {
                AddFilter(CustomVisionObjectFilters, entity, entity, insightsViewModel);
            }

            if (SettingsHelper.Instance.ShowAgeAndGender) //only if age and gender is allowed
            {
                //Age
                insightsViewModel.Age = GetAgeFlags(insights.FaceInsights).ToArray();
                foreach (var entity in insightsViewModel.Age)
                {
                    AddFilter(AgeFilters, entity, entity, insightsViewModel);
                }

                //Gender
                insightsViewModel.Gender = GetGenderFlags(insights.FaceInsights).ToArray();
                foreach (var entity in insightsViewModel.Gender)
                {
                    AddFilter(GenderFilters, entity, entity, insightsViewModel);
                }
            }

            //add viewmodel to collection
            _allResults.Add(insightsViewModel);
            FilteredResults.Add(insightsViewModel);
        }