Author: abelevich
Date: 2010-04-28 13:40:24 -0400 (Wed, 28 Apr 2010)
New Revision: 16831
Modified:
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/component/behavior/ClientBehavior.java
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/component/behavior/ComponentControlBehavior.java
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/renderkit/ComponentControlBehaviorRenderer.java
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/tag/BehaviorRule.java
Log:
add selector attribute, rename setLiteral method to setLiteralAttribute
Modified:
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/component/behavior/ClientBehavior.java
===================================================================
---
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/component/behavior/ClientBehavior.java 2010-04-28
17:38:19 UTC (rev 16830)
+++
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/component/behavior/ClientBehavior.java 2010-04-28
17:40:24 UTC (rev 16831)
@@ -1,5 +1,6 @@
package org.richfaces.component.behavior;
+import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
@@ -20,7 +21,7 @@
*
* base class for the client behaviors
*/
-public class ClientBehavior extends ClientBehaviorBase {
+public abstract class ClientBehavior extends ClientBehaviorBase {
private StateHelper behaviorStateHelper = null;
@@ -78,15 +79,13 @@
ELContext context = getFacesContext().getELContext();
try {
- setLiteral(name, expression.getValue(context));
- } catch (ELException ele) {
- throw new FacesException(ele);
+ setLiteralAttribute(name, expression.getValue(context));
+ } catch (ELException elem) {
+ throw new FacesException(elem);
}
}
- public void setLiteral(String name, Object value) {
- //TODO override this method
- }
+ public abstract void setLiteralAttribute(String name, Object value);
@Override
public Object saveState(FacesContext context) {
@@ -162,4 +161,14 @@
}
return (bindings);
}
+
+ protected boolean compare(Serializable key, String name) {
+ boolean retValue = false;
+ if(key != null) {
+ String keyName = key.toString();
+ retValue = keyName.equals(name);
+ }
+ return retValue;
+ }
+
}
Modified:
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/component/behavior/ComponentControlBehavior.java
===================================================================
---
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/component/behavior/ComponentControlBehavior.java 2010-04-28
17:38:19 UTC (rev 16830)
+++
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/component/behavior/ComponentControlBehavior.java 2010-04-28
17:40:24 UTC (rev 16831)
@@ -1,6 +1,5 @@
package org.richfaces.component.behavior;
-import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@@ -12,16 +11,13 @@
public static final String BEHAVIOR_ID =
"org.richfaces.behavior.ComponentControlBehavior";
- public static final String LIST_TYPE = "list";
-
-
+ private List<UIComponent> children;
+
enum PropertyKeys {
- event, target, selector, parameters, operation, type
+ event, target, selector, parameters, operation
}
- private List<UIComponent> children;
-
public List<UIComponent> getChildren() {
if(children == null) {
children = new ArrayList<UIComponent>();
@@ -37,14 +33,6 @@
getStateHelper().eval(PropertyKeys.event, eventName);
}
- public String getType() {
- return (String)getStateHelper().eval(PropertyKeys.type, LIST_TYPE);
- }
-
- public void setType(String type) {
- getStateHelper().put(PropertyKeys.type, type);
- }
-
public String getTarget() {
return (String)getStateHelper().eval(PropertyKeys.target);
}
@@ -75,21 +63,13 @@
}
@Override
- public void setLiteral(String name, Object value) {
+ public void setLiteralAttribute(String name, Object value) {
if(compare(PropertyKeys.operation, name)) {
setOperation((String)value);
} else if(compare(PropertyKeys.target, name)) {
setTarget((String)value);
+ } else if(compare(PropertyKeys.selector, name)) {
+ setSelector((String)name);
}
}
-
- private boolean compare(Serializable key, String name) {
- boolean retValue = false;
- if(key != null) {
- String keyName = key.toString();
- retValue = keyName.equals(name);
- }
- return retValue;
- }
-
}
Modified:
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/renderkit/ComponentControlBehaviorRenderer.java
===================================================================
---
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/renderkit/ComponentControlBehaviorRenderer.java 2010-04-28
17:38:19 UTC (rev 16830)
+++
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/renderkit/ComponentControlBehaviorRenderer.java 2010-04-28
17:40:24 UTC (rev 16831)
@@ -32,7 +32,7 @@
@ResourceDependency(name = "richfaces-base-component.js"),
@ResourceDependency(name = "script/component-control.js")
})
-public class ComponentControlBehaviorRenderer extends ClientBehaviorRenderer{
+public class ComponentControlBehaviorRenderer extends ClientBehaviorRenderer {
private static final String FUNC_NAME =
"RichFaces.ui.ComponentControl.execute";
@@ -43,11 +43,9 @@
private static final String PARAM_CALLBACK = "callback";
private static final String PARAM_TARGET = "target";
+
+ private static final String PARAM_SELECTOR = "selector";
- public static final String SEPARATOR = "\\.";
-
-
-
@Override
public String getScript(ClientBehaviorContext behaviorContext, ClientBehavior
behavior) {
ComponentControlBehavior controlBehavior = (ComponentControlBehavior)behavior;
@@ -58,19 +56,24 @@
String apiFunctionName = controlBehavior.getOperation();
+ //create callback function
StringBuffer script = new StringBuffer();
script.append(REF_COMPONENT).append("['").append(apiFunctionName).append("'].").append("apply").append("(");
+ //get client api function parameters
List<Object> apiFunctionParams = createSignature(controlBehavior);
script.append(REF_COMPONENT).append(",").append(ScriptUtils.toScript(apiFunctionParams.toArray())).append(");");
callback.addToBody(script);
String target = controlBehavior.getTarget();
+ String selector = controlBehavior.getSelector();
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put(PARAM_CALLBACK, callback);
parameters.put(PARAM_TARGET, target);
-
+ parameters.put(PARAM_SELECTOR, selector);
+
+ //execution function
JSFunction eventFunction = new JSFunction(FUNC_NAME);
eventFunction.addParameter(new JSReference(REF_EVENT));
eventFunction.addParameter(parameters);
Modified:
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/tag/BehaviorRule.java
===================================================================
---
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/tag/BehaviorRule.java 2010-04-28
17:38:19 UTC (rev 16830)
+++
root/ui-sandbox/trunk/components/componentcontrol/src/main/java/org/richfaces/tag/BehaviorRule.java 2010-04-28
17:40:24 UTC (rev 16831)
@@ -25,7 +25,7 @@
}
public void applyMetadata(FaceletContext ctx, Object instance) {
- ((ClientBehavior) instance).setLiteral(this.name, this.value);
+ ((ClientBehavior) instance).setLiteralAttribute(this.name, this.value);
}
}