You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2012/12/15 03:12:56 UTC
[3/6] git commit: Create a constant for the data-validation attribute
Create a constant for the data-validation attribute
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/395d034f
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/395d034f
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/395d034f
Branch: refs/heads/5.4-js-rewrite
Commit: 395d034f910c47590b2d8b45ebf3604158d35388
Parents: 4a043f3
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Fri Dec 14 17:54:44 2012 -0800
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Fri Dec 14 17:54:44 2012 -0800
----------------------------------------------------------------------
.../services/javascript/ModuleManagerImpl.java | 45 +--------------
.../services/javascript/DataConstants.java | 30 ++++++++++
.../java/org/apache/tapestry5/validator/Email.java | 4 +-
.../java/org/apache/tapestry5/validator/Max.java | 4 +-
.../org/apache/tapestry5/validator/MaxLength.java | 3 +-
.../java/org/apache/tapestry5/validator/Min.java | 3 +-
.../org/apache/tapestry5/validator/MinLength.java | 3 +-
.../org/apache/tapestry5/validator/Regexp.java | 3 +-
.../org/apache/tapestry5/validator/Required.java | 5 +-
9 files changed, 49 insertions(+), 51 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/ModuleManagerImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/ModuleManagerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/ModuleManagerImpl.java
index 01a475e..5895d65 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/ModuleManagerImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/ModuleManagerImpl.java
@@ -18,7 +18,6 @@ import org.apache.tapestry5.Asset;
import org.apache.tapestry5.SymbolConstants;
import org.apache.tapestry5.annotations.Path;
import org.apache.tapestry5.dom.Element;
-import org.apache.tapestry5.func.F;
import org.apache.tapestry5.internal.services.assets.ResourceChangeTracker;
import org.apache.tapestry5.ioc.Messages;
import org.apache.tapestry5.ioc.Resource;
@@ -35,7 +34,6 @@ import org.apache.tapestry5.services.assets.StreamableResourceSource;
import org.apache.tapestry5.services.javascript.JavaScriptModuleConfiguration;
import org.apache.tapestry5.services.javascript.ModuleManager;
-import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -50,9 +48,6 @@ public class ModuleManagerImpl implements ModuleManager
private final boolean compactJSON;
- // Library names, sorted by order of descending length.
- private final List<String> libraryNames;
-
private final Map<String, Resource> shimModuleNameToResource = CollectionFactory.newMap();
private final Resource classpathRoot;
@@ -81,17 +76,6 @@ public class ModuleManagerImpl implements ModuleManager
classpathRoot = assetSource.resourceForPath("");
- libraryNames = F.flow(resolver.getLibraryNames())
- .append("app")
- .sort(new Comparator<String>()
- {
- @Override
- public int compare(String o1, String o2)
- {
- return o2.length() - o1.length();
- }
- }).toList();
-
extensions = CollectionFactory.newSet("js");
extensions.addAll(streamableResourceSource.fileExtensionsForContentType("text/javascript"));
@@ -216,41 +200,16 @@ public class ModuleManagerImpl implements ModuleManager
return resource;
}
- // Look for the longest match.
-
- for (String library : libraryNames)
- {
- int len = library.length();
-
- if (moduleName.length() <= len)
- {
- continue;
- }
-
- if (moduleName.startsWith(library) && moduleName.charAt(len) == '/')
- {
- return findResourceInsideLibrary(library, moduleName);
- }
- }
-
- return classpathRoot;
- }
-
- private Resource findResourceInsideLibrary(String library, String moduleName)
- {
- String extra = moduleName.substring(library.length() + 1);
// Tack on a fake extension; otherwise modules whose name includes a '.' get mangled
// by Resource.withExtension().
- String baseName = String.format("/META-INF/modules/%s/%s.EXT",
- library,
- extra);
+ String baseName = String.format("/META-INF/modules/%s.EXT", moduleName);
Resource baseResource = classpathRoot.forFile(baseName);
for (String extension : extensions)
{
- Resource resource = baseResource.withExtension(extension);
+ resource = baseResource.withExtension(extension);
if (resource.exists())
{
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/DataConstants.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/DataConstants.java b/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/DataConstants.java
new file mode 100644
index 0000000..ebd742e
--- /dev/null
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/DataConstants.java
@@ -0,0 +1,30 @@
+// Copyright 2012 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package org.apache.tapestry5.services.javascript;
+
+/**
+ * Constants related to client-side behaviors; generally, these are attributes added to elements on the server
+ * side to trigger behaviors on the client-side.
+ *
+ * @since 5.4
+ */
+public class DataConstants
+{
+ /**
+ * Attribute, set to "true" (or any non-null value) to indicate that the element should be notified about
+ * form submission and validations events.
+ */
+ public static String VALIDATION_ATTRIBUTE = "data-validation";
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/validator/Email.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Email.java b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Email.java
index ef5cc01..23a4eb1 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Email.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Email.java
@@ -19,6 +19,7 @@ import org.apache.tapestry5.MarkupWriter;
import org.apache.tapestry5.ValidationException;
import org.apache.tapestry5.ioc.MessageFormatter;
import org.apache.tapestry5.services.FormSupport;
+import org.apache.tapestry5.services.javascript.DataConstants;
import org.apache.tapestry5.services.javascript.JavaScriptSupport;
import java.util.regex.Pattern;
@@ -45,7 +46,8 @@ public class Email extends AbstractValidator<Void, String>
{
javaScriptSupport.require("core/validation");
- writer.getElement().attributes("data-validation", "true",
+ writer.attributes(
+ DataConstants.VALIDATION_ATTRIBUTE, true,
"data-validate-regexp", PATTERN.pattern(),
"data-regexp-message", formatter.toString());
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/validator/Max.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Max.java b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Max.java
index 646d443..c998a69 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Max.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Max.java
@@ -19,6 +19,7 @@ import org.apache.tapestry5.MarkupWriter;
import org.apache.tapestry5.ValidationException;
import org.apache.tapestry5.ioc.MessageFormatter;
import org.apache.tapestry5.services.FormSupport;
+import org.apache.tapestry5.services.javascript.DataConstants;
import org.apache.tapestry5.services.javascript.JavaScriptSupport;
/**
@@ -49,7 +50,8 @@ public class Max extends AbstractValidator<Long, Number>
if (formSupport.isClientValidationEnabled())
{
javaScriptSupport.require("core/validation");
- writer.getElement().attributes("data-validation", "true",
+
+ writer.attributes(DataConstants.VALIDATION_ATTRIBUTE, true,
"data-validate-max", constraintValue.toString(),
"data-max-message", buildMessage(formatter, field, constraintValue));
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/validator/MaxLength.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/validator/MaxLength.java b/tapestry-core/src/main/java/org/apache/tapestry5/validator/MaxLength.java
index db0faf1..e51e335 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/validator/MaxLength.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/validator/MaxLength.java
@@ -19,6 +19,7 @@ import org.apache.tapestry5.MarkupWriter;
import org.apache.tapestry5.ValidationException;
import org.apache.tapestry5.ioc.MessageFormatter;
import org.apache.tapestry5.services.FormSupport;
+import org.apache.tapestry5.services.javascript.DataConstants;
import org.apache.tapestry5.services.javascript.JavaScriptSupport;
/**
@@ -48,7 +49,7 @@ public final class MaxLength extends AbstractValidator<Integer, String>
{
if (formSupport.isClientValidationEnabled())
{
- writer.getElement().attributes("data-validate", "true",
+ writer.attributes(DataConstants.VALIDATION_ATTRIBUTE, true,
"data-validate-max-length", constraintValue.toString(),
"data-max-length-message", buildMessage(formatter, field, constraintValue));
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/validator/Min.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Min.java b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Min.java
index e1d7472..18d577a 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Min.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Min.java
@@ -19,6 +19,7 @@ import org.apache.tapestry5.MarkupWriter;
import org.apache.tapestry5.ValidationException;
import org.apache.tapestry5.ioc.MessageFormatter;
import org.apache.tapestry5.services.FormSupport;
+import org.apache.tapestry5.services.javascript.DataConstants;
import org.apache.tapestry5.services.javascript.JavaScriptSupport;
/* A vaidator that enforces that a number is greater than some minimum integer value. */
@@ -47,7 +48,7 @@ public class Min extends AbstractValidator<Long, Number>
if (formSupport.isClientValidationEnabled())
{
javaScriptSupport.require("core/validation");
- writer.getElement().attributes("data-validation", "true",
+ writer.attributes(DataConstants.VALIDATION_ATTRIBUTE, true,
"data-validate-min", constraintValue.toString(),
"data-min-message", buildMessage(formatter, field, constraintValue));
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/validator/MinLength.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/validator/MinLength.java b/tapestry-core/src/main/java/org/apache/tapestry5/validator/MinLength.java
index e3af221..82338d1 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/validator/MinLength.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/validator/MinLength.java
@@ -19,6 +19,7 @@ import org.apache.tapestry5.MarkupWriter;
import org.apache.tapestry5.ValidationException;
import org.apache.tapestry5.ioc.MessageFormatter;
import org.apache.tapestry5.services.FormSupport;
+import org.apache.tapestry5.services.javascript.DataConstants;
import org.apache.tapestry5.services.javascript.JavaScriptSupport;
/**
@@ -48,7 +49,7 @@ public final class MinLength extends AbstractValidator<Integer, String>
{
if (formSupport.isClientValidationEnabled())
{
- writer.getElement().attributes("data-validate", "true",
+ writer.attributes(DataConstants.VALIDATION_ATTRIBUTE, true,
"data-validate-min-length", constraintValue.toString(),
"data-min-length-message", buildMessage(formatter, field, constraintValue));
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/validator/Regexp.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Regexp.java b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Regexp.java
index 92f781a..7a399d6 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Regexp.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Regexp.java
@@ -19,6 +19,7 @@ import org.apache.tapestry5.MarkupWriter;
import org.apache.tapestry5.ValidationException;
import org.apache.tapestry5.ioc.MessageFormatter;
import org.apache.tapestry5.services.FormSupport;
+import org.apache.tapestry5.services.javascript.DataConstants;
import org.apache.tapestry5.services.javascript.JavaScriptSupport;
import java.util.regex.Matcher;
@@ -46,7 +47,7 @@ public class Regexp extends AbstractValidator<Pattern, String>
{
javaScriptSupport.require("core/validation");
- writer.getElement().attributes("data-validation", "true",
+ writer.attributes(DataConstants.VALIDATION_ATTRIBUTE, true,
"data-validate-regexp", constraintValue.pattern(),
"data-regexp-message", buildMessage(formatter, field, constraintValue));
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/395d034f/tapestry-core/src/main/java/org/apache/tapestry5/validator/Required.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Required.java b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Required.java
index bf1cd34..7f59b72 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/validator/Required.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/validator/Required.java
@@ -20,6 +20,7 @@ import org.apache.tapestry5.ValidationException;
import org.apache.tapestry5.ioc.MessageFormatter;
import org.apache.tapestry5.ioc.internal.util.InternalUtils;
import org.apache.tapestry5.services.FormSupport;
+import org.apache.tapestry5.services.javascript.DataConstants;
import org.apache.tapestry5.services.javascript.JavaScriptSupport;
/**
@@ -60,8 +61,8 @@ public final class Required extends AbstractValidator<Void, Object>
{
javaScriptSupport.require("core/validation");
- writer.getElement().attributes(
- "data-validation", "true",
+ writer.attributes(
+ DataConstants.VALIDATION_ATTRIBUTE, true,
"data-optionality", "required",
"data-required-message", buildMessage(formatter, field));
}