private void OnProcessInput(IXApplication app, ICadApplicationInstanceProvider instProvider, List <IXDocument> input) { if (m_ExtractReferences) { var cts = new CancellationTokenSource(); var cancellationToken = cts.Token; var vm = new ReferenceExtractorVM(new ReferenceExtractor(app, instProvider.Descriptor.DrawingFileFilter.Extensions), input.ToArray(), instProvider.Descriptor, m_Logger, m_MsgSvc, ReferencesScope_e.AllDependencies, true, cancellationToken); input.Clear(); m_Host.WpfApplication.Dispatcher.Invoke(() => { var wnd = new ReferenceExtractorWindow(); wnd.Owner = m_Host.WpfApplication.MainWindow; wnd.DataContext = vm; wnd.Loaded += async(s, e) => { try { await vm.CollectReferencesAsync(); } catch (OperationCanceledException) { } }; var res = wnd.ShowDialog(); if (res == true) { input.AddRange(vm.GetCheckedDocuments()); } else { cts.Cancel(); throw new OperationCanceledException(); } }); } }
private void OnProcessInput(IXApplication app, List <IXDocument> input) { if (m_FindDrawings) { var cts = new CancellationTokenSource(); var cancellationToken = cts.Token; var vm = new ReferenceExtractorVM(new ReferenceExtractor(app, m_EntDesc.DrawingFileFilter.Extensions), input.ToArray(), m_EntDesc, m_Logger, m_MsgSvc, ReferencesScope_e.SourceDocumentsOnly, true, cancellationToken); input.Clear(); var popup = m_Host.Extension.CreatePopupWindow <ReferenceExtractorWindow>(); popup.Control.DataContext = vm; popup.Control.ReferencesGroupVisible = false; popup.Control.Loaded += async(s, e) => { try { await vm.CollectReferencesAsync(); } catch (OperationCanceledException) { } }; if (popup.ShowDialog() == true) { input.AddRange(vm.GetCheckedDocuments()); } else { cts.Cancel(); throw new OperationCanceledException(); } } }