private void OnGenerateFilesButtonClick(object sender, EventArgs e) { if (outputDirectoryText.Text != null && outputDirectoryText.Text.Trim().Length > 0) { if (Directory.Exists(outputDirectoryText.Text) == false) { Directory.CreateDirectory(outputDirectoryText.Text); } using (var switcher = new ScopeSwitcher<Control, Cursor>(Parent, Cursors.WaitCursor)) { var assemblyBrowser = (IAssemblyBrowser) serviceProvider.GetService(typeof(IAssemblyBrowser)); if (assemblyBrowser.ActiveItem != null) { object resolvedObject = Resolve(assemblyBrowser.ActiveItem); if (resolvedObject != null) { if (ThreadPool.QueueUserWorkItem(GenerateFiles, new GenerateFilesState { ActiveItem = assemblyBrowser.ActiveItem, CreateSubdirectories = createSubDirectories.Checked, CreateVisualStudioProjectFile = createVisualStudioProjectFile.Checked, Directory = outputDirectoryText.Text })) { generateFilesButton.Enabled = false; cancelGenerationButton.Enabled = true; } } else { fileGenerationStatusText.Text = string.Format( CultureInfo.CurrentCulture, "Could not resolve the active item type {0}.", assemblyBrowser.ActiveItem.GetType().FullName); fileGenerationStatusText.SelectionStart = 0; fileGenerationStatusText.SelectionLength = 0; } } } } }
private void OnCancelGenerationButtonClick(object sender, EventArgs e) { using (var switcher = new ScopeSwitcher<Control, Cursor>(Parent, Cursors.WaitCursor)) { CancelFileGeneration(); FileGenerationComplete(); } }