/// <summary> /// Adds an expressión to the expression list. /// </summary> /// <param name="expression"> /// The expression to be added. /// </param> private void AddExpression(string expression) { LexicalExpressionWidget widget = new LexicalExpressionWidget(this.lexicalRuleEditorDialog, expressionsVB); widget.Expression = expression; expressionsVB.Add(widget); widget.CheckPosition(); }
private void OnOkBtnClicked(object sender, EventArgs args) { List <string> errors = new List <string>(); bool regExErrors = false; if (String.IsNullOrEmpty(ruleNameEntry.Text.Trim())) { errors.Add("· La regla necesita un nombre."); } if (expressionsVB.Children.Length == 0) { errors.Add("· Debes añadir al menos una expresión a la regla."); } else { for (int i = 0; i < expressionsVB.Children.Length; i++) { LexicalExpressionWidget widget = (LexicalExpressionWidget)(expressionsVB.Children[i]); if (String.IsNullOrEmpty(widget.Expression.Trim())) { errors.Add(String.Format("· La expresión {0} está en blanco.", i + 1)); break; } else { // We are gonna check if the expression // is well formed, the hard way. try { System.Text.RegularExpressions.Regex.IsMatch("meh", widget.Expression.Trim()); } catch (Exception) { errors.Add(String.Format("· La expresión {0} no es una expressión regular de .Net/Mono válida.", i + 1)); regExErrors = true; } } } } if (errors.Count > 0) { string errorss = string.Join("\n", errors.ToArray()); OkDialog.Show(lexicalRuleEditorDialog, MessageType.Warning, "Para continuar, debes solucionar los siguentes problemas:\n\n{0}{1}", errorss, regExErrors?"\n\nPara mas información sobre el formato de las expresiones regulares, visite http://msdn.microsoft.com/es-es/library/hs600312(VS.80).aspx.":""); lexicalRuleEditorDialog.Respond(ResponseType.None); } else { lexicalRuleEditorDialog.Respond(ResponseType.Ok); } }
/// <summary> /// Adds an expressión to the expression list. /// </summary> /// <param name="expression"> /// The expression to be added. /// </param> private void AddExpression(string expression) { LexicalExpressionWidget widget = new LexicalExpressionWidget(this.lexicalRuleEditorDialog, expressionsVB); widget.Expression = expression; expressionsVB.Add(widget); widget.CheckPosition(); }