private void loaderWorker_AggregateFiles(object sender, System.ComponentModel.DoWorkEventArgs e) { if (_aggregator != null) { _aggregator.Report += (s, pe) => ProgressReporter(pe.Percent); _aggregator.CancelJob += (s, ce) => ce.Cancel = _aggregator.Cancelled; _aggregator.ReportName += (s, tne) => ThreadHelper.ThreadSafeUpdateToolStrip<ToolStripStatusLabel>(_form.StatusLabel, lbl => { lbl.Text = tne.Name; }); } _cancellableAction = _aggregator; var aggregatorParams = (Behaviors.FilesAggregator.AggregatorParams)e.Argument; try { _aggregator.Aggregate(aggregatorParams.AggregateFileName, aggregatorParams.SourceFilesNames); } catch (OperationCanceledException) { e.Cancel = true; ClearWorkerData( () => { if (File.Exists(aggregatorParams.AggregateFileName)) { File.Delete(aggregatorParams.AggregateFileName); } }); } e.Result = aggregatorParams.AggregateFileName; }
private void loaderWorker_MirrorImage(object sender, System.ComponentModel.DoWorkEventArgs e) { if (_mirrorer != null) { _mirrorer.Report += (s, pe) => ProgressReporter(pe.Percent); _mirrorer.CancelJob += (s, ce) => ce.Cancel = _mirrorer.Cancelled; _mirrorer.ReportName += (s, tne) => ThreadHelper.ThreadSafeUpdateToolStrip<ToolStripStatusLabel>(_form.StatusLabel, lbl => { lbl.Text = tne.Name; }); } _cancellableAction = _mirrorer; var destinationPath = (string)e.Argument; try { _mirrorer.MirrorImage(destinationPath); } catch (OperationCanceledException) { e.Cancel = true; ClearWorkerData( () => { if (File.Exists(destinationPath)) { File.Delete(destinationPath); } }); } e.Result = destinationPath; }
private void loaderWorker_CreateTiles(object sender, System.ComponentModel.DoWorkEventArgs e) { _creator = TileCreatorFactory.GetFactory(_file).Create(_file as RlViewer.Files.LocatorFile, _settings.TileOutputAlgorithm); ((WorkerEventController)_creator).Report += (s, pe) => ProgressReporter(pe.Percent); ((WorkerEventController)_creator).CancelJob += (s, ce) => ce.Cancel = ((WorkerEventController)_creator).Cancelled; ((WorkerEventController)_creator).ReportName += (s, tne) => ThreadHelper.ThreadSafeUpdateToolStrip<ToolStripStatusLabel>(_form.StatusLabel, lbl => { lbl.Text = tne.Name; }); _cancellableAction = ((WorkerEventController)_creator); try { e.Result = _creator.GetTiles(_file.Properties.FilePath, _settings.ForceTileGeneration, _settings.AllowViewWhileLoading); } catch (OperationCanceledException) { e.Cancel = true; } catch (AggregateException aggrex) { if (aggrex.InnerException.GetType() == typeof(OperationCanceledException)) { e.Cancel = true; } } }
private void loaderWorker_GenerateReport(object sender, System.ComponentModel.DoWorkEventArgs e) { if (_reporter != null) { _reporter.Report += (s, pe) => ProgressReporter(pe.Percent); _reporter.CancelJob += (s, ce) => ce.Cancel = _reporter.Cancelled; _reporter.ReportName += (s, tne) => ThreadHelper.ThreadSafeUpdateToolStrip<ToolStripStatusLabel>(_form.StatusLabel, lbl => { lbl.Text = tne.Name; }); } _cancellableAction = _reporter; var reportArgs = (object[])e.Argument; var reportFileName = (string)reportArgs[0]; var reporterSettings = (Behaviors.ReportGenerator.ReporterSettings)reportArgs[1]; try { _reporter.GenerateReport(reportFileName, reporterSettings); } catch (OperationCanceledException) { e.Cancel = true; } e.Result = reportFileName; }
private void loaderWorker_InitFile(object sender, System.ComponentModel.DoWorkEventArgs e) { try { _properties = new Files.FileProperties((string)e.Argument); _header = Factories.Header.Abstract.HeaderFactory.GetFactory(_properties).Create(_properties.FilePath); _navi = Factories.NavigationContainer.Abstract.NavigationContainerFactory.GetFactory(_properties).Create(_properties, _header); _navi.Report += (s, pe) => ProgressReporter(pe.Percent); _navi.CancelJob += (s, ce) => ce.Cancel = _navi.Cancelled; _navi.ReportName += (s, tne) => ThreadHelper.ThreadSafeUpdateToolStrip<ToolStripStatusLabel>(_form.StatusLabel, lbl => { lbl.Text = tne.Name; }); _cancellableAction = _navi; _navi.GetNavigation(); } catch (OperationCanceledException) { e.Cancel = true; return; } _file = FileFactory.GetFactory(_properties).Create(_properties, _header, _navi); _ruler = new Behaviors.Ruler.RulerProxy(_file); _saver = SaverFactory.GetFactory(_properties).Create(_file); _searcher = Factories.NavigationSearcher.Abstract.PointFinderFactory.GetFactory(_file.Properties).Create(_file); _analyzer = new Behaviors.Analyzing.SampleAnalyzer(); _pointSelector = new Behaviors.PointSelector.PointSelector(); _areaSelector = new Behaviors.AreaSelector.AreaSelector(_file); _areaAligningWrapper = new Behaviors.AreaSelector.AreaSelectorsAlignerContainer(); if (_pointSharer != null) { _pointSharer.DataReceived -= (s, gde) => CrossAppDataReceivedCallback(s, gde); _pointSharer.Dispose(); } _pointSharer = Factories.PointSharer.Abstract.PointSharerFactory.GetFactory(_file.Properties).Create(_file, new Behaviors.CrossAppCommunication.UdpExchange(_settings.MulticastEp, Behaviors.CrossAppCommunication.CommunicationType.Multicast), System.Diagnostics.Process.GetCurrentProcess().Id); _pointSharer.DataReceived += (s, gde) => CrossAppDataReceivedCallback(s, gde); }
private void loaderWorker_AlignImage(object sender, System.ComponentModel.DoWorkEventArgs e) { var fileName = (string)e.Argument; _aligner.Report += (s, pe) => ProgressReporter(pe.Percent); _aligner.CancelJob += (s, ce) => ce.Cancel = _aligner.Cancelled; _aligner.ReportName += (s, tne) => ThreadHelper.ThreadSafeUpdateToolStrip<ToolStripStatusLabel>(_form.StatusLabel, lbl => { lbl.Text = tne.Name; }); _cancellableAction = _aligner; var resamplingArea = GeometryHelper.GetArea(_pointSelector, _settings.AligningAreaBorderSize); byte[] resampledImage = null; try { resampledImage = _aligner.Resample(fileName, resamplingArea); } catch (OperationCanceledException) { e.Cancel = true; } if (resampledImage != null) { _saver.SaveAsAligned(fileName, resamplingArea, resampledImage, _pointSelector.Count(), (int)_settings.RangeCompressionCoef, (int)_settings.AzimuthCompressionCoef); } e.Result = fileName; }
private void loaderWorker_SaveFile(object sender, System.ComponentModel.DoWorkEventArgs e) { Behaviors.Saving.SaverParams parameters; try { parameters = (Behaviors.Saving.SaverParams)e.Argument; } catch (InvalidCastException) { Logging.Logger.Log(Logging.SeverityGrades.Internal, "Invalid saver params"); throw; } _saver = SaverFactory.GetFactory(_file.Properties).Create(_file); _saver.Report += (s, pe) => ProgressReporter(pe.Percent); _saver.CancelJob += (s, ce) => ce.Cancel = _saver.Cancelled; _saver.ReportName += (s, tne) => ThreadHelper.ThreadSafeUpdateToolStrip<ToolStripStatusLabel>(_form.StatusLabel, lbl => { lbl.Text = tne.Name; }); float maxSampleValue = 0; try { if (parameters.OutputType != Behaviors.TileCreator.TileOutputType.Linear) { _cancellableAction = ((WorkerEventController)_creator); maxSampleValue = _creator.MaxValue; } _cancellableAction = _saver; _saver.Save(parameters, _creator.NormalizationFactor, maxSampleValue); } catch (OperationCanceledException) { e.Cancel = true; } if (_saver.Cancelled) { ClearWorkerData(() => File.Delete(parameters.Path)); } e.Result = parameters.Path; }
private void loaderWorker_NormalizeFile(object sender, System.ComponentModel.DoWorkEventArgs e) { _saver = SaverFactory.GetFactory(_file.Properties).Create(_file); _saver.Report += (s, pe) => ProgressReporter(pe.Percent); _saver.CancelJob += (s, ce) => ce.Cancel = _saver.Cancelled; _saver.ReportName += (s, tne) => ThreadHelper.ThreadSafeUpdateToolStrip<ToolStripStatusLabel>(_form.StatusLabel, lbl => { lbl.Text = tne.Name; }); _cancellableAction = _saver; var fileName = (string)e.Argument; try { var targetPoint = _pointSelector.First(); var normalizationCoef = targetPoint.Value / targetPoint.Rcs; _saver.SaveAsNormalized(fileName, normalizationCoef); } catch (OperationCanceledException) { e.Cancel = true; } if (_saver.Cancelled) { ClearWorkerData(() => File.Delete(fileName)); } e.Result = fileName; }
private void loaderWorker_FindPoint(object sender, System.ComponentModel.DoWorkEventArgs e) { _searcher.Report += (s, pe) => ProgressReporter(pe.Percent); _searcher.CancelJob += (s, ce) => ce.Cancel = _searcher.Cancelled; _searcher.ReportName += (s, tne) => ThreadHelper.ThreadSafeUpdateToolStrip<ToolStripStatusLabel>(_form.StatusLabel, lbl => { lbl.Text = tne.Name; }); _cancellableAction = _searcher; var searcherParams = (Behaviors.Navigation.NavigationSearcher.SearcherParams)e.Argument; try { if (searcherParams.IsNavigationSearcher) { e.Result = _searcher.GetCoordinates(searcherParams.Lat, searcherParams.Lon, searcherParams.Error); } else { e.Result = new Point(searcherParams.X, searcherParams.Y); } } catch (OperationCanceledException) { e.Cancel = true; } }