private void btnBuildDoc_Click(object sender, RoutedEventArgs e) { try { DocsBuilderEventArgs args = new DocsBuilderEventArgs(RepositoryRoot, (LogLevel)cbLogLevel.SelectedValue); cts = new CancellationTokenSource(); args.CancellationToken = cts.Token; args.JDKFolder = tbJDKFolder.Text; args.JDKTarget = (JDKVersion)cbTarget.SelectedValue; args.SourceFolder = tbDestinationFolder.Text; args.SplitFolderByAssembly = cbEnableSplitFolder.IsChecked.Value; args.AssembliesToUse = AssemblyDataCollection.CreateList(AssemblyDataCollection); args.CommitVersion = tbCommitVersion.Text; if (cbExportToFile.IsChecked.Value) { export(args); if (MessageBox.Show("Continue operation?", string.Empty, MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes) == MessageBoxResult.No) { return; } } commandPanel.IsEnabled = false; btnStop.Visibility = Visibility.Visible; Task.Factory.StartNew(JavaBuilder.GenerateDocs, args); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
public static void GenerateDocs(object o) { bool failed = false; DocsBuilderEventArgs args = o as DocsBuilderEventArgs; CancellationToken = args.CancellationToken; logLevel = args.LogLevel; DateTime dtStart = DateTime.Now; string reportStr = string.Empty; try { if (string.IsNullOrEmpty(args.CommitVersion)) { throw new ArgumentException("Commit version must be set when docs are generated."); } if (!Path.IsPathRooted(args.SourceFolder)) { args.SourceFolder = Path.Combine(args.RootFolder, args.SourceFolder); } if (!Path.IsPathRooted(args.JDKFolder)) { args.JDKFolder = Path.Combine(args.RootFolder, args.JDKFolder); } var srcRootFolder = Path.Combine(args.SourceFolder, Const.FileNameAndDirectory.SourceDirectory); string destinationFolder = Path.Combine(args.SourceFolder, Const.FileNameAndDirectory.DocsDirectory); var classes = CreateSourceListAndGenerateDocs(args.JDKFolder, args.JDKTarget, args.RootFolder, srcRootFolder, destinationFolder, args.CommitVersion, (args.AssembliesToUse == null) ? CreateFolderList(srcRootFolder) : args.AssembliesToUse, Timeout.Infinite); reportStr = string.Format("Javadoc of {0} classes done in {1}.", classes, DateTime.Now - dtStart); } catch (OperationCanceledException ex) { reportStr = string.Format("Error {0}", ex.Message); AppendToConsole(LogLevel.Error, reportStr); } catch (Exception ex) { reportStr = string.Format("Error {0}", ex.Message); AppendToConsole(LogLevel.Error, reportStr); failed = true; } finally { EndOperationHandler?.Invoke(null, new EndOperationEventArgs(reportStr, failed)); } }