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); } } } } } }
private void ComparisonView_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { _translateStart = e.GetPosition(this); ComparisonView.CaptureMouse(); }
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); }