nantaddinoptionpanel.cs

来自「c#源代码」· CS 代码 · 共 116 行

CS
116
字号
//
// SharpDevelop NAnt add-in.
//
// Copyright (C) 2004 Matthew Ward
//
// 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 of the License, 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
//
// Matthew Ward (mrward@users.sourceforge.net)

using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;

using ICSharpCode.Core.AddIns.Codons;
using ICSharpCode.Core.Properties;
using ICSharpCode.Core.Services;
using ICSharpCode.NAntAddIn;
using ICSharpCode.SharpDevelop.Internal.Project;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.Dialogs;

namespace ICSharpCode.NAntAddIn.Gui
{
	/// <summary>
	/// Options panel for the NAnt add-in.
	/// </summary>
	public class NAntAddInOptionPanel : AbstractOptionPanel
	{
		static readonly string versionComboBoxName = "versionComboBox";
		static readonly string commandTextBoxName = "nantCommandTextBox";
		static readonly string argumentsTextBoxName = "argumentsTextBox";
		static readonly string verboseCheckBoxName = "verboseCheckBox";
		static readonly string browseButtonName = "browseButton";
		static readonly string showLogoCheckBoxName = "showLogoCheckBox";
		static readonly string quietCheckBoxName = "quietCheckBox";
		static readonly string debugModeCheckBoxName = "debugModeCheckBox";
		
		public override void LoadPanelContents()
		{
			SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("NAntAddInOptionPanel.xfrm"));
					
			AddNAntVersions();
			
			ControlDictionary[commandTextBoxName].Text = AddInOptions.NAntFileName;
			ControlDictionary[argumentsTextBoxName].Text = AddInOptions.NAntArguments;
			((CheckBox)ControlDictionary[verboseCheckBoxName]).Checked = AddInOptions.Verbose;
			((CheckBox)ControlDictionary[showLogoCheckBoxName]).Checked = AddInOptions.ShowLogo;
			((CheckBox)ControlDictionary[quietCheckBoxName]).Checked = AddInOptions.Quiet;
			((CheckBox)ControlDictionary[debugModeCheckBoxName]).Checked = AddInOptions.DebugMode;
			
			ControlDictionary[browseButtonName].Click += new EventHandler(OnBrowse);
		}
		
		public override bool StorePanelContents()
		{			
			ComboBox versionComboBox = (ComboBox)ControlDictionary[versionComboBoxName];
			AddInOptions.NAntVersion = (string)versionComboBox.SelectedItem;
			
			AddInOptions.NAntFileName = ControlDictionary[commandTextBoxName].Text;
			AddInOptions.NAntArguments = ControlDictionary[argumentsTextBoxName].Text;
			AddInOptions.Verbose = ((CheckBox)ControlDictionary[verboseCheckBoxName]).Checked;
			AddInOptions.ShowLogo = ((CheckBox)ControlDictionary[showLogoCheckBoxName]).Checked;
			AddInOptions.Quiet = ((CheckBox)ControlDictionary[quietCheckBoxName]).Checked;
			AddInOptions.DebugMode = ((CheckBox)ControlDictionary[debugModeCheckBoxName]).Checked;
			
			return true;
		}
		
		/// <summary>
		/// Adds the supported NAnt versions to the drop down combo box.
		/// </summary>
		void AddNAntVersions()
		{
			ComboBox versionComboBox = (ComboBox)ControlDictionary[versionComboBoxName];
			
			string[] supportedVersions = AddInOptions.GetSupportedNAntVersions();
			
			foreach (string version in supportedVersions) {
				versionComboBox.Items.Add(version);
			}
			
			versionComboBox.SelectedItem = AddInOptions.NAntVersion;
		}
		
		/// <summary>
		/// Allows the user to browse for the NAnt executable.
		/// </summary>
		void OnBrowse(object sender, EventArgs e)
		{
			using (OpenFileDialog openFileDialog  = new OpenFileDialog()) {
				
				openFileDialog.CheckFileExists = true;
				openFileDialog.Filter = StringParserService.Parse("${res:SharpDevelop.FileFilter.ExecutableFiles}|*.exe|${res:SharpDevelop.FileFilter.AllFiles}|*.*");
				
				if (openFileDialog.ShowDialog() == DialogResult.OK) {
					ControlDictionary[commandTextBoxName].Text = openFileDialog.FileName;
				}
			}			
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?