예제 #1
0
        private FilterLinkModel createLinkModel(IOperationModel from, IOperationModel to)
        {
            FilterLinkModel filterLinkModel = null;

            if (from is IFilterProviderOperationModel && to is IFilterConsumerOperationModel)
            {
                filterLinkModel = new FilterLinkModel
                {
                    FromOperationModel = (IFilterProviderOperationModel)from,
                    ToOperationModel   = (IFilterConsumerOperationModel)to
                };
                if (isLinkAllowed(filterLinkModel))
                {
                    if (!((IFilterConsumerOperationModel)filterLinkModel.FromOperationModel).LinkModels.Contains(filterLinkModel) &&
                        !filterLinkModel.ToOperationModel.LinkModels.Contains(filterLinkModel))
                    {
                        ((IFilterConsumerOperationModel)filterLinkModel.FromOperationModel).LinkModels.Add(filterLinkModel);
                        filterLinkModel.ToOperationModel.LinkModels.Add(filterLinkModel);
                    }
                    return(filterLinkModel);
                }
                ErrorHandler.HandleError("Link cycles are not supported.");
            }
            return(null);
        }
예제 #2
0
        private bool isLinkAllowed(FilterLinkModel filterLinkModel)
        {
            var linkModels = ((IFilterConsumerOperationModel)filterLinkModel.FromOperationModel).LinkModels.Where(lm => lm.FromOperationModel == filterLinkModel.FromOperationModel).ToList();

            linkModels.Add(filterLinkModel);
            var chain = new HashSet <IFilterConsumerOperationModel>();

            recursiveCheckForCiruclarLinking(linkModels, chain);

            if (chain.Contains(filterLinkModel.FromOperationModel as IFilterConsumerOperationModel))
            {
                return(false);
            }

            var brushModels = ((IBrushableOperationModel)filterLinkModel.FromOperationModel).BrushOperationModels.ToList();

            foreach (var brushableOperationModel in brushModels)
            {
                foreach (var linkModel in linkModels)
                {
                    if (brushableOperationModel == linkModel.ToOperationModel)
                    {
                        BrushableViewController.Instance.Remove(brushableOperationModel);
                        return(true);
                    }
                }
            }
            return(true);
        }
예제 #3
0
 public void RemoveFilterLinkViewModel(FilterLinkModel filterLinkModel)
 {
     (filterLinkModel.FromOperationModel as IFilterConsumerOperationModel).LinkModels.Remove(filterLinkModel);
     filterLinkModel.ToOperationModel.LinkModels.Remove(filterLinkModel);
     foreach (var linkViewModel in FilterLinkViewModels.ToArray())
     {
         if (linkViewModel.FilterLinkModels.Contains(filterLinkModel))
         {
             linkViewModel.FilterLinkModels.Remove(filterLinkModel);
         }
         if (linkViewModel.FilterLinkModels.Count == 0)
         {
             FilterLinkViewModels.Remove(linkViewModel);
             MainViewController.Instance.InkableScene.Remove(
                 MainViewController.Instance.InkableScene.Elements.First(e => e is FilterLinkView && ((e as FilterLinkView).DataContext == linkViewModel)));
         }
     }
 }
