Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / WebControls / RegexEditorDialog.cs / 1 / RegexEditorDialog.cs
namespace System.Web.UI.Design.WebControls { using System; using System.Design; using System.Drawing; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design; using System.Globalization; using System.Windows.Forms; using System.Diagnostics; using System.Text.RegularExpressions; using System.Web.UI.Design.Util; using System.Windows.Forms.Design; ////// /// /// Dialog for editting regular expressions used by the RegularExpressionValidator /// [ System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode), ToolboxItem(false) ] public class RegexEditorDialog : Form { private System.ComponentModel.Container components; private System.Windows.Forms.TextBox txtExpression; private System.Windows.Forms.ListBox lstStandardExpressions; private System.Windows.Forms.Label lblStandardExpressions; private System.Windows.Forms.Label lblTestResult; private System.Windows.Forms.TextBox txtSampleInput; private System.Windows.Forms.Button cmdTestValidate; private System.Windows.Forms.Label lblInput; private System.Windows.Forms.Label lblExpression; private System.Windows.Forms.GroupBox grpExpression; private System.Windows.Forms.Button cmdCancel; private System.Windows.Forms.Button cmdOK; private string regularExpression; private bool settingValue; private bool firstActivate = true; private ISite site; static object [] cannedExpressions; ////// /// /// public string RegularExpression { get { return regularExpression; } set { regularExpression = value; } } ///[To be supplied.] ////// /// /// public RegexEditorDialog(ISite site) { this.site = site; InitializeComponent(); settingValue = false; regularExpression = string.Empty; } ///[To be supplied.] ////// /// /// protected override void Dispose(bool disposing) { if (disposing) { components.Dispose(); } base.Dispose(disposing); } private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.lblTestResult = new System.Windows.Forms.Label(); this.lstStandardExpressions = new System.Windows.Forms.ListBox(); this.lblStandardExpressions = new System.Windows.Forms.Label(); this.cmdTestValidate = new System.Windows.Forms.Button(); this.txtExpression = new System.Windows.Forms.TextBox(); this.lblInput = new System.Windows.Forms.Label(); this.grpExpression = new System.Windows.Forms.GroupBox(); this.txtSampleInput = new System.Windows.Forms.TextBox(); this.cmdCancel = new System.Windows.Forms.Button(); this.lblExpression = new System.Windows.Forms.Label(); this.cmdOK = new System.Windows.Forms.Button(); Font dialogFont = UIServiceHelper.GetDialogFont(site); if (dialogFont != null) { Font = dialogFont; } // Set RightToLeft mode based on resource file string rtlText = SR.GetString(SR.RTL); if (!String.Equals(rtlText, "RTL_False", StringComparison.Ordinal)) { RightToLeft = RightToLeft.Yes; RightToLeftLayout = true; } MinimizeBox = false; MaximizeBox = false; ShowInTaskbar = false; StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = SR.GetString(SR.RegexEditor_Title); this.ImeMode = System.Windows.Forms.ImeMode.Disable; this.AcceptButton = cmdOK; this.CancelButton = cmdCancel; this.Icon = null; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.ClientSize = new System.Drawing.Size(348, 215); this.Activated += new System.EventHandler(RegexTypeEditor_Activated); this.HelpRequested += new HelpEventHandler(Form_HelpRequested); this.HelpButton = true; this.HelpButtonClicked += new CancelEventHandler(HelpButton_Click); lstStandardExpressions.Location = new System.Drawing.Point(12, 30); lstStandardExpressions.Size = new System.Drawing.Size(324, 84); lstStandardExpressions.TabIndex = 1; lstStandardExpressions.SelectedIndexChanged += new System.EventHandler(lstStandardExpressions_SelectedIndexChanged); lstStandardExpressions.Sorted = true; lstStandardExpressions.IntegralHeight = true; lstStandardExpressions.Items.AddRange(CannedExpressions); lblStandardExpressions.Location = new System.Drawing.Point(12, 12); lblStandardExpressions.Text = SR.GetString(SR.RegexEditor_StdExp); lblStandardExpressions.Size = new System.Drawing.Size(328, 16); lblStandardExpressions.TabIndex = 0; txtExpression.Location = new System.Drawing.Point(12, 140); txtExpression.TabIndex = 3; txtExpression.Size = new System.Drawing.Size(324, 20); txtExpression.TextChanged += new System.EventHandler(txtExpression_TextChanged); lblExpression.Location = new System.Drawing.Point(12, 122); lblExpression.Text = SR.GetString(SR.RegexEditor_ValidationExpression); lblExpression.Size = new System.Drawing.Size(328, 16); lblExpression.TabIndex = 2; cmdOK.Location = new System.Drawing.Point(180, 180); cmdOK.DialogResult = System.Windows.Forms.DialogResult.OK; cmdOK.Size = new System.Drawing.Size(75, 23); cmdOK.TabIndex = 9; cmdOK.Text = SR.GetString(SR.OK); cmdOK.FlatStyle = FlatStyle.System; cmdOK.Click += new System.EventHandler(cmdOK_Click); cmdCancel.Location = new System.Drawing.Point(261, 180); cmdCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; cmdCancel.Size = new System.Drawing.Size(75, 23); cmdCancel.TabIndex = 10; cmdCancel.FlatStyle = FlatStyle.System; cmdCancel.Text = SR.GetString(SR.Cancel); // This is hidden and out of the way for now. grpExpression.Location = new System.Drawing.Point(8, 280); grpExpression.ImeMode = System.Windows.Forms.ImeMode.Disable; grpExpression.TabIndex = 4; grpExpression.TabStop = false; grpExpression.Text = SR.GetString(SR.RegexEditor_TestExpression); grpExpression.Size = new System.Drawing.Size(328, 80); grpExpression.Visible = false; txtSampleInput.Location = new System.Drawing.Point(88, 24); txtSampleInput.TabIndex = 6; txtSampleInput.Size = new System.Drawing.Size(160, 20); grpExpression.Controls.Add(lblTestResult); grpExpression.Controls.Add(txtSampleInput); grpExpression.Controls.Add(cmdTestValidate); grpExpression.Controls.Add(lblInput); cmdTestValidate.Location = new System.Drawing.Point(256, 24); cmdTestValidate.Size = new System.Drawing.Size(56, 20); cmdTestValidate.TabIndex = 7; cmdTestValidate.Text = SR.GetString(SR.RegexEditor_Validate); cmdTestValidate.FlatStyle = FlatStyle.System; cmdTestValidate.Click += new System.EventHandler(cmdTestValidate_Click); lblInput.Location = new System.Drawing.Point(8, 28); lblInput.Text = SR.GetString(SR.RegexEditor_SampleInput); lblInput.Size = new System.Drawing.Size(80, 16); lblInput.TabIndex = 5; lblTestResult.Location = new System.Drawing.Point(8, 56); lblTestResult.Size = new System.Drawing.Size(312, 16); lblTestResult.TabIndex = 8; this.Controls.Add(txtExpression); this.Controls.Add(lstStandardExpressions); this.Controls.Add(lblStandardExpressions); this.Controls.Add(lblExpression); this.Controls.Add(grpExpression); this.Controls.Add(cmdCancel); this.Controls.Add(cmdOK); } ///[To be supplied.] ////// /// /// protected void txtExpression_TextChanged(object sender, System.EventArgs e){ if (settingValue || firstActivate) return; lblTestResult.Text = string.Empty; UpdateExpressionList(); } ///[To be supplied.] ////// /// /// protected void lstStandardExpressions_SelectedIndexChanged(object sender, System.EventArgs e) { if (settingValue) return; // first item should always be "(Custom)" if (lstStandardExpressions.SelectedIndex >= 1) { CannedExpression expression = (CannedExpression) lstStandardExpressions.SelectedItem; settingValue = true; txtExpression.Text = expression.Expression; settingValue = false; } } ///[To be supplied.] ////// /// /// protected void RegexTypeEditor_Activated(object sender, System.EventArgs e) { if (!firstActivate) { return; } txtExpression.Text = RegularExpression; UpdateExpressionList(); firstActivate = false; } private void UpdateExpressionList() { bool found = false; settingValue = true; string expression = txtExpression.Text; // first item is always be "(Custom)" for (int i = 1; i < lstStandardExpressions.Items.Count; i++) { if (expression == ((CannedExpression)lstStandardExpressions.Items[i]).Expression) { lstStandardExpressions.SelectedIndex = i; found = true; } } if (!found) { lstStandardExpressions.SelectedIndex = 0; } settingValue = false; } ///[To be supplied.] ////// /// /// protected void cmdTestValidate_Click(object sender, System.EventArgs args) { // Note: keep this in sync with RegularExpressionValidator.EvaluateIsValid try { bool isValid; // check the expression first so we find all bad expressions // we are looking for an exact match, not just a search hit Match m = Regex.Match(txtSampleInput.Text, txtExpression.Text); isValid = (m.Success && m.Index == 0 && m.Length == txtSampleInput.Text.Length); // Blank input is always valid if (txtSampleInput.Text.Length == 0) { isValid = true; } else { } lblTestResult.Text = isValid ? SR.GetString(SR.RegexEditor_InputValid) : SR.GetString(SR.RegexEditor_InputInvalid); lblTestResult.ForeColor = isValid ? Color.Black : Color.Red; } catch { lblTestResult.Text = SR.GetString(SR.RegexEditor_BadExpression); lblTestResult.ForeColor = Color.Red; } } private void ShowHelp() { IHelpService helpService = (IHelpService)site.GetService(typeof(IHelpService)); if (helpService != null) { helpService.ShowHelpFromKeyword("net.Asp.RegularExpressionEditor"); } } ///[To be supplied.] ///protected void cmdHelp_Click(object sender, System.EventArgs e) { ShowHelp(); } private void Form_HelpRequested(object sender, HelpEventArgs e) { ShowHelp(); } private void HelpButton_Click(object sender, CancelEventArgs e) { e.Cancel = true; ShowHelp(); } /// /// /// /// protected void cmdOK_Click(object sender, System.EventArgs e) { this.RegularExpression = this.txtExpression.Text; } private static readonly RegExpEntry [] _entries = { new RegExpEntry(SR.RegexCanned_SocialSecurity, SR.RegexCanned_SocialSecurity_Format), new RegExpEntry(SR.RegexCanned_USPhone, SR.RegexCanned_USPhone_Format), new RegExpEntry(SR.RegexCanned_Zip, SR.RegexCanned_Zip_Format), new RegExpEntry(SR.RegexCanned_FrZip, SR.RegexCanned_FrZip_Format), new RegExpEntry(SR.RegexCanned_FrPhone, SR.RegexCanned_FrPhone_Format), new RegExpEntry(SR.RegexCanned_DeZip, SR.RegexCanned_DeZip_Format), new RegExpEntry(SR.RegexCanned_DePhone, SR.RegexCanned_DePhone_Format), new RegExpEntry(SR.RegexCanned_JpnZip, SR.RegexCanned_JpnZip_Format), new RegExpEntry(SR.RegexCanned_JpnPhone, SR.RegexCanned_JpnPhone_Format), new RegExpEntry(SR.RegexCanned_PrcZip, SR.RegexCanned_PrcZip_Format), new RegExpEntry(SR.RegexCanned_PrcPhone, SR.RegexCanned_PrcPhone_Format), new RegExpEntry(SR.RegexCanned_PrcSocialSecurity, SR.RegexCanned_PrcSocialSecurity_Format), }; private object [] CannedExpressions { get { if (cannedExpressions == null) { ArrayList regExps = new ArrayList(); regExps.Add(SR.GetString(SR.RegexCanned_Custom)); regExps.Add(new CannedExpression(SR.GetString(SR.RegexCanned_Email), @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*")); regExps.Add(new CannedExpression(SR.GetString(SR.RegexCanned_URL), @"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?")); foreach (RegExpEntry entry in _entries) { if (entry.Name.Length > 0) { regExps.Add(new CannedExpression(SR.GetString(entry.Name), SR.GetString(entry.Format))); } } cannedExpressions = new object [regExps.Count]; regExps.CopyTo(cannedExpressions); } return cannedExpressions; } } private class CannedExpression { public string Description; public string Expression; public CannedExpression(string description, string expression) { Description = description; Expression = expression; } public override string ToString() { return Description; } } private class RegExpEntry { public string Name; public string Format; public RegExpEntry(string name, string format) { Name = name; Format = format; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.[To be supplied.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ControllableStoryboardAction.cs
- DataKeyCollection.cs
- OleDbConnection.cs
- ListViewGroup.cs
- NavigatingCancelEventArgs.cs
- ValueExpressions.cs
- AssemblyBuilder.cs
- ListViewDeletedEventArgs.cs
- ContainerFilterService.cs
- Attachment.cs
- ConfigXmlAttribute.cs
- FastPropertyAccessor.cs
- HighlightVisual.cs
- CustomError.cs
- TextRenderer.cs
- LinkLabelLinkClickedEvent.cs
- AppDomainManager.cs
- XmlSchemaObject.cs
- ScrollBar.cs
- TableProviderWrapper.cs
- RelatedCurrencyManager.cs
- DataGridViewSelectedCellCollection.cs
- MemberInfoSerializationHolder.cs
- HtmlTextArea.cs
- WinFormsUtils.cs
- ParallelTimeline.cs
- ImageInfo.cs
- CodeCastExpression.cs
- Label.cs
- TableSectionStyle.cs
- BitArray.cs
- SystemEvents.cs
- SqlDataRecord.cs
- DataGridViewSelectedColumnCollection.cs
- WebReferencesBuildProvider.cs
- PenContexts.cs
- AmbientLight.cs
- NativeActivity.cs
- InputBinder.cs
- JsonObjectDataContract.cs
- DataComponentNameHandler.cs
- MonitorWrapper.cs
- ReachIDocumentPaginatorSerializerAsync.cs
- ChannelServices.cs
- DataObjectPastingEventArgs.cs
- HttpCapabilitiesEvaluator.cs
- FrameworkElementFactory.cs
- KeyNotFoundException.cs
- SafeMarshalContext.cs
- SystemInfo.cs
- httpserverutility.cs
- ApplicationFileCodeDomTreeGenerator.cs
- ByteStream.cs
- SQLDouble.cs
- SqlTypeConverter.cs
- CipherData.cs
- VoiceInfo.cs
- log.cs
- ZipIOExtraFieldZip64Element.cs
- XmlBoundElement.cs
- DataMemberConverter.cs
- CodeTryCatchFinallyStatement.cs
- BackEase.cs
- DragEventArgs.cs
- AssemblyBuilderData.cs
- SingleAnimation.cs
- MultiAsyncResult.cs
- ResourceExpressionBuilder.cs
- PointCollectionConverter.cs
- RawStylusSystemGestureInputReport.cs
- CodeConstructor.cs
- OpacityConverter.cs
- ProcessRequestAsyncResult.cs
- SystemDropShadowChrome.cs
- FileInfo.cs
- StrongNameMembershipCondition.cs
- AssemblyHash.cs
- InternalsVisibleToAttribute.cs
- CssClassPropertyAttribute.cs
- PartialCachingControl.cs
- Matrix.cs
- BindingElement.cs
- PrePrepareMethodAttribute.cs
- AuthenticationSection.cs
- TableLayoutColumnStyleCollection.cs
- CharacterString.cs
- PointValueSerializer.cs
- GridViewDeletedEventArgs.cs
- MemberExpressionHelper.cs
- IconHelper.cs
- MailBnfHelper.cs
- WindowsImpersonationContext.cs
- MetabaseSettingsIis7.cs
- UrlAuthFailedErrorFormatter.cs
- StreamReader.cs
- ResourcePool.cs
- ReliableChannelFactory.cs
- BinaryReader.cs
- CheckBoxList.cs
- _IPv6Address.cs