Beispiel #1
0
        private void operationViewModelUpdated(OperationViewModel current)
        {
            if (current.OperationModel is IStatisticallyComparableOperationModel)
            {
                // update last moved time
                _lastMoved[current] = DateTime.Now;

                var allComparableOperationViewModels = MainViewController.Instance.OperationViewModels.Where(c => c.OperationModel is IStatisticallyComparableOperationModel);
                // check if we need to create new inputvisualization views
                foreach (var other in allComparableOperationViewModels)
                {
                    var diff = current.Position - other.Position;

                    var areLinked = FilterLinkViewController.Instance.AreOperationViewModelsLinked(current, other);
                    if (!areLinked)
                    {
                        if ((Math.Abs(diff.Y) < 300) &&
                            (boundHorizontalDistance(current.Bounds, other.Bounds) < 200) &&
                            _lastMoved.ContainsKey(other) &&
                            (other != current) &&
                            (Math.Abs((_lastMoved[other] - _lastMoved[current]).TotalMilliseconds) < 400))
                        {
                            if (!StatisticalComparisonViews.Keys.Any(sov => sov.OperationViewModels.Contains(current) && sov.OperationViewModels.Contains(other)))
                            {
                                var comparisonOperationViewModel = new StatisticalComparisonOperationViewModel(
                                    new StatisticalComparisonOperationModel(current.OperationModel.SchemaModel));

                                comparisonOperationViewModel.OperationViewModels.Add(other);
                                comparisonOperationViewModel.OperationViewModels.Add(current);

                                var a1 = (other.OperationModel as HistogramOperationModel)
                                         .GetAttributeUsageTransformationModel(AttributeUsage.X).FirstOrDefault();
                                var a2 = (current.OperationModel as HistogramOperationModel)
                                         .GetAttributeUsageTransformationModel(AttributeUsage.X).FirstOrDefault();

                                comparisonOperationViewModel.StatisticalComparisonOperationModel.TestType = TestType.chi2;
                                if (a1.AttributeModel.RawName != a2.AttributeModel.RawName)
                                {
                                    comparisonOperationViewModel.StatisticalComparisonOperationModel.TestType = TestType.corr;
                                }
                                else if ((a1.AttributeModel as AttributeFieldModel).InputDataType == InputDataTypeConstants.FLOAT ||
                                         (a1.AttributeModel as AttributeFieldModel).InputDataType == InputDataTypeConstants.INT)
                                {
                                    comparisonOperationViewModel.StatisticalComparisonOperationModel.TestType = TestType.ttest;
                                }


                                comparisonOperationViewModel.Position =
                                    (comparisonOperationViewModel.OperationViewModels.Aggregate(new Vec(), (a, b) => a + b.Bounds.Center.GetVec()) / 2.0 - comparisonOperationViewModel.Size / 2.0)
                                    .GetWindowsPoint();

                                comparisonOperationViewModel.ComparisonViewModelState = ComparisonViewModelState.Opening;
                                comparisonOperationViewModel.DwellStartPosition       = current.Position;
                                comparisonOperationViewModel.TicksSinceDwellStart     = DateTime.Now.Ticks;

                                var view = new ComparisonView();
                                view.DataContext = comparisonOperationViewModel;
                                MainViewController.Instance.InkableScene.Children.Add(view);
                                StatisticalComparisonViews.Add(comparisonOperationViewModel, view);
                            }
                        }
                    }
                }
            }
        }
Beispiel #2
0
 private void ComparisonView_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
 {
     _translateStart = e.GetPosition(this);
     ComparisonView.CaptureMouse();
 }
Beispiel #3
0
 private void ComparisonView_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
 {
     ComparisonView.ReleaseMouseCapture();
 }
        private TestResult RunCommand(Commands cmd, bool test)
        {
            VersionControlItemList items = GetItems();

            foreach (VersionControlItem it in items)
            {
                if (it.Repository == null)
                {
                    if (cmd != Commands.Publish)
                    {
                        return(TestResult.NoVersionControl);
                    }
                }
                else if (!it.Repository.VersionControlSystem.IsInstalled)
                {
                    return(TestResult.Disable);
                }
            }

            bool res = false;

            try {
                switch (cmd)
                {
                case Commands.Update:
                    res = UpdateCommand.Update(items, test);
                    break;

                case Commands.Diff:
                    if (!test)
                    {
                        ComparisonView.Show(items);
                    }
                    else
                    {
                        res = ComparisonView.CanShow(items);
                    }
                    break;

                case Commands.Log:
                    if (!test)
                    {
                        MonoDevelop.VersionControl.Views.LogView.Show(items, null);
                    }
                    else
                    {
                        res = MonoDevelop.VersionControl.Views.LogView.CanShow(items, null);
                    }
                    break;

                case Commands.Status:
                    res = StatusView.Show(items, test);
                    break;

                case Commands.Commit:
                    res = CommitCommand.Commit(items, test);
                    break;

                case Commands.Add:
                    res = AddCommand.Add(items, test);
                    break;

                case Commands.Remove:
                    res = RemoveCommand.Remove(items, test);
                    break;

                case Commands.Revert:
                    res = RevertCommand.Revert(items, test);
                    break;

                case Commands.Lock:
                    res = LockCommand.Lock(items, test);
                    break;

                case Commands.Unlock:
                    res = UnlockCommand.Unlock(items, test);
                    break;

                case Commands.Publish:
                    VersionControlItem it = items [0];
                    if (items.Count == 1 && it.IsDirectory && it.WorkspaceObject != null)
                    {
                        res = PublishCommand.Publish(it.WorkspaceObject, it.Path, test);
                    }
                    break;

                case Commands.Annotate:
                    if (!test)
                    {
                        BlameView.Show(items);
                    }
                    else
                    {
                        res = BlameView.CanShow(items[0].Repository, items[0].Path);
                    }
                    break;

                case Commands.CreatePatch:
                    res = CreatePatchCommand.CreatePatch(items, test);
                    break;
                }
            }
            catch (Exception ex) {
                if (test)
                {
                    LoggingService.LogError(ex.ToString());
                }
                else
                {
                    MessageService.ShowException(ex, GettextCatalog.GetString("Version control command failed."));
                }
                return(TestResult.Disable);
            }

            return(res ? TestResult.Enable : TestResult.Disable);
        }