public static void contributeClientConstraintDescriptorSource()

in tapestry-beanvalidator/src/main/java/org/apache/tapestry5/beanvalidator/modules/BeanValidatorModule.java [94:217]


    public static void contributeClientConstraintDescriptorSource(final JavaScriptSupport javaScriptSupport,
                                                                  final Configuration<ClientConstraintDescriptor> configuration)
    {
        configuration.add(new BaseCCD(Max.class, "value")
        {
            @Override
            public void applyClientValidation(MarkupWriter writer, String message, Map<String, Object> attributes)
            {
                javaScriptSupport.require("t5/core/validation");
                writer.attributes(
                        "data-validate", true,
                        "data-validate-max", attributes.get("value"),
                        "data-max-message", message);

            }
        });

        configuration.add(new BaseCCD(Min.class, "value")
        {
            @Override
            public void applyClientValidation(MarkupWriter writer, String message, Map<String, Object> attributes)
            {
                javaScriptSupport.require("t5/core/validation");
                writer.attributes(
                        DataConstants.VALIDATION_ATTRIBUTE, true,
                        "data-validate-min", attributes.get("value"),
                        "data-min-message", message);

            }
        });

        configuration.add(new BaseCCD(NotNull.class)
        {
            @Override
            public void applyClientValidation(MarkupWriter writer, String message, Map<String, Object> attributes)
            {
                javaScriptSupport.require("t5/core/validation");
                writer.attributes(
                        DataConstants.VALIDATION_ATTRIBUTE, true,
                        "data-optionality", "required",
                        "data-required-message", message);
            }
        });

        configuration.add(new BaseCCD(Null.class)
        {
            @Override
            public void applyClientValidation(MarkupWriter writer, String message, Map<String, Object> attributes)
            {
                javaScriptSupport.require(MODULE_NAME);
                writer.attributes(
                        DataConstants.VALIDATION_ATTRIBUTE, true,
                        "data-optionality", "prohibited",
                        "data-prohibited-message", message);
            }
        });

        configuration.add(new BaseCCD(Pattern.class, "regexp")
        {
            @Override
            public void applyClientValidation(MarkupWriter writer, String message, Map<String, Object> attributes)
            {
                javaScriptSupport.require(MODULE_NAME);
                writer.attributes(
                        DataConstants.VALIDATION_ATTRIBUTE, true,
                        "data-validate-regexp", attributes.get("regexp"),
                        "data-regexp-message", message);
            }
        });

        configuration.add(new BaseCCD(Size.class, "min", "max")
        {
            @Override
            public void applyClientValidation(MarkupWriter writer, String message, Map<String, Object> attributes)
            {
                javaScriptSupport.require(MODULE_NAME);
                writer.attributes(
                        DataConstants.VALIDATION_ATTRIBUTE, true,
                        "data-range-message", message);

                int min = (Integer) attributes.get("min");

                if (min != 0)
                {
                    writer.attributes("data-range-min", min);
                }

                int max = (Integer) attributes.get("max");

                if (max != Integer.MAX_VALUE)
                {
                    writer.attributes("data-range-max", max);
                }
            }
        });

        configuration.add(new BaseCCD(AssertTrue.class)
        {
            @Override
            public void applyClientValidation(MarkupWriter writer, String message, Map<String, Object> attributes)
            {
                javaScriptSupport.require("t5/core/validation");

                writer.attributes(
                        DataConstants.VALIDATION_ATTRIBUTE, true,
                        "data-expected-status", "checked",
                        "data-checked-message", message);
            }
        });

        configuration.add(new BaseCCD(AssertFalse.class)
        {
            @Override
            public void applyClientValidation(MarkupWriter writer, String message, Map<String, Object> attributes)
            {
                javaScriptSupport.require("t5/core/validation");

                writer.attributes(
                        DataConstants.VALIDATION_ATTRIBUTE, true,
                        "data-expected-status", "unchecked",
                        "data-checked-message", message);
            }
        });
    }