예제 #4
0
        private void MainPage_KeyDown(object sender, KeyRoutedEventArgs e)
        {
            var state = CoreWindow.GetForCurrentThread().GetKeyState(VirtualKey.Control);

            if ((state & CoreVirtualKeyStates.Down) == CoreVirtualKeyStates.Down)
            {
                if (e.Key == VirtualKey.Q)
                {
                    MainViewController.Instance.MainModel.SampleSize =
                        MainViewController.Instance.MainModel.SampleSize + 100;
                    Debug.WriteLine("SampleSize : " + MainViewController.Instance.MainModel.SampleSize);

                    msgTextBlock.Text    = "SampleSize : " + MainViewController.Instance.MainModel.SampleSize;
                    msgTextBlock.Opacity = 1;
                    _messageTimer.Start();
                }
                else if (e.Key == VirtualKey.A)
                {
                    MainViewController.Instance.MainModel.SampleSize =
                        Math.Max(MainViewController.Instance.MainModel.SampleSize - 100, 1.0);
                    Debug.WriteLine("SampleSize : " + MainViewController.Instance.MainModel.SampleSize);

                    msgTextBlock.Text    = "SampleSize : " + MainViewController.Instance.MainModel.SampleSize;
                    msgTextBlock.Opacity = 1;
                    _messageTimer.Start();
                }
                if (e.Key == VirtualKey.W)
                {
                    MainViewController.Instance.MainModel.ThrottleInMillis =
                        MainViewController.Instance.MainModel.ThrottleInMillis + 300.0;
                    Debug.WriteLine("Throttle : " + MainViewController.Instance.MainModel.ThrottleInMillis);

                    msgTextBlock.Text    = "Throttle : " + MainViewController.Instance.MainModel.ThrottleInMillis;
                    msgTextBlock.Opacity = 1;
                    _messageTimer.Start();
                }
                else if (e.Key == VirtualKey.S)
                {
                    MainViewController.Instance.MainModel.ThrottleInMillis =
                        Math.Max(MainViewController.Instance.MainModel.ThrottleInMillis - 300.0, 0.0);
                    Debug.WriteLine("Throttle : " + MainViewController.Instance.MainModel.ThrottleInMillis);

                    msgTextBlock.Text    = "Throttle : " + MainViewController.Instance.MainModel.ThrottleInMillis;
                    msgTextBlock.Opacity = 1;
                    _messageTimer.Start();
                }
                if (e.Key == VirtualKey.E)
                {
                    MainViewController.Instance.MainModel.NrOfXBins = MainViewController.Instance.MainModel.NrOfXBins +
                                                                      1;
                    Debug.WriteLine("NrOfXBins : " + MainViewController.Instance.MainModel.NrOfXBins);

                    msgTextBlock.Text    = "NrOfXBins : " + MainViewController.Instance.MainModel.NrOfXBins;
                    msgTextBlock.Opacity = 1;
                    _messageTimer.Start();
                }
                else if (e.Key == VirtualKey.D)
                {
                    MainViewController.Instance.MainModel.NrOfXBins =
                        Math.Max(MainViewController.Instance.MainModel.NrOfXBins - 1, 1.0);
                    Debug.WriteLine("NrOfXBins : " + MainViewController.Instance.MainModel.NrOfXBins);

                    msgTextBlock.Text    = "NrOfXBins : " + MainViewController.Instance.MainModel.NrOfXBins;
                    msgTextBlock.Opacity = 1;
                    _messageTimer.Start();
                }
                if (e.Key == VirtualKey.R)
                {
                    MainViewController.Instance.MainModel.NrOfYBins = MainViewController.Instance.MainModel.NrOfYBins +
                                                                      1;
                    Debug.WriteLine("NrOfYBins : " + MainViewController.Instance.MainModel.NrOfYBins);

                    msgTextBlock.Text    = "NrOfYBins : " + MainViewController.Instance.MainModel.NrOfYBins;
                    msgTextBlock.Opacity = 1;
                    _messageTimer.Start();
                }
                else if (e.Key == VirtualKey.F)
                {
                    MainViewController.Instance.MainModel.NrOfYBins =
                        Math.Max(MainViewController.Instance.MainModel.NrOfYBins - 1, 1.0);
                    Debug.WriteLine("NrOfYBins : " + MainViewController.Instance.MainModel.NrOfYBins);

                    msgTextBlock.Text    = "NrOfYBins : " + MainViewController.Instance.MainModel.NrOfYBins;
                    msgTextBlock.Opacity = 1;
                    _messageTimer.Start();
                }
                else if (e.Key == VirtualKey.L)
                {
                    MainViewController.Instance.LoadCatalog();
                }
                if (e.Key == VirtualKey.Number1)
                {
                    MainViewController.Instance.MainModel.GraphRenderOption = GraphRenderOptions.Grid;
                    Debug.WriteLine("GraphRenderOption : " + MainViewController.Instance.MainModel.GraphRenderOption);

                    msgTextBlock.Text    = "GraphRenderOption : " + MainViewController.Instance.MainModel.GraphRenderOption;
                    msgTextBlock.Opacity = 1;
                    _messageTimer.Start();
                }
                if (e.Key == VirtualKey.Number2)
                {
                    MainViewController.Instance.MainModel.GraphRenderOption = GraphRenderOptions.Cell;
                    Debug.WriteLine("GraphRenderOption : " + MainViewController.Instance.MainModel.GraphRenderOption);

                    msgTextBlock.Text    = "GraphRenderOption : " + MainViewController.Instance.MainModel.GraphRenderOption;
                    msgTextBlock.Opacity = 1;
                    _messageTimer.Start();
                }
                if (e.Key == VirtualKey.V)
                {
                    MainViewController.Instance.MainModel.Verbose = !MainViewController.Instance.MainModel.Verbose;
                    Debug.WriteLine("Verbose : " + MainViewController.Instance.MainModel.Verbose);

                    msgTextBlock.Text    = "Verbose : " + MainViewController.Instance.MainModel.Verbose;
                    msgTextBlock.Opacity = 1;
                    _messageTimer.Start();
                }
                else if (e.Key == VirtualKey.H)
                {
                    MainViewController.Instance.MainModel.IsDefaultHypothesisEnabled = !MainViewController.Instance.MainModel.IsDefaultHypothesisEnabled;
                    Debug.WriteLine("IsDefaultHypothesisEnabled : " + MainViewController.Instance.MainModel.IsDefaultHypothesisEnabled);

                    msgTextBlock.Text    = "IsDefaultHypothesisEnabled : " + MainViewController.Instance.MainModel.IsDefaultHypothesisEnabled;
                    msgTextBlock.Opacity = 1;
                    _messageTimer.Start();
                }
                else if (e.Key == VirtualKey.U)
                {
                    MainViewController.Instance.MainModel.IsUnknownUnknownEnabled = !MainViewController.Instance.MainModel.IsUnknownUnknownEnabled;
                    Debug.WriteLine("IsUnknownUnknownEnabled : " + MainViewController.Instance.MainModel.IsUnknownUnknownEnabled);

                    msgTextBlock.Text    = "IsUnknownUnknownEnabled : " + MainViewController.Instance.MainModel.IsUnknownUnknownEnabled;
                    msgTextBlock.Opacity = 1;
                    _messageTimer.Start();
                }
                if (e.Key == VirtualKey.T)
                {
                    var q1 = new HistogramOperationModel(MainViewController.Instance.MainModel.SchemaModel);
                    var q2 = new HistogramOperationModel(MainViewController.Instance.MainModel.SchemaModel);
                    q1.FilterModels.Add(new FilterModel());
                    var lm = new FilterLinkModel();
                    lm.FromOperationModel = q1;
                    lm.ToOperationModel   = q2;
                    q1.LinkModels.Add(lm);
                    q2.LinkModels.Add(lm);

                    var tt = q1.Clone();
                }


                if (e.Key == VirtualKey.P)
                {
                    Debug.WriteLine("Render Fingers / Pen : " +
                                    MainViewController.Instance.MainModel.RenderFingersAndPen);
                    MainViewController.Instance.MainModel.RenderFingersAndPen =
                        !MainViewController.Instance.MainModel.RenderFingersAndPen;
                    msgTextBlock.Text    = "Fingers / Pen : " + MainViewController.Instance.MainModel.RenderFingersAndPen;
                    msgTextBlock.Opacity = 1;
                    _messageTimer.Start();
                }
            }
        }