31
32
namespace MonoDevelop.Projects.Gui.Dialogs.OptionPanels
33
internal class OutputOptionsPanel : AbstractOptionPanel
34
internal class OutputOptionsPanel : MultiConfigItemOptionsPanel
35
36
OutputOptionsPanelWidget widget;
36
public override void LoadPanelContents()
38
Add (widget = new OutputOptionsPanelWidget ((Properties) CustomizationObject));
41
public override bool StorePanelContents()
44
result = widget.Store ();
38
public override bool IsVisible ()
40
return ConfiguredProject is DotNetProject;
43
public override Widget CreatePanelWidget()
45
return (widget = new OutputOptionsPanelWidget ());
48
public override bool ValidateChanges ()
50
return widget.ValidateChanges ();
53
public override void LoadConfigData ()
55
widget.Load (ConfiguredProject, (DotNetProjectConfiguration) CurrentConfiguration);
59
public override void ApplyChanges()
50
66
partial class OutputOptionsPanelWidget : Gtk.Bin
52
68
DotNetProjectConfiguration configuration;
55
public OutputOptionsPanelWidget(Properties CustomizationObject)
70
public OutputOptionsPanelWidget ()
58
configuration = ((Properties)CustomizationObject).Get<DotNetProjectConfiguration>("Config");
59
project = ((Properties)CustomizationObject).Get<Project>("Project");
60
externalConsoleCheckButton.Toggled += new EventHandler (ExternalConsoleToggle);
75
public void Load (Project project, DotNetProjectConfiguration config)
77
this.configuration = config;
62
78
assemblyNameEntry.Text = configuration.OutputAssembly;
63
parametersEntry.Text = configuration.CommandLineParameters;
65
80
outputPathEntry.DefaultPath = project.BaseDirectory;
66
81
outputPathEntry.Path = configuration.OutputDirectory;
68
externalConsoleCheckButton.Active = configuration.ExternalConsole;
69
pauseConsoleOutputCheckButton.Active = configuration.PauseConsoleOutput;
71
if (!externalConsoleCheckButton.Active)
72
pauseConsoleOutputCheckButton.Sensitive = false;
84
public bool ValidateChanges ()
77
86
if (configuration == null) {
81
90
if (!FileService.IsValidFileName (assemblyNameEntry.Text)) {
82
Services.MessageService.ShowError (null, GettextCatalog.GetString ("Invalid assembly name specified"), (Gtk.Window) Toplevel, true);
91
MessageService.ShowError (GettextCatalog.GetString ("Invalid assembly name specified"));
86
if (!FileService.IsValidFileName (outputPathEntry.Path)) {
87
Services.MessageService.ShowError (null, GettextCatalog.GetString ("Invalid output directory specified"), (Gtk.Window) Toplevel, true);
95
if (!FileService.IsValidPath (outputPathEntry.Path)) {
96
MessageService.ShowError (GettextCatalog.GetString ("Invalid output directory specified"));
105
if (configuration == null)
91
108
configuration.OutputAssembly = assemblyNameEntry.Text;
92
109
configuration.OutputDirectory = outputPathEntry.Path;
93
configuration.CommandLineParameters = parametersEntry.Text;
94
configuration.ExternalConsole = externalConsoleCheckButton.Active;
95
configuration.PauseConsoleOutput = pauseConsoleOutputCheckButton.Active;
99
void ExternalConsoleToggle (object sender, EventArgs e)
101
if (externalConsoleCheckButton.Active) {
102
pauseConsoleOutputCheckButton.Sensitive = true;
103
pauseConsoleOutputCheckButton.Active = true;
105
pauseConsoleOutputCheckButton.Sensitive = false;
106
pauseConsoleOutputCheckButton.Active = false;