public void RemoveOperationViewModel(OperationContainerView operationContainerView) { var operationViewModel = (OperationViewModel)operationContainerView.DataContext; MainModel.QueryExecuter.RemoveJob(operationViewModel.OperationModel); OperationViewModels.Remove(operationViewModel); Instance.InkableScene.Remove(operationContainerView); operationContainerView.Dispose(); foreach (var attachmentView in Instance.InkableScene.Elements.Where(e => e is AttachmentView).ToList()) { if (((AttachmentViewModel)attachmentView.DataContext).OperationViewModel == operationViewModel) { ((AttachmentView)attachmentView).Dispose(); Instance.InkableScene.Remove(attachmentView); } } if (operationViewModel.OperationModel is IFilterConsumerOperationModel) { foreach (var model in ((IFilterConsumerOperationModel)operationViewModel.OperationModel).LinkModels.ToArray()) { ((IFilterConsumerOperationModel)model.FromOperationModel).LinkModels.Remove(model); model.ToOperationModel.LinkModels.Remove(model); } } }
public ExampleOperationViewModel CreateDefaultExampleOperationViewModel(Pt position) { var visModel = OperationViewModelFactory.CreateDefaultExampleOperationViewModel(MainModel.SchemaModel, position); visModel.Position = position; addAttachmentViews(visModel); OperationViewModels.Add(visModel); return(visModel); }
public HistogramOperationViewModel CreateDefaultHistogramOperationViewModel(AttributeModel attributeModel, Pt position) { var visModel = OperationViewModelFactory.CreateDefaultHistogramOperationViewModel(MainModel.SchemaModel, attributeModel, position); visModel.Position = position; addAttachmentViews(visModel); OperationViewModels.Add(visModel); return(visModel); }
public OperationContainerView CopyOperationViewModel(OperationViewModel operationViewModel, Pt?centerPoint) { var newOperationContainerView = new OperationContainerView(); var newOperationViewModel = OperationViewModelFactory.CopyOperationViewModel(operationViewModel); addAttachmentViews(newOperationViewModel); OperationViewModels.Add(newOperationViewModel); if (centerPoint.HasValue) { newOperationViewModel.Position = (Pt)centerPoint - operationViewModel.Size / 2.0; } newOperationContainerView.DataContext = newOperationViewModel; InkableScene.Add(newOperationContainerView); return(newOperationContainerView); }
public void UpdateJobStatus() { foreach (var current in OperationViewModels.ToArray()) { // check if we need to halt or resume the job var tg = InkableScene.TransformToVisual(MainPage); var tt = tg.TransformBounds(current.Bounds); if (!MainPage.GetBounds().IntersectsWith(tt) && MainModel.QueryExecuter.IsJobRunning(current.OperationModel)) { MainModel.QueryExecuter.HaltJob(current.OperationModel); } else if (MainPage.GetBounds().IntersectsWith(tt) && !MainModel.QueryExecuter.IsJobRunning(current.OperationModel)) { MainModel.QueryExecuter.ResumeJob(current.OperationModel); } } }