Beispiel #1
0
        /// <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();
        }
Beispiel #2
0
        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();
		}