示例#1
0
        private void RemoveButton_Click(object sender, EventArgs e)
        {
            if (TrainingDataViewer.SelectedIndex == 0) // location tab is showing
            {
                foreach (ListViewItem removeItem in LocationView.SelectedItems)
                {
                    int           imageIndex = removeItem.ImageIndex;
                    ImageTemplate template   = (ImageTemplate)removeItem.Tag;
                    Localization.Instance.RemoveTrainingExample(template);
                    Logging.LogOtherEvent("Removed location example: " + (string)template["path"]);
                    LocationView.LargeImageList.Images.RemoveAt(imageIndex);
                    foreach (ListViewItem updateItem in LocationView.Items)
                    {
                        if (updateItem.ImageIndex > imageIndex)
                        {
                            updateItem.ImageIndex--;
                        }
                    }

                    if (removeItem.Group.Items.Count == 0)
                    {
                        LocationView.Groups.Remove(removeItem.Group);
                    }
                    LocationView.Items.Remove(removeItem);
                }

                training = true;
                Localization.Instance.Train();
                UpdateLocationCount();
                training = false;
                OnTrainingDataUpdated();
            }
            else // gesture tab is showing
            {
                foreach (ListViewItem removeItem in GestureView.SelectedItems)
                {
                    int     imageIndex = removeItem.ImageIndex;
                    Gesture template   = (Gesture)removeItem.Tag;
                    Logging.LogOtherEvent("Removed gesture example: " + template.Path);
                    GestureRecognition.RemoveTrainingExample(template);

                    GestureView.LargeImageList.Images.RemoveAt(imageIndex);
                    foreach (ListViewItem updateItem in GestureView.Items)
                    {
                        if (updateItem.ImageIndex > imageIndex)
                        {
                            updateItem.ImageIndex--;
                        }
                    }

                    if (removeItem.Group.Items.Count == 0)
                    {
                        GestureView.Groups.Remove(removeItem.Group);
                    }
                    GestureView.Items.Remove(removeItem);
                }

                training = true;
                GestureRecognition.Train();
                UpdateGestureCount();
                training = false;
                OnTrainingDataUpdated();
            }
        }