/*----------------------------------------------------------------------
Prof-It for C#
Copyright (c) 2004 Klaus Lehner, University of Linz
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
----------------------------------------------------------------------*/
using System;
using System.Collections;
using System.IO;
using System.Runtime.Serialization.Formatters.Soap;
using System.Windows.Forms;
using at.jku.ssw.ProfIt.Components;
using at.jku.ssw.ProfIt.Import.VS2003;
namespace at.jku.ssw.ProfIt.Dialogs{
/// <summary>
/// This is the main class to open dialogs, check the user input and react on int
/// </summary>
public class DialogProvider {
/// <summary>
/// This method opens a dialog for creating a new project and reacts on its
/// results.
/// </summary>
/// <returns>an info string for the status bar</returns>
public static string ShowOpenSolutionDialog() {
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.CheckFileExists = true;
openFileDialog.CheckPathExists = true;
openFileDialog.Filter = "C# Profiler Solution (*.csps)|*.csps";
DialogResult result = openFileDialog.ShowDialog();
if (result == DialogResult.OK) {
Solution solution = SolutionManager.ReadSolution(openFileDialog.FileName);
if (solution != null) {
SolutionManager.OpenSolution(solution);
return "solution '" + solution.Name + "' opened";
}
return "";
} else return "";
}
public static bool ShowImport2003SolutionDialog() {
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.CheckFileExists = true;
openFileDialog.CheckPathExists = true;
openFileDialog.Filter = "Visual Studio 2003 Solutions (*.sln)|*.sln";
DialogResult result = openFileDialog.ShowDialog();
if (result == DialogResult.OK) {
at.jku.ssw.ProfIt.Import.VS2003.Errors.count = 0;
Solution solution = ImportManager.ImportSolution(openFileDialog.FileName);
Console.WriteLine(at.jku.ssw.ProfIt.Import.VS2003.Errors.count + " errors found");
if (solution != null) {
SolutionManager.OpenSolution(solution);
Console.WriteLine("solution '" + solution.Name + "' opened");
return true;
} else {
Console.WriteLine("solution could not be opened");
return false;
}
}
return false;
}
public static string ShowNewProjectDialog() {
NewSolutionDialog dialog = new NewSolutionDialog();
DialogResult result = dialog.ShowDialog();
if (result == DialogResult.OK) {
SolutionManager.CreateNewSolution(dialog.GetSolution(), dialog.AddFiles);
return "the solution '" + SolutionManager.CurrentSolution.Name + "' has been created.";
} else return "";
}
public static void ShowAddAssemblyDialog(Project project) {
AddReferenceDialog dialog = new AddReferenceDialog();
DialogResult result = dialog.ShowDialog();
if (result == DialogResult.OK) {
project.AddReferences(dialog.References);
SolutionManager.UpdateSolutionProperties(null);
}
}
public static IReference ShowOpenComponentDialog() {
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.CheckFileExists = true;
openFileDialog.CheckPathExists = true;
openFileDialog.Filter = "Component Files|*.dll";
DialogResult result = openFileDialog.ShowDialog();
if (result == DialogResult.OK) {
return new AssemblyReference(openFileDialog.FileName);
} else return null;
}
public static void ShowAboutDialog() {
AboutDialog dialog = new AboutDialog();
dialog.ShowDialog();
}
public static void ShowProjectPropertiesDialog() {
ProjectPropertiesDialog dialog = new ProjectPropertiesDialog();
if (dialog.ShowDialog() == DialogResult.OK) {
if (SolutionManager.CurrentSolution != null) {
//SolutionManager.CurrentSolution.StartParameters = dialog.StartParameters;
SolutionManager.UpdateSolutionProperties(dialog.Solution);
Configuration.ResetCountersStrategy = dialog.ResetCountersStrategy;
}
}
}
public static void ShowProfilerSettingsDialog() {
ProfilerSettingsDialog dialog = new ProfilerSettingsDialog();
if (dialog.ShowDialog() == DialogResult.OK) {
Configuration.ImportCountersStrategy = dialog.ImportCountersStrategy;
}
}
public static void ShowResetCountersDialog() {
ResetCountersDialog dialog = new ResetCountersDialog();
if (dialog.ShowDialog() == DialogResult.OK) {
Configuration.ResetCountersStrategy = dialog.ResetCountersStrategy;
}
}
public static void ShowStartParametersDialog() {
StartParametersDialog dialog = new StartParametersDialog();
if (dialog.ShowDialog() == DialogResult.OK) {
SolutionManager.CurrentSolution.StartProject.StartParameters = dialog.StartParameters;
SolutionManager.CurrentSolution.StartProject.AskForStartParameters = !dialog.DontAskAgain;
}
}
public static void ShowAddProjectDialog() {
NewProjectDialog dialog = new NewProjectDialog();
if (dialog.ShowDialog() == DialogResult.OK) {
SolutionManager.AddProject(dialog.GetProject(), dialog.GetPath(), dialog.AddFiles);
}
}
public static ICollection ShowAddProjectReferenceDialog() {
ProjectReferenceDialog dialog = new ProjectReferenceDialog();
if (dialog.ShowDialog() == DialogResult.OK) {
return dialog.SelectedProjects;
}
return new System.Collections.ArrayList();
}
public static void ShowRenameProjectDialog(Project project) {
RenameProjectDialog dialog = new RenameProjectDialog(project.Name);
if (dialog.ShowDialog() == DialogResult.OK) {
SolutionManager.RenameProject(project, dialog.NewName);
}
}
public static void ShowFilesChangedDialog(ArrayList list) {
FileChangedDialog dialog = new FileChangedDialog(list);
dialog.ShowDialog();
}
}
}
|