Author: alexsmirnov
Date: 2010-10-25 23:42:34 -0400 (Mon, 25 Oct 2010)
New Revision: 19669
Added:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScript.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScriptString.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/NullConverterScript.java
Modified:
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryResource.java
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryScript.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIValidatorScript.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/AjaxOnlyScript.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientAndAjaxScript.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientOnlyScript.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScriptFunction.java
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetClientSideScriptTest.java
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetComponentScriptTest.java
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetOrCreateResourceTest.java
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererTestBase.java
Log:
CODING IN PROGRESS - issue RF-9507: ClientValidatorRendererunit tests and implementation.
https://jira.jboss.org/browse/RF-9507
Modified:
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryResource.java
===================================================================
---
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryResource.java 2010-10-25
16:36:34 UTC (rev 19668)
+++
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryResource.java 2010-10-26
03:42:34 UTC (rev 19669)
@@ -1,9 +1,86 @@
package org.richfaces.validator;
-public interface LibraryResource {
+/**
+ * This class represent information about external JavaScript library as JSF resource
+ *
+ * @author asmirnov
+ *
+ */
+public class LibraryResource {
- String getLibrary();
+ private final String library;
- String getResourceName();
+ private final String resourceName;
+ /**
+ * @param library
+ * @param resourceName
+ */
+ public LibraryResource(String library, String resourceName) {
+ this.library = library;
+ this.resourceName = resourceName;
+ }
+
+ /**
+ * @return the library
+ */
+ public String getLibrary() {
+ return library;
+ }
+
+ /**
+ * @return the resourceName
+ */
+ public String getResourceName() {
+ return resourceName;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((library == null) ? 0 : library.hashCode());
+ result = prime * result + ((resourceName == null) ? 0 :
resourceName.hashCode());
+ return result;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ LibraryResource other = (LibraryResource) obj;
+ if (library == null) {
+ if (other.library != null) {
+ return false;
+ }
+ } else if (!library.equals(other.library)) {
+ return false;
+ }
+ if (resourceName == null) {
+ if (other.resourceName != null) {
+ return false;
+ }
+ } else if (!resourceName.equals(other.resourceName)) {
+ return false;
+ }
+ return true;
+ }
+
}
\ No newline at end of file
Modified:
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryScript.java
===================================================================
---
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryScript.java 2010-10-25
16:36:34 UTC (rev 19668)
+++
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryScript.java 2010-10-26
03:42:34 UTC (rev 19669)
@@ -31,8 +31,10 @@
* @author asmirnov(a)exadel.com
*
*/
-public interface LibraryScript extends LibraryResource {
+public interface LibraryScript {
+ LibraryResource getResource();
+
String getName();
}
Modified:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIValidatorScript.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIValidatorScript.java 2010-10-25
16:36:34 UTC (rev 19668)
+++
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/component/UIValidatorScript.java 2010-10-26
03:42:34 UTC (rev 19669)
@@ -23,29 +23,339 @@
package org.richfaces.component;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
import java.util.List;
+import java.util.Map;
+import javax.el.ValueExpression;
+import javax.faces.component.NamingContainer;
import javax.faces.component.UIComponent;
-import javax.faces.component.UIOutput;
+import javax.faces.component.UINamingContainer;
+import javax.faces.component.UniqueIdVendor;
+import javax.faces.context.FacesContext;
+import javax.faces.el.ValueBinding;
+import javax.faces.event.AbortProcessingException;
+import javax.faces.event.FacesEvent;
+import javax.faces.event.FacesListener;
+import javax.faces.render.Renderer;
import org.richfaces.renderkit.html.ComponentValidatorScript;
+import com.google.common.collect.Iterators;
+import com.google.common.collect.Lists;
+
/**
- * <p class="changed_added_4_0">This component user to render Client
Validator scripts. Any ClientValidatorBehavior that requires additional scripts should put
them
- * to this component, associated with "form" target in view
resources.</p>
+ * <p class="changed_added_4_0">
+ * This component user to render Client Validator scripts. Any ClientValidatorBehavior
that requires additional scripts
+ * should put them to this component, associated with "form" target in view
resources.
+ * </p>
+ *
* @author asmirnov(a)exadel.com
- *
+ *
*/
-public class UIValidatorScript extends UIOutput {
+public class UIValidatorScript extends UIComponent {
- public List<UIComponent> getScripts() {
+ public static final String COMPONENT_TYPE =
"org.richfaces.ValidatroScript";
+
+ public static final String COMPONENT_FAMILY = "org.richfaces.Script";
+
+ private String id;
+ private UIComponent parent;
+ private final List<ComponentValidatorScript> scripts = Lists.newArrayList();
+
+ private String clientId;
+
+ public Collection<ComponentValidatorScript> getScripts() {
+ return scripts;
+ }
+
+ public ComponentValidatorScript addOrFindScript(ComponentValidatorScript
validatorScript) {
+ // TODO optimize
+ for (ComponentValidatorScript script : this.scripts) {
+ if (script.equals(validatorScript)) {
+ return script;
+ }
+ }
+ scripts.add(validatorScript);
+ return validatorScript;
+ }
+
+ @Override
+ public String getFamily() {
+ return COMPONENT_FAMILY;
+ }
+
+ public Object saveState(FacesContext context) {
+ // This is transient component
+ return null;
+ }
+
+ public void restoreState(FacesContext context, Object state) {
+ // Do nothing, this component never saved
+
+ }
+
+ public boolean isTransient() {
+ return true;
+ }
+
+ public void setTransient(boolean newTransientValue) {
+
+ }
+
+ @Override
+ public Map<String, Object> getAttributes() {
+ return Collections.emptyMap();
+ }
+
+ @Override
+ public ValueBinding getValueBinding(String name) {
+ return null;
+ }
+
+ @Override
+ public void setValueBinding(String name, ValueBinding binding) {
+ // do nothing
+
+ }
+
+ @Override
+ public ValueExpression getValueExpression(String name) {
+ return null;
+ }
+
+ @Override
+ public void setValueExpression(String name, ValueExpression binding) {
+ // do nothing
+ }
+
+ @Override
+ public String getClientId(FacesContext context) {
+ if (context == null) {
+ throw new NullPointerException();
+ }
+
+ // if the clientId is not yet set
+ if (this.clientId == null) {
+ UIComponent namingContainerAncestor = this.getNamingContainerAncestor();
+ String parentId = null;
+
+ // give the parent the opportunity to first
+ // grab a unique clientId
+ if (namingContainerAncestor != null) {
+ parentId = namingContainerAncestor.getContainerClientId(context);
+ }
+
+ // now resolve our own client id
+ String clientId = getId();
+ if (clientId == null) {
+ if (null != namingContainerAncestor && namingContainerAncestor
instanceof UniqueIdVendor) {
+ clientId = ((UniqueIdVendor)
namingContainerAncestor).createUniqueId(context, null);
+ } else {
+ clientId = context.getViewRoot().createUniqueId();
+ }
+ setId(clientId);
+ }
+ if (parentId != null) {
+ StringBuilder idBuilder = new StringBuilder(parentId.length() + 1 +
clientId.length());
+ clientId =
idBuilder.append(parentId).append(UINamingContainer.getSeparatorChar(context))
+ .append(clientId).toString();
+ }
+
+ // allow the renderer to convert the clientId
+ Renderer renderer = this.getRenderer(context);
+ if (renderer != null) {
+ this.clientId = renderer.convertClientId(context, clientId);
+ } else {
+ this.clientId = clientId;
+ }
+ }
+ return this.clientId;
+ }
+
+ private UIComponent getNamingContainerAncestor() {
+ UIComponent namingContainer = this.getParent();
+ while (namingContainer != null) {
+ if (namingContainer instanceof NamingContainer) {
+ return namingContainer;
+ }
+ namingContainer = namingContainer.getParent();
+ }
+ return null;
+ }
+
+ @Override
+ public String getId() {
+ return this.id;
+ }
+
+ @Override
+ public void setId(String id) {
+ this.id = id;
+
+ }
+
+ @Override
+ public UIComponent getParent() {
+ return this.parent;
+ }
+
+ @Override
+ public void setParent(UIComponent parent) {
+ this.parent = parent;
+ }
+
+ @Override
+ public boolean isRendered() {
+ return true;
+ }
+
+ @Override
+ public void setRendered(boolean rendered) {
+ // always rendered
+ }
+
+ @Override
+ public String getRendererType() {
// TODO Auto-generated method stub
return null;
}
+ @Override
+ public void setRendererType(String rendererType) {
+ // TODO Auto-generated method stub
- public ComponentValidatorScript addOrFindScript(ComponentValidatorScript
validatorScript) {
+ }
+
+ @Override
+ public boolean getRendersChildren() {
+ return false;
+ }
+
+ @Override
+ public List<UIComponent> getChildren() {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public int getChildCount() {
+ return 0;
+ }
+
+ @Override
+ public UIComponent findComponent(String expr) {
// TODO Auto-generated method stub
return null;
}
+
+ @Override
+ public Map<String, UIComponent> getFacets() {
+ return Collections.emptyMap();
+ }
+
+ @Override
+ public UIComponent getFacet(String name) {
+ return null;
+ }
+
+ @Override
+ public Iterator<UIComponent> getFacetsAndChildren() {
+ return Iterators.emptyIterator();
+ }
+
+ @Override
+ public void broadcast(FacesEvent event) throws AbortProcessingException {
+ // Do nothing
+ }
+
+ @Override
+ public void decode(FacesContext context) {
+ // Do nothing
+ }
+
+ @Override
+ public void encodeBegin(FacesContext context) throws IOException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void encodeChildren(FacesContext context) throws IOException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void encodeEnd(FacesContext context) throws IOException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ protected void addFacesListener(FacesListener listener) {
+ }
+
+ @Override
+ protected FacesListener[] getFacesListeners(Class clazz) {
+ return new FacesListener[0];
+ }
+
+ @Override
+ protected void removeFacesListener(FacesListener listener) {
+ }
+
+ @Override
+ public void queueEvent(FacesEvent event) {
+ if (null != getParent()) {
+ getParent().queueEvent(event);
+ }
+
+ }
+
+ @Override
+ public void processRestoreState(FacesContext context, Object state) {
+ // Do nothing, this component does not have state.
+
+ }
+
+ @Override
+ public void processDecodes(FacesContext context) {
+ // Do nothing
+
+ }
+
+ @Override
+ public void processValidators(FacesContext context) {
+ // Do nothing
+
+ }
+
+ @Override
+ public void processUpdates(FacesContext context) {
+ // Do nothing
+ }
+
+ @Override
+ public Object processSaveState(FacesContext context) {
+ // Should never be used
+ return null;
+ }
+
+ @Override
+ protected FacesContext getFacesContext() {
+ return FacesContext.getCurrentInstance();
+ }
+
+ @Override
+ protected Renderer getRenderer(FacesContext context) {
+ String rendererType = getRendererType();
+ Renderer result = null;
+ if (rendererType != null) {
+ result = context.getRenderKit().getRenderer(getFamily(), rendererType);
+ }
+ return result;
+ }
}
Modified:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/AjaxOnlyScript.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/AjaxOnlyScript.java 2010-10-25
16:36:34 UTC (rev 19668)
+++
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/AjaxOnlyScript.java 2010-10-26
03:42:34 UTC (rev 19669)
@@ -6,6 +6,10 @@
public class AjaxOnlyScript implements ComponentValidatorScript {
+ public AjaxOnlyScript(String ajaxScript) {
+ // TODO Auto-generated constructor stub
+ }
+
public String toScript() {
// TODO Auto-generated method stub
return null;
Modified:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientAndAjaxScript.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientAndAjaxScript.java 2010-10-25
16:36:34 UTC (rev 19668)
+++
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientAndAjaxScript.java 2010-10-26
03:42:34 UTC (rev 19669)
@@ -2,30 +2,48 @@
import java.util.Collection;
+import org.ajax4jsf.javascript.JSFunctionDefinition;
+import org.ajax4jsf.javascript.ScriptStringBase;
import org.richfaces.validator.LibraryResource;
-public class ClientAndAjaxScript implements ComponentValidatorScript {
+public class ClientAndAjaxScript extends JSFunctionDefinition implements
ComponentValidatorScript {
+
+
+
+ private static final NullConverterScript NULL_CONVERTER_SCRIPT = new
NullConverterScript();
- public ClientAndAjaxScript(LibraryScriptFunction clientSideConverterScript,
- Collection<LibraryScriptFunction> validatorScripts, String ajaxScript) {
- // TODO Auto-generated constructor stub
- }
+
+ private final LibraryScriptString converter;
+
+ private final Collection<? extends LibraryScriptString> validators;
+
+ private final String ajaxScript;
+
+ private boolean bodyProcessed = false;
- public String toScript() {
- // TODO Auto-generated method stub
- return null;
+ public ClientAndAjaxScript(LibraryScriptString clientSideConverterScript,
+ Collection<? extends LibraryScriptString> validatorScripts, String
ajaxScript) {
+ this.converter = null==clientSideConverterScript ?
NULL_CONVERTER_SCRIPT:clientSideConverterScript;
+ this.validators = validatorScripts;
+ this.ajaxScript = ajaxScript;
}
+
public void appendScript(StringBuffer functionString) {
- // TODO Auto-generated method stub
-
+ if(!bodyProcessed){
+ addToBody(buildBody());
+ bodyProcessed = true;
+ }
+ super.appendScript(functionString);
}
- public String getName() {
+
+ protected Object buildBody() {
// TODO Auto-generated method stub
return null;
}
+
public Collection<LibraryResource> getResources() {
// TODO Auto-generated method stub
return null;
@@ -36,4 +54,58 @@
return null;
}
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((ajaxScript == null) ? 0 : ajaxScript.hashCode());
+ result = prime * result + ((converter == null) ? 0 : converter.hashCode());
+ result = prime * result + ((validators == null) ? 0 : validators.hashCode());
+ return result;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ ClientAndAjaxScript other = (ClientAndAjaxScript) obj;
+ if (ajaxScript == null) {
+ if (other.ajaxScript != null) {
+ return false;
+ }
+ } else if (!ajaxScript.equals(other.ajaxScript)) {
+ return false;
+ }
+ if (converter == null) {
+ if (other.converter != null) {
+ return false;
+ }
+ } else if (!converter.equals(other.converter)) {
+ return false;
+ }
+ if (validators == null) {
+ if (other.validators != null) {
+ return false;
+ }
+ } else if (!validators.equals(other.validators)) {
+ return false;
+ }
+ return true;
+ }
+
}
Modified:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientOnlyScript.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientOnlyScript.java 2010-10-25
16:36:34 UTC (rev 19668)
+++
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientOnlyScript.java 2010-10-26
03:42:34 UTC (rev 19669)
@@ -3,10 +3,11 @@
import java.util.Collection;
import org.richfaces.validator.LibraryResource;
+import org.richfaces.validator.LibraryScript;
public class ClientOnlyScript implements ComponentValidatorScript {
- public ClientOnlyScript(LibraryScriptFunction clientSideConverterScript,
+ public ClientOnlyScript(LibraryScript clientSideConverterScript,
Collection<LibraryScriptFunction> validatorScripts) {
// TODO Auto-generated constructor stub
}
Modified:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java 2010-10-25
16:36:34 UTC (rev 19668)
+++
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java 2010-10-26
03:42:34 UTC (rev 19669)
@@ -155,7 +155,7 @@
private ComponentValidatorScript createValidatorScript(ClientBehaviorContext
behaviorContext,
ClientValidatorBehavior behavior, Collection<ValidatorDescriptor>
validators,
LibraryScriptFunction clientSideConverterScript) {
- Collection<LibraryScriptFunction> validatorScripts =
getClientSideValidatorScript(behaviorContext.getFacesContext(), validators);
+ Collection<? extends LibraryScriptString> validatorScripts =
getClientSideValidatorScript(behaviorContext.getFacesContext(), validators);
if (validatorScripts.isEmpty()) {
return new AjaxOnlyScript();
} else if (validatorScripts.size() < validators.size()) {
@@ -185,14 +185,14 @@
* @return
* @throws ScriptNotFoundException
*/
- LibraryScriptFunction getClientSideConverterScript(FacesContext facesContext,
+ LibraryScriptString getClientSideConverterScript(FacesContext facesContext,
ConverterDescriptor converter) throws ScriptNotFoundException {
ClientScriptService clientScriptService =
ServiceTracker.getService(facesContext, ClientScriptService.class);
return createClientFunction(converter, VALUE_LITERAL, clientScriptService);
}
- private LibraryScriptFunction createClientFunction(ValidatorDescriptor descriptor,
JSLiteral variable,
+ private LibraryScriptString createClientFunction(ValidatorDescriptor descriptor,
JSLiteral variable,
ClientScriptService clientScriptService) throws ScriptNotFoundException {
LibraryScript script =
clientScriptService.getScript(descriptor.getValidatorClass());
return new LibraryScriptFunction(script, variable, descriptor.getMessage(),
descriptor.getValidatorParameters());
@@ -208,11 +208,11 @@
* @return
* @throws ScriptNotFoundException
*/
- Collection<LibraryScriptFunction> getClientSideValidatorScript(FacesContext
facesContext,
+ Collection<? extends LibraryScriptString>
getClientSideValidatorScript(FacesContext facesContext,
Collection<ValidatorDescriptor> validators) {
ClientScriptService clientScriptService =
ServiceTracker.getService(facesContext, ClientScriptService.class);
- List<LibraryScriptFunction> scripts = Lists.newArrayList();
+ List<LibraryScriptString> scripts = Lists.newArrayList();
for (ValidatorDescriptor validator : validators) {
try {
scripts.add(createClientFunction(validator, CONVERTED_VALUE_LITERAL,
clientScriptService));
Added:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScript.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScript.java
(rev 0)
+++
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScript.java 2010-10-26
03:42:34 UTC (rev 19669)
@@ -0,0 +1,13 @@
+package org.richfaces.renderkit.html;
+
+import org.richfaces.validator.LibraryResource;
+
+public interface LibraryScript {
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the resourceName
+ */
+ public abstract LibraryResource getResource();
+
+}
\ No newline at end of file
Property changes on:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScript.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Modified:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScriptFunction.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScriptFunction.java 2010-10-25
16:36:34 UTC (rev 19668)
+++
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScriptFunction.java 2010-10-26
03:42:34 UTC (rev 19669)
@@ -24,40 +24,30 @@
package org.richfaces.renderkit.html;
import org.ajax4jsf.javascript.JSFunction;
+import org.richfaces.validator.LibraryResource;
import org.richfaces.validator.LibraryScript;
/**
- * <p class="changed_added_4_0"></p>
+ * <p class="changed_added_4_0">This class represents call to function in
external library.</p>
* @author asmirnov(a)exadel.com
*
*/
-public class LibraryScriptFunction extends JSFunction {
+public class LibraryScriptFunction extends JSFunction implements LibraryScriptString {
- private final String library;
- private final String resourceName;
+ private final LibraryResource resource;
public LibraryScriptFunction(LibraryScript libraryScript, Object... parameters) {
super(libraryScript.getName(), parameters);
- this.library = libraryScript.getLibrary();
- this.resourceName = libraryScript.getResourceName();
+ this.resource = libraryScript.getResource();
}
- /**
- * <p class="changed_added_4_0"></p>
- * @return the resourceName
+ /* (non-Javadoc)
+ * @see org.richfaces.renderkit.html.LibraryScriptString#getResource()
*/
- public String getResourceName() {
- return resourceName;
+ public LibraryResource getResource() {
+ return resource;
}
- /**
- * <p class="changed_added_4_0"></p>
- * @return the library
- */
- public String getLibrary() {
- return library;
- }
-
}
Added:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScriptString.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScriptString.java
(rev 0)
+++
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScriptString.java 2010-10-26
03:42:34 UTC (rev 19669)
@@ -0,0 +1,19 @@
+package org.richfaces.renderkit.html;
+
+import org.ajax4jsf.javascript.ScriptString;
+import org.richfaces.validator.LibraryResource;
+
+/**
+ * This interface describes JavaScript object with possible dependent resource.
+ * @author asmirnov
+ *
+ */
+public interface LibraryScriptString extends ScriptString {
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the resource
+ */
+ LibraryResource getResource();
+
+}
\ No newline at end of file
Property changes on:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScriptString.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Added:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/NullConverterScript.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/NullConverterScript.java
(rev 0)
+++
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/NullConverterScript.java 2010-10-26
03:42:34 UTC (rev 19669)
@@ -0,0 +1,26 @@
+/**
+ *
+ */
+package org.richfaces.renderkit.html;
+
+import org.ajax4jsf.javascript.JSLiteral;
+import org.richfaces.validator.LibraryResource;
+
+/**
+ * This class represents "dummy" converter call ( just refference to
"value" variable )
+ * @author asmirnov
+ *
+ */
+public class NullConverterScript extends JSLiteral implements LibraryScriptString {
+
+ public NullConverterScript() {
+ super(ClientValidatorRenderer.VALUE_VAR);
+ }
+ /* (non-Javadoc)
+ * @see org.richfaces.renderkit.html.LibraryScriptString#getResource()
+ */
+ public LibraryResource getResource() {
+ return null;
+ }
+
+}
Property changes on:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/NullConverterScript.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Modified:
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetClientSideScriptTest.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetClientSideScriptTest.java 2010-10-25
16:36:34 UTC (rev 19668)
+++
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetClientSideScriptTest.java 2010-10-26
03:42:34 UTC (rev 19669)
@@ -29,7 +29,7 @@
@RunWith(MockTestRunner.class)
public class RendererGetClientSideScriptTest extends RendererTestBase {
-
+
@Mock
private ValidatorDescriptor descriptor;
@@ -62,7 +62,7 @@
expect(scriptService.getScript(RegexValidator.class)).andThrow(new
ScriptNotFoundException());
controller.replay();
- Collection<LibraryScriptFunction> clientSideValidatorScript =
renderer.getClientSideValidatorScript(
+ Collection<? extends LibraryScriptString> clientSideValidatorScript =
renderer.getClientSideValidatorScript(
environment.getFacesContext(), descriptors);
assertTrue(clientSideValidatorScript.isEmpty());
controller.verify();
@@ -85,16 +85,14 @@
(Map<String, Object>) VALIDATOR_PARAMS);
expect(scriptService.getScript(RegexValidator.class)).andReturn(script);
expect(script.getName()).andReturn(REGEX_VALIDATOR);
- expect(script.getLibrary()).andReturn(ORG_RICHFACES);
- expect(script.getResourceName()).andReturn(CLIENT_VALIDATORS_JS);
+ expect(script.getResource()).andReturn(CLIENT_VALIDATOR_LIBRARY);
controller.replay();
- Collection<LibraryScriptFunction> clientSideScripts =
renderer.getClientSideValidatorScript(environment.getFacesContext(), descriptors);
- LibraryScriptFunction clientSideScript =
Iterables.getOnlyElement(clientSideScripts);
+ Collection<? extends LibraryScriptString> clientSideScripts =
renderer.getClientSideValidatorScript(environment.getFacesContext(), descriptors);
+ LibraryScriptFunction clientSideScript = (LibraryScriptFunction)
Iterables.getOnlyElement(clientSideScripts);
assertEquals(ClientValidatorRenderer.CONVERTED_VALUE_LITERAL,
clientSideScript.getParameters().get(0));
assertEquals(VALIDATOR_MESSAGE, clientSideScript.getParameters().get(1));
assertEquals(VALIDATOR_PARAMS, clientSideScript.getParameters().get(2));
- assertEquals(ORG_RICHFACES, clientSideScript.getLibrary());
- assertEquals(CLIENT_VALIDATORS_JS, clientSideScript.getResourceName());
+ assertEquals(CLIENT_VALIDATOR_LIBRARY, clientSideScript.getResource());
controller.verify();
}
@@ -106,16 +104,14 @@
(Map<String, Object>) VALIDATOR_PARAMS);
expect(scriptService.getScript(NumberConverter.class)).andReturn(script);
expect(script.getName()).andReturn(REGEX_VALIDATOR);
- expect(script.getLibrary()).andReturn(ORG_RICHFACES);
- expect(script.getResourceName()).andReturn(CLIENT_VALIDATORS_JS);
+ expect(script.getResource()).andReturn(CLIENT_VALIDATOR_LIBRARY);
controller.replay();
LibraryScriptFunction clientSideScript =
- renderer.getClientSideConverterScript(environment.getFacesContext(),
converterDescriptor);
+ (LibraryScriptFunction)
renderer.getClientSideConverterScript(environment.getFacesContext(),
converterDescriptor);
assertEquals(ClientValidatorRenderer.VALUE_LITERAL,
clientSideScript.getParameters().get(0));
assertEquals(VALIDATOR_MESSAGE, clientSideScript.getParameters().get(1));
assertEquals(VALIDATOR_PARAMS, clientSideScript.getParameters().get(2));
- assertEquals(ORG_RICHFACES, clientSideScript.getLibrary());
- assertEquals(CLIENT_VALIDATORS_JS, clientSideScript.getResourceName());
+ assertEquals(CLIENT_VALIDATOR_LIBRARY, clientSideScript.getResource());
controller.verify();
}
Modified:
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetComponentScriptTest.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetComponentScriptTest.java 2010-10-25
16:36:34 UTC (rev 19668)
+++
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetComponentScriptTest.java 2010-10-26
03:42:34 UTC (rev 19669)
@@ -209,17 +209,15 @@
private LibraryScriptFunction createFunction(final String name, String var, String
message) {
LibraryScript libraryScript = new LibraryScript() {
- public String getResourceName() {
- return CLIENT_VALIDATORS_JS;
- }
+
- public String getLibrary() {
- return ORG_RICHFACES;
- }
-
public String getName() {
return name;
}
+
+ public LibraryResource getResource() {
+ return CLIENT_VALIDATOR_LIBRARY;
+ }
};
return new LibraryScriptFunction(libraryScript, new JSLiteral(var), message,
VALIDATOR_PARAMS);
}
@@ -239,7 +237,7 @@
}
@Override
- Collection<LibraryScriptFunction>
getClientSideValidatorScript(FacesContext facesContext,
+ Collection<? extends LibraryScriptString>
getClientSideValidatorScript(FacesContext facesContext,
Collection<ValidatorDescriptor> validators) {
return Lists.newArrayList(validatorFunctions);
}
Modified:
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetOrCreateResourceTest.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetOrCreateResourceTest.java 2010-10-25
16:36:34 UTC (rev 19668)
+++
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetOrCreateResourceTest.java 2010-10-26
03:42:34 UTC (rev 19669)
@@ -105,6 +105,7 @@
};
};
setupBehaviorContext(input);
+
expect(validatorScript.createCallScript(FUNCTION_NAME)).andReturn(FUNCTION_NAME);
expect(input.getClientId(facesContext)).andReturn(FUNCTION_NAME);
controller.replay();
assertEquals(FUNCTION_NAME,
renderer.buildAndStoreValidatorScript(behaviorContext, mockBehavior));
Modified:
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererTestBase.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererTestBase.java 2010-10-25
16:36:34 UTC (rev 19668)
+++
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererTestBase.java 2010-10-26
03:42:34 UTC (rev 19669)
@@ -5,6 +5,7 @@
import org.jboss.test.faces.mock.Mock;
import org.richfaces.component.behavior.BehaviorTestBase;
import org.richfaces.component.behavior.ClientValidatorBehavior;
+import org.richfaces.validator.LibraryResource;
import com.google.common.collect.ImmutableMap;
@@ -15,6 +16,7 @@
protected static final String REGEX_VALIDATOR = "regexValidator";
protected static final String VALIDATOR_MESSAGE = "Validator Message";
protected static final Map<String, ? extends Object> VALIDATOR_PARAMS =
ImmutableMap.of("foo", "value", "bar", 10);
+ protected static final LibraryResource CLIENT_VALIDATOR_LIBRARY = new
LibraryResource(ORG_RICHFACES, CLIENT_VALIDATORS_JS);
protected ClientValidatorRenderer renderer = new ClientValidatorRenderer();