JBoss Rich Faces SVN: r17076 - root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/html.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2010-05-17 08:35:26 -0400 (Mon, 17 May 2010)
New Revision: 17076
Modified:
root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/html/BehaviorTagHandlerDelegate.java
Log:
Modified: root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/html/BehaviorTagHandlerDelegate.java
===================================================================
--- root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/html/BehaviorTagHandlerDelegate.java 2010-05-17 12:32:00 UTC (rev 17075)
+++ root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/html/BehaviorTagHandlerDelegate.java 2010-05-17 12:35:26 UTC (rev 17076)
@@ -71,8 +71,11 @@
FacesContext context = ctx.getFacesContext();
BehaviorStack behaviorStack = BehaviorStack.getBehaviorStack(context, true);
+
behaviorStack.pushBehavior(context, clientBehavior, this.behaviorId, this.eventName);
+
owner.applyNextHandler(ctx, parent);
+
behaviorStack.popBehavior();
}
14 years, 4 months
JBoss Rich Faces SVN: r17075 - root/core/trunk/api/src/main/java/org/ajax4jsf/component.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2010-05-17 08:32:00 -0400 (Mon, 17 May 2010)
New Revision: 17075
Modified:
root/core/trunk/api/src/main/java/org/ajax4jsf/component/AjaxClientBehavior.java
Log:
add setter/getter for the immediate attribute
Modified: root/core/trunk/api/src/main/java/org/ajax4jsf/component/AjaxClientBehavior.java
===================================================================
--- root/core/trunk/api/src/main/java/org/ajax4jsf/component/AjaxClientBehavior.java 2010-05-17 12:30:32 UTC (rev 17074)
+++ root/core/trunk/api/src/main/java/org/ajax4jsf/component/AjaxClientBehavior.java 2010-05-17 12:32:00 UTC (rev 17075)
@@ -61,4 +61,9 @@
public Object getData();
public void setData(Object data);
+
+ public boolean isImmediate();
+
+ public void setImmediate(boolean immediate) ;
+
}
14 years, 4 months
JBoss Rich Faces SVN: r17074 - root/core/trunk/impl/src/main/java/org/ajax4jsf/renderkit.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2010-05-17 08:30:32 -0400 (Mon, 17 May 2010)
New Revision: 17074
Modified:
root/core/trunk/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java
Log:
add @region var
Modified: root/core/trunk/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java
===================================================================
--- root/core/trunk/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java 2010-05-17 12:26:02 UTC (rev 17073)
+++ root/core/trunk/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java 2010-05-17 12:30:32 UTC (rev 17074)
@@ -84,6 +84,7 @@
public static final String ALL = "@all";
public static final String FORM = "@form";
public static final String THIS = "@this";
+ public static final String REGION = "@region";
public static final String NONE = "@none";
public static final Set<String> GLOBAL_META_COMPONENTS;
14 years, 4 months
JBoss Rich Faces SVN: r17073 - in root/ui/core/trunk/api/src/main/java/org: ajax4jsf/renderkit and 3 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2010-05-17 08:26:02 -0400 (Mon, 17 May 2010)
New Revision: 17073
Added:
root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/behavior/BehaviorStateHelper.java
root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/behavior/ClientBehavior.java
root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/html/BehaviorTagHandlerDelegate.java
root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/html/CustomBehaviorHandler.java
root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/tag/
root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/tag/BehaviorRule.java
Modified:
root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java
root/ui/core/trunk/api/src/main/java/org/ajax4jsf/renderkit/AjaxBehaviorRenderer.java
Log:
RF-8635, add base classes for the behaviors
Modified: root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java
===================================================================
--- root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java 2010-05-17 11:49:37 UTC (rev 17072)
+++ root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java 2010-05-17 12:26:02 UTC (rev 17073)
@@ -1,3 +1,25 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
package org.ajax4jsf.component.behavior;
import java.util.Collection;
@@ -2,8 +24,7 @@
import java.util.Collections;
+import java.util.EnumSet;
import java.util.Set;
-import javax.el.ELContext;
-import javax.el.ValueExpression;
-import javax.faces.component.UIComponentBase;
-import javax.faces.context.FacesContext;
+import javax.faces.FacesException;
+import javax.faces.component.behavior.ClientBehaviorHint;
@@ -15,374 +36,248 @@
import org.richfaces.cdk.annotations.Tag;
import org.richfaces.cdk.annotations.TagType;
+
/**
* @author Anton Belevich
+ *
*/
+
@JsfBehavior(
- id = "org.ajax4jsf.behavior.Ajax",
- tag = @Tag(name = "ajax", handler = "org.richfaces.view.facelets.html.AjaxHandler", type = TagType.Facelets)
+ id = "org.ajax4jsf.behavior.Ajax",
+ tag = @Tag(name = "ajax", handler = "org.richfaces.view.facelets.html.AjaxHandler", type = TagType.Facelets)
)
-public class AjaxBehavior extends javax.faces.component.behavior.AjaxBehavior implements AjaxClientBehavior {
+public class AjaxBehavior extends ClientBehavior implements AjaxClientBehavior {
+
public static final String BEHAVIOR_ID = "org.ajax4jsf.behavior.Ajax";
- private Set<String> execute;
- private Boolean limitRender;
- private String onbeforedomupdate;
- private String onbegin;
- private String oncomplete;
- private Object data;
- private String queueId;
- private Set<String> render;
- private String similarityGroupingId;
- private String statusId;
+
+ private static final Set<ClientBehaviorHint> HINTS =
+ Collections.unmodifiableSet(EnumSet.of(ClientBehaviorHint.SUBMITTING));
+
+
+ enum PropertyKeys {
+ data, execute, onbeforedomupdate, onbegin, oncomplete, onerror, onevent,
+ queueId, render, similarityGroupingId, status, disabled, limitRender, immediate
+ }
+
+ private static final Set<String> ALL_LIST = Collections.singleton("@all");
+ private static final Set<String> FORM_LIST = Collections.singleton("@form");
+ private static final Set<String> THIS_LIST = Collections.singleton("@this");
+ private static final Set<String> REGION_LIST = Collections.singleton("@region");
+ private static final Set<String> NONE_LIST = Collections.singleton("@none");
- private static enum Attributes {
- limitRender, queueId, status, render, execute, similarityGroupingId, oncomplete, onbegin, onbeforedomupdate,
- other, data;
-
- public static Attributes toAttribute(String name) {
- try {
- return valueOf(name);
- } catch (Exception ex) {
- return other;
+ @Override
+ public void setLiteralAttribute(String name, Object value) {
+ if (compare(PropertyKeys.data, name)) {
+ setData(value);
+ } else if (compare(PropertyKeys.execute, name)) {
+ Set<String> set = toSet(name, value);
+ if(set != null) {
+ setExecute(set);
+ } else {
+ throw new FacesException(value
+ + " : '"
+ + name
+ + "' attribute value must be either a String or a Collection");
}
+
+ } else if (compare(PropertyKeys.render, name)) {
+ Set<String> set = toSet(name, value);
+ if(set != null) {
+ setRender(set);
+ } else {
+ throw new FacesException(value
+ + " : '"
+ + name
+ + "' attribute value must be either a String or a Collection");
+ }
+
+ } else if (compare(PropertyKeys.onbeforedomupdate, name)) {
+ setOnbeforedomupdate((String)value);
+ } else if (compare(PropertyKeys.onbegin, name)) {
+ setOnbegin((String)value);
+ } else if (compare(PropertyKeys.oncomplete, name)) {
+ setOncomplete((String)value);
+ } else if (compare(PropertyKeys.onerror, name)) {
+ setOnerror((String)value);
+ } else if (compare(PropertyKeys.onevent, name)) {
+ setOnevent((String)value);
+ } else if (compare(PropertyKeys.queueId, name)) {
+ setQueueId((String)value);
+ } else if (compare(PropertyKeys.similarityGroupingId, name)) {
+ setSimilarityGroupingId((String)value);
+ } else if (compare(PropertyKeys.status, name)) {
+ setStatus((String)value);
+ } else if (compare(PropertyKeys.disabled, name)) {
+ setDisabled((Boolean)value);
+ } else if (compare(PropertyKeys.limitRender, name)) {
+ setLimitRender((Boolean)value);
+ } else if(compare(PropertyKeys.immediate, name)) {
+ setImmediate((Boolean)value);
}
}
- protected Set<String> asSet(Object render) {
- return AjaxRendererUtils.asSet(render);
+ private Set<String> toSet(String propertyName, Object value) {
+ if (value instanceof String) {
+ String strValue = (String)value;
+ if (strValue.indexOf(' ') == -1) {
+ return toSingleton(propertyName, strValue);
+ }
+ return AjaxRendererUtils.asSet(strValue);
+ }
+ return null;
}
-
- public void setOnbegin(String onbegin) {
- this.onbegin = onbegin;
- clearInitialState();
- }
-
- public String getOnbegin() {
- if (this.onbegin != null) {
- return this.onbegin;
+
+ private static Set <String> toSingleton(String propertyName, String value) {
+ if ((null == value) || (value.length() == 0)) {
+ return null;
}
- ValueExpression ve = getValueExpression(Attributes.onbegin.toString());
+ if (value.charAt(0) == '@') {
+ Set<String> list;
- if (ve != null) {
- ELContext elContext = FacesContext.getCurrentInstance().getELContext();
-
- return (String) ve.getValue(elContext);
+ if (AjaxRendererUtils.ALL.equals(value)) {
+ list = ALL_LIST;
+ } else if (AjaxRendererUtils.FORM.equals(value)){
+ list = FORM_LIST;
+ } else if (AjaxRendererUtils.THIS.equals(value)) {
+ list = THIS_LIST;
+ } else if (AjaxRendererUtils.REGION.equals(value)) {
+ list = REGION_LIST;
+ } else if (AjaxRendererUtils.NONE.equals(value)) {
+ list = NONE_LIST;
+ } else {
+ throw new FacesException(value
+ + " : Invalid id keyword specified for '"
+ + propertyName
+ + "' attribute");
+ }
+
+ return list;
}
+ return Collections.singleton(value);
+ }
+
+ public Object getData() {
+ return getStateHelper().eval(PropertyKeys.data);
+ }
+
+ public void setData(Object data) {
+ getStateHelper().put(PropertyKeys.data, data);
+ }
- return this.onbegin;
+ public Collection<String> getExecute() {
+ return (Collection<String>)getStateHelper().eval(PropertyKeys.execute);
}
- public void setOnbeforedomupdate(String onbeforedomupdate) {
- this.onbeforedomupdate = onbeforedomupdate;
- clearInitialState();
+ public void setExecute(Collection<String> execute) {
+ getStateHelper().put(PropertyKeys.execute,execute);
}
public String getOnbeforedomupdate() {
- if (this.onbeforedomupdate != null) {
- return this.onbeforedomupdate;
- }
+ return (String)getStateHelper().eval(PropertyKeys.onbeforedomupdate);
+ }
- ValueExpression ve = getValueExpression(Attributes.onbeforedomupdate.toString());
-
- if (ve != null) {
- ELContext elContext = FacesContext.getCurrentInstance().getELContext();
-
- return (String) ve.getValue(elContext);
- }
-
- return this.onbeforedomupdate;
+ public void setOnbeforedomupdate(String onbeforedomupdate) {
+ getStateHelper().put(PropertyKeys.onbeforedomupdate,onbeforedomupdate);
}
- public void setOncomplete(String oncomplete) {
- this.oncomplete = oncomplete;
- clearInitialState();
+ public String getOnbegin() {
+ return (String)getStateHelper().eval(PropertyKeys.onbegin);
}
+
+ public void setOnbegin(String onbegin) {
+ getStateHelper().put(PropertyKeys.onbegin, onbegin);
+ }
public String getOncomplete() {
- if (this.oncomplete != null) {
- return this.oncomplete;
- }
-
- ValueExpression ve = getValueExpression(Attributes.oncomplete.toString());
-
- if (ve != null) {
- ELContext elContext = FacesContext.getCurrentInstance().getELContext();
-
- return (String) ve.getValue(elContext);
- }
-
- return this.oncomplete;
+ return (String)getStateHelper().eval(PropertyKeys.oncomplete);
}
-
- public void setData(Object data) {
- this.data = data;
- clearInitialState();
+
+ public void setOncomplete(String oncomplete) {
+ getStateHelper().put(PropertyKeys.oncomplete,oncomplete);
}
- public Object getData() {
- if (this.data != null) {
- return this.data;
- }
-
- ValueExpression ve = getValueExpression(Attributes.data.toString());
-
- if (ve != null) {
- ELContext elContext = FacesContext.getCurrentInstance().getELContext();
-
- return ve.getValue(elContext);
- }
-
- return this.data;
+ public String getOnerror() {
+ return (String)getStateHelper().eval(PropertyKeys.onerror);
}
-
- @Override
- public void setRender(Collection<String> render) {
- this.render = asSet(render);
- clearInitialState();
+
+ public void setOnerror(String onerror) {
+ getStateHelper().put(PropertyKeys.onerror,onerror);
}
- @Override
- public Collection<String> getRender() {
- return getCollectionValue(render, Attributes.render.toString());
+ public String getOnevent() {
+ return (String)getStateHelper().eval(PropertyKeys.onevent);
}
-
- @Override
- public void setExecute(Collection<String> execute) {
- this.execute = asSet(execute);
- clearInitialState();
+
+ public void setOnevent(String onevent) {
+ getStateHelper().put(PropertyKeys.onevent,onevent);
}
- @Override
- public Collection<String> getExecute() {
- return getCollectionValue(execute, Attributes.execute.toString());
+ public String getQueueId() {
+ return (String)getStateHelper().eval(PropertyKeys.queueId);
}
+
+ public void setQueueId(String queueId) {
+ getStateHelper().put(PropertyKeys.queueId,queueId);
+ }
- protected Collection<String> getCollectionValue(Collection<String> collection, String attribute) {
- if (collection != null) {
- return collection;
- }
-
- ValueExpression ve = getValueExpression(attribute);
-
- if (ve != null) {
- FacesContext context = FacesContext.getCurrentInstance();
- Object value = ve.getValue(context.getELContext());
-
- return asSet(value);
- }
-
- return Collections.emptyList();
+ public Collection<String> getRender() {
+ return (Collection<String>)getStateHelper().eval(PropertyKeys.render);
}
+
+ public void setRender(Collection<String> render) {
+ getStateHelper().put(PropertyKeys.render, render);
+ }
public String getSimilarityGroupingId() {
- if (this.similarityGroupingId != null) {
- return this.similarityGroupingId;
- }
-
- ValueExpression ve = getValueExpression(Attributes.similarityGroupingId.toString());
-
- if (ve != null) {
- ELContext elContext = FacesContext.getCurrentInstance().getELContext();
-
- return (String) ve.getValue(elContext);
- }
-
- return this.similarityGroupingId;
+ return (String)getStateHelper().eval(PropertyKeys.similarityGroupingId);
}
public void setSimilarityGroupingId(String similarityGroupingId) {
- this.similarityGroupingId = similarityGroupingId;
- clearInitialState();
+ getStateHelper().put(PropertyKeys.similarityGroupingId, similarityGroupingId);
}
public String getStatus() {
- if (this.statusId != null) {
- return this.statusId;
- }
-
- ValueExpression ve = getValueExpression(Attributes.status.toString());
-
- if (ve != null) {
- ELContext elContext = FacesContext.getCurrentInstance().getELContext();
-
- return (String) ve.getValue(elContext);
- }
-
- return this.statusId;
+ return (String)getStateHelper().eval(PropertyKeys.status);
}
-
- public void setStatus(String statusId) {
- this.statusId = statusId;
- clearInitialState();
+
+ public void setStatus(String status) {
+ getStateHelper().put(PropertyKeys.status, status);
}
-
- public String getQueueId() {
- if (this.queueId != null) {
- return this.queueId;
- }
-
- ValueExpression ve = getValueExpression(Attributes.queueId.toString());
-
- if (ve != null) {
- ELContext elContext = FacesContext.getCurrentInstance().getELContext();
-
- return (String) ve.getValue(elContext);
- }
-
- return this.queueId;
+
+ public boolean isDisabled() {
+ return (Boolean)getStateHelper().eval(PropertyKeys.disabled, false);
}
-
- public void setQueueId(String queueId) {
- this.queueId = queueId;
- clearInitialState();
- }
- public boolean isLimitRender() {
- if (this.limitRender != null) {
- return this.limitRender.booleanValue();
- }
+ public void setDisabled(boolean disabled) {
+ getStateHelper().put(PropertyKeys.disabled, disabled);
+ }
- ValueExpression ve = getValueExpression(Attributes.limitRender.toString());
-
- if (ve != null) {
- ELContext elContext = FacesContext.getCurrentInstance().getELContext();
- Boolean value = (Boolean) ve.getValue(elContext);
-
- return value != null ? value.booleanValue() : false;
- }
-
- return false;
+ public boolean isLimitRender() {
+ return (Boolean)getStateHelper().eval(PropertyKeys.limitRender, false);
}
public void setLimitRender(boolean limitRender) {
- this.limitRender = limitRender;
- clearInitialState();
+ getStateHelper().put(PropertyKeys.limitRender, limitRender);
}
+
+ public boolean isImmediate(){
+ return (Boolean)getStateHelper().eval(PropertyKeys.immediate, false);
+ }
+ public void setImmediate(boolean immediate) {
+ getStateHelper().put(PropertyKeys.limitRender, immediate);
+ }
+
@Override
public String getRendererType() {
return BEHAVIOR_ID;
}
-
+
@Override
- public void setValueExpression(String name, ValueExpression expression) {
- if (expression != null && expression.isLiteralText()) {
- Object value = getExpressionLiteralValue(expression);
-
- switch (Attributes.toAttribute(name)) {
- case limitRender:
- this.limitRender = value != null ? (Boolean) value : Boolean.FALSE;
-
- break;
-
- case execute:
- this.execute = value != null ? asSet(value) : null;
-
- break;
-
- case render:
- this.render = value != null ? asSet(value) : null;
-
- break;
-
- case queueId:
- this.queueId = value != null ? (String) value : null;
-
- break;
-
- case status:
- this.statusId = value != null ? (String) value : null;
-
- break;
-
- case similarityGroupingId:
- this.similarityGroupingId = value != null ? (String) value : null;
-
- break;
-
- case onbeforedomupdate:
- this.onbeforedomupdate = value != null ? (String) value : null;
-
- break;
-
- case onbegin:
- this.onbegin = value != null ? (String) value : null;
-
- break;
-
- case oncomplete:
- this.oncomplete = value != null ? (String) value : null;
-
- break;
-
- case data:
- this.data = value != null ? value : null;
-
- break;
-
- default:
- break;
- }
- }
-
- super.setValueExpression(name, expression);
+ public Set<ClientBehaviorHint> getHints() {
+ return HINTS;
}
+}
- protected Object getExpressionLiteralValue(ValueExpression expression) {
- return expression != null ? expression.getValue(FacesContext.getCurrentInstance().getELContext()) : null;
- }
- @Override
- public Object saveState(FacesContext context) {
- Object superState = super.saveState(context);
- Object[] values;
-
- if (initialStateMarked()) {
- if (superState == null) {
- values = null;
- } else {
- values = new Object[]{superState};
- }
- } else {
- values = new Object[11];
- values[0] = superState;
- values[1] = limitRender;
- values[2] = execute;
- values[3] = render;
- values[4] = queueId;
- values[5] = statusId;
- values[6] = similarityGroupingId;
- values[7] = onbeforedomupdate;
- values[8] = onbegin;
- values[9] = oncomplete;
- values[10] = UIComponentBase.saveAttachedState(context, data);
- }
-
- return values;
- }
-
- @Override
- public void restoreState(FacesContext context, Object state) {
- if (state != null) {
- Object[] values = (Object[]) state;
-
- super.restoreState(context, values[0]);
-
- if (values.length != 1) {
- this.limitRender = (Boolean) values[1];
- this.execute = asSet(values[2]);
- this.render = asSet(values[3]);
- this.queueId = (String) values[4];
- this.statusId = (String) values[5];
- this.similarityGroupingId = (String) values[6];
- this.onbeforedomupdate = (String) values[7];
- this.onbegin = (String) values[8];
- this.oncomplete = (String) values[9];
- this.data = UIComponentBase.restoreAttachedState(context, values[10]);
- clearInitialState();
- }
- }
- }
-
-}
Added: root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/behavior/BehaviorStateHelper.java
===================================================================
--- root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/behavior/BehaviorStateHelper.java (rev 0)
+++ root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/behavior/BehaviorStateHelper.java 2010-05-17 12:26:02 UTC (rev 17073)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright ${year}, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.ajax4jsf.component.behavior;
+
+import javax.el.ValueExpression;
+import javax.faces.context.FacesContext;
+
+import org.richfaces.PartialStateHolderHelper;
+
+/**
+ * @author Anton Belevich
+ *
+ */
+public class BehaviorStateHelper extends PartialStateHolderHelper {
+
+ private ClientBehavior behavior;
+
+ public BehaviorStateHelper(ClientBehavior behavior) {
+ super(behavior);
+ this.behavior = behavior;
+ }
+
+ @Override
+ protected Object getValueExpressionValue(String name) {
+ Object retVal = null;
+ ValueExpression ve = behavior.getValueExpression(name);
+ if (ve != null) {
+ retVal = ve.getValue(FacesContext.getCurrentInstance().getELContext());
+ }
+ return retVal;
+ }
+}
Added: root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/behavior/ClientBehavior.java
===================================================================
--- root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/behavior/ClientBehavior.java (rev 0)
+++ root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/behavior/ClientBehavior.java 2010-05-17 12:26:02 UTC (rev 17073)
@@ -0,0 +1,192 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright ${year}, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.ajax4jsf.component.behavior;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.el.ELContext;
+import javax.el.ELException;
+import javax.el.ValueExpression;
+import javax.faces.FacesException;
+import javax.faces.component.StateHelper;
+import javax.faces.component.UIComponentBase;
+import javax.faces.component.behavior.ClientBehaviorBase;
+import javax.faces.context.FacesContext;
+
+/**
+ * @author Anton Belevich
+ *
+ * base class for the client behaviors
+ */
+public abstract class ClientBehavior extends ClientBehaviorBase {
+
+ private StateHelper behaviorStateHelper = null;
+
+ private Map<String, ValueExpression> bindings;
+
+ public StateHelper getStateHelper() {
+ if (behaviorStateHelper == null) {
+ behaviorStateHelper = new BehaviorStateHelper(this);
+ }
+ return behaviorStateHelper;
+ }
+
+ public ValueExpression getValueExpression(String name) {
+ if (name == null) {
+ throw new NullPointerException();
+ }
+
+ return ((bindings == null) ? null : bindings.get(name));
+ }
+
+ public void setValueExpression(String name, ValueExpression valueExpression) {
+ if (name == null) {
+ throw new NullPointerException();
+ }
+
+ if (valueExpression != null) {
+
+ if (valueExpression.isLiteralText()) {
+ setLiteralValue(name, valueExpression);
+ } else {
+ if (bindings == null) {
+ bindings = new HashMap<String, ValueExpression>(6, 1.0f);
+ }
+ bindings.put(name, valueExpression);
+ }
+
+ } else {
+ if (bindings != null) {
+ bindings.remove(name);
+ if (bindings.isEmpty()) {
+ bindings = null;
+ }
+ }
+ }
+ clearInitialState();
+ }
+
+ protected FacesContext getFacesContext() {
+ return FacesContext.getCurrentInstance();
+ }
+
+ public void setLiteralValue(String name, ValueExpression expression) {
+ assert (expression.isLiteralText());
+ ELContext context = getFacesContext().getELContext();
+
+ try {
+ setLiteralAttribute(name, expression.getValue(context));
+ } catch (ELException elem) {
+ throw new FacesException(elem);
+ }
+ }
+
+ public abstract void setLiteralAttribute(String name, Object value);
+
+ @Override
+ public Object saveState(FacesContext context) {
+ Object[] state = null;
+
+ Object parentState = super.saveState(context);
+ if (initialStateMarked()) {
+ if (parentState != null) {
+ state = new Object[] { parentState };
+ }
+ } else {
+ state = new Object[3];
+ state[0] = parentState;
+
+ Object attrs = null;
+ if (behaviorStateHelper != null) {
+ attrs = behaviorStateHelper.saveState(context);
+ }
+ state[1] = attrs;
+ state[2] = saveBindings(context, bindings);
+
+ }
+ return state;
+ }
+
+ @Override
+ public void restoreState(FacesContext context, Object state) {
+ if (state != null) {
+ Object[] stateObject = (Object[]) state;
+ super.restoreState(context, stateObject[0]);
+ if (stateObject.length > 1) {
+ if (behaviorStateHelper != null) {
+ behaviorStateHelper.restoreState(context, stateObject[1]);
+ }
+ }
+ restoreBindings(context, stateObject[2]);
+ }
+ }
+
+ // Utility for saving bindings state
+ private static Object saveBindings(FacesContext context, Map<String, ValueExpression> bindings) {
+
+ if (bindings == null) {
+ return (null);
+ }
+
+ Object[] values = new Object[2];
+ values[0] = bindings.keySet().toArray(new String[bindings.size()]);
+
+ Object[] bindingValues = bindings.values().toArray();
+ for (int i = 0; i < bindingValues.length; i++) {
+ bindingValues[i] = UIComponentBase.saveAttachedState(context, bindingValues[i]);
+ }
+
+ values[1] = bindingValues;
+
+ return (values);
+ }
+
+ // Utility for restoring bindings from state
+ private static Map<String, ValueExpression> restoreBindings(FacesContext context, Object state) {
+
+ if (state == null) {
+ return (null);
+ }
+
+ Object[] values = (Object[]) state;
+ String[] names = (String[]) values[0];
+ Object[] states = (Object[]) values[1];
+ Map<String, ValueExpression> bindings = new HashMap<String, ValueExpression>(names.length);
+ for (int i = 0; i < names.length; i++) {
+ bindings.put(names[i], (ValueExpression) UIComponentBase.restoreAttachedState(context, states[i]));
+ }
+ 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/core/trunk/api/src/main/java/org/ajax4jsf/renderkit/AjaxBehaviorRenderer.java
===================================================================
--- root/ui/core/trunk/api/src/main/java/org/ajax4jsf/renderkit/AjaxBehaviorRenderer.java 2010-05-17 11:49:37 UTC (rev 17072)
+++ root/ui/core/trunk/api/src/main/java/org/ajax4jsf/renderkit/AjaxBehaviorRenderer.java 2010-05-17 12:26:02 UTC (rev 17073)
@@ -1,3 +1,25 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
package org.ajax4jsf.renderkit;
import javax.faces.application.ResourceDependencies;
@@ -24,9 +46,13 @@
*/
@FacesBehaviorRenderer(rendererType = "org.ajax4jsf.behavior.Ajax",
renderKitId = RenderKitFactory.HTML_BASIC_RENDER_KIT)
-@ResourceDependencies({@ResourceDependency(library = "javax.faces", name = "jsf.js") ,
- @ResourceDependency(name = "jquery.js", target = "head") ,
- @ResourceDependency(name = "richfaces.js", target = "head") })
+
+@ResourceDependencies(
+ {@ResourceDependency(library = "javax.faces", name = "jsf.js") ,
+ @ResourceDependency(name = "jquery.js", target = "head") , @ResourceDependency(name = "richfaces.js", target = "head"), @ResourceDependency(name="richfaces-queue.js")
+ }
+)
+
public class AjaxBehaviorRenderer extends ClientBehaviorRenderer {
@Override
public void decode(FacesContext context, UIComponent component, ClientBehavior behavior) {
@@ -58,23 +84,21 @@
}
private static boolean isImmediate(UIComponent component, AjaxBehavior ajaxBehavior) {
- boolean immediate = false;
-
- if (ajaxBehavior.isImmediateSet()) {
- immediate = ajaxBehavior.isImmediate();
- } else if (component instanceof EditableValueHolder) {
- immediate = ((EditableValueHolder) component).isImmediate();
- } else if (component instanceof ActionSource) {
- immediate = ((ActionSource) component).isImmediate();
+ boolean immediate = ajaxBehavior.isImmediate();
+ if(!immediate) {
+ if (component instanceof EditableValueHolder) {
+ immediate = ((EditableValueHolder) component).isImmediate();
+ } else if (component instanceof ActionSource) {
+ immediate = ((ActionSource) component).isImmediate();
+ }
}
-
+
return immediate;
}
@Override
public String getScript(ClientBehaviorContext behaviorContext, ClientBehavior behavior) {
String script = null;
-
if (behavior instanceof AjaxBehavior) {
script = buildAjaxCommand(behaviorContext, (AjaxBehavior) behavior);
}
@@ -88,9 +112,7 @@
JSFunction ajaxFunction = AjaxRendererUtils.buildAjaxFunction(context, parent,
AjaxRendererUtils.AJAX_FUNCTION_NAME);
AjaxEventOptions options = buildOptions(context, bContext, behavior);
-
ajaxFunction.addParameter(options);
-
return ajaxFunction.toString();
}
@@ -99,10 +121,7 @@
UIComponent parent = bContext.getComponent();
String eventName = bContext.getEventName();
AjaxEventOptions options = AjaxRendererUtils.buildEventOptions(context, parent, behavior);
-
options.setParameter(AjaxRendererUtils.BEHAVIOR_EVENT_PARAMETER, eventName);
- options.setParameter(AjaxRendererUtils.AJAX_COMPONENT_ID_PARAMETER, parent.getClientId());
-
return options;
}
}
Added: root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/html/BehaviorTagHandlerDelegate.java
===================================================================
--- root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/html/BehaviorTagHandlerDelegate.java (rev 0)
+++ root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/html/BehaviorTagHandlerDelegate.java 2010-05-17 12:26:02 UTC (rev 17073)
@@ -0,0 +1,103 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright ${year}, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.richfaces.view.facelets.html;
+
+import java.io.IOException;
+
+import javax.faces.application.Application;
+import javax.faces.component.UIComponent;
+import javax.faces.component.behavior.Behavior;
+import javax.faces.context.FacesContext;
+import javax.faces.view.AttachedObjectHandler;
+import javax.faces.view.facelets.FaceletContext;
+import javax.faces.view.facelets.MetaRuleset;
+import javax.faces.view.facelets.TagHandlerDelegate;
+
+import org.ajax4jsf.component.behavior.ClientBehavior;
+import org.richfaces.view.facelets.tag.BehaviorRule;
+
+/**
+ * @author Anton Belevich
+ *
+ */
+public class BehaviorTagHandlerDelegate extends TagHandlerDelegate implements AttachedObjectHandler {
+
+ TagHandlerDelegate wrappedHandlerDelegate;
+
+ CustomBehaviorHandler owner;
+
+ private String behaviorId;
+
+ private String eventName;
+
+ public BehaviorTagHandlerDelegate(CustomBehaviorHandler owner, TagHandlerDelegate wrappedHandlerDelegate) {
+ this.owner = owner;
+ this.wrappedHandlerDelegate = wrappedHandlerDelegate;
+ this.behaviorId = owner.getBehaviorId();
+ this.eventName = owner.getEventName();
+ }
+
+ @Override
+ public void apply(FaceletContext ctx, UIComponent parent) throws IOException {
+
+ if (owner.isWrapping()) {
+
+ Application application = ctx.getFacesContext().getApplication();
+ Behavior behavior = application.createBehavior(this.behaviorId);
+
+ if(behavior instanceof ClientBehavior) {
+ ClientBehavior clientBehavior = (ClientBehavior)behavior;
+ owner.setAttributes(ctx, clientBehavior);
+
+ FacesContext context = ctx.getFacesContext();
+ BehaviorStack behaviorStack = BehaviorStack.getBehaviorStack(context, true);
+ behaviorStack.pushBehavior(context, clientBehavior, this.behaviorId, this.eventName);
+ owner.applyNextHandler(ctx, parent);
+ behaviorStack.popBehavior();
+ }
+
+ } else {
+ wrappedHandlerDelegate.apply(ctx, parent);
+ }
+
+ }
+
+ public MetaRuleset createMetaRuleset(Class type) {
+ MetaRuleset metaRuleset = wrappedHandlerDelegate.createMetaRuleset(type);
+ metaRuleset.addRule(new BehaviorRule());
+ return metaRuleset;
+ }
+
+ public void applyAttachedObject(FacesContext context, UIComponent parent) {
+ if (wrappedHandlerDelegate instanceof AttachedObjectHandler) {
+ ((AttachedObjectHandler) wrappedHandlerDelegate).applyAttachedObject(context, parent);
+ }
+ }
+
+ public String getFor() {
+ if (wrappedHandlerDelegate instanceof AttachedObjectHandler) {
+ return ((AttachedObjectHandler) wrappedHandlerDelegate).getFor();
+ }
+ return null;
+ }
+}
Added: root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/html/CustomBehaviorHandler.java
===================================================================
--- root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/html/CustomBehaviorHandler.java (rev 0)
+++ root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/html/CustomBehaviorHandler.java 2010-05-17 12:26:02 UTC (rev 17073)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright ${year}, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.richfaces.view.facelets.html;
+
+import javax.faces.view.facelets.BehaviorConfig;
+import javax.faces.view.facelets.BehaviorHandler;
+import javax.faces.view.facelets.CompositeFaceletHandler;
+import javax.faces.view.facelets.TagHandler;
+import javax.faces.view.facelets.TagHandlerDelegate;
+
+/**
+ * @author Anton Belevich
+ *
+ */
+public abstract class CustomBehaviorHandler extends BehaviorHandler {
+
+ TagHandlerDelegate helper;
+
+ public CustomBehaviorHandler(BehaviorConfig config) {
+ super(config);
+ }
+
+ public boolean isWrapping() {
+ return ((this.nextHandler instanceof TagHandler) || (this.nextHandler instanceof CompositeFaceletHandler));
+ }
+
+ public boolean isWrappingAttachQueue() {
+ return (this.nextHandler instanceof AttachQueueHandler);
+ }
+
+ @Override
+ protected TagHandlerDelegate getTagHandlerDelegate() {
+ if (helper == null) {
+ helper = new BehaviorTagHandlerDelegate(this, delegateFactory.createBehaviorHandlerDelegate(this));
+ }
+ return helper;
+ }
+}
Added: root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/tag/BehaviorRule.java
===================================================================
--- root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/tag/BehaviorRule.java (rev 0)
+++ root/ui/core/trunk/api/src/main/java/org/richfaces/view/facelets/tag/BehaviorRule.java 2010-05-17 12:26:02 UTC (rev 17073)
@@ -0,0 +1,113 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright ${year}, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.richfaces.view.facelets.tag;
+
+import javax.faces.view.facelets.FaceletContext;
+import javax.faces.view.facelets.MetaRule;
+import javax.faces.view.facelets.Metadata;
+import javax.faces.view.facelets.MetadataTarget;
+import javax.faces.view.facelets.TagAttribute;
+
+import org.ajax4jsf.component.behavior.ClientBehavior;
+import org.richfaces.log.RichfacesLogger;
+import org.slf4j.Logger;
+
+/**
+ * @author Anton Belevich
+ *
+ */
+public class BehaviorRule extends MetaRule {
+
+ private static Logger log = RichfacesLogger.CONNECTION.getLogger();
+
+ static final class LiteralAttributeMetadata extends Metadata {
+
+ private final String name;
+ private final String value;
+
+
+
+ public LiteralAttributeMetadata(String name, String value) {
+ this.value = value;
+ this.name = name;
+ }
+
+ public void applyMetadata(FaceletContext ctx, Object instance) {
+ ((ClientBehavior) instance).setLiteralAttribute(this.name, this.value);
+ }
+ }
+
+ static final class ValueExpressionMetadata extends Metadata {
+
+ private final String name;
+
+ private final TagAttribute attr;
+
+ private final Class type;
+
+ public ValueExpressionMetadata(String name, Class type, TagAttribute attr) {
+ this.name = name;
+ this.attr = attr;
+ this.type = type;
+ }
+
+ public void applyMetadata(FaceletContext ctx, Object instance) {
+ ((ClientBehavior) instance).setValueExpression(this.name, this.attr.getValueExpression(ctx, this.type));
+ }
+
+ }
+
+ @Override
+ public Metadata applyRule(String name, TagAttribute attribute, MetadataTarget meta) {
+ if (meta.isTargetInstanceOf(ClientBehavior.class)) {
+ if (!attribute.isLiteral()) {
+
+ Class type = meta.getPropertyType(name);
+ if (type == null) {
+ type = Object.class;
+ }
+ return new ValueExpressionMetadata(name, type, attribute);
+ } else
+
+ if(meta != null) {
+
+ if (meta.getWriteMethod(name) != null) {
+ if("execute".equals(name) || "render".equals(name)) {
+ return new LiteralAttributeMetadata(name, attribute.getValue());
+ }
+
+ } else {
+ if (log.isDebugEnabled()) {
+ log
+ .debug(attribute + " Property '" + name + "' is not on type: "
+ + meta.getTargetClass().getName());
+ }
+ return new LiteralAttributeMetadata(name, attribute.getValue());
+ }
+
+ }
+ }
+
+ return null;
+ }
+}
14 years, 4 months
JBoss Rich Faces SVN: r17072 - in root/examples-sandbox/trunk: components/tables and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2010-05-17 07:49:37 -0400 (Mon, 17 May 2010)
New Revision: 17072
Modified:
root/examples-sandbox/trunk/components/tables/pom.xml
root/examples-sandbox/trunk/pom.xml
Log:
correct bom/parent model
Modified: root/examples-sandbox/trunk/components/tables/pom.xml
===================================================================
--- root/examples-sandbox/trunk/components/tables/pom.xml 2010-05-17 11:21:39 UTC (rev 17071)
+++ root/examples-sandbox/trunk/components/tables/pom.xml 2010-05-17 11:49:37 UTC (rev 17072)
@@ -62,8 +62,13 @@
<groupId>org.richfaces.ui-sandbox</groupId>
<artifactId>datascroller-ui</artifactId>
</dependency>
-
+
+ <!-- API implementation for runtime -->
<dependency>
+ <groupId>org.richfaces.core</groupId>
+ <artifactId>richfaces-core-impl</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.jboss.cache</groupId>
<artifactId>jbosscache-core</artifactId>
</dependency>
@@ -71,10 +76,48 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
+
+ <!-- JSF -->
<dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ </dependency>
+ <dependency>
<groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>el-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
+ <scope>provided</scope>
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <version>1.0-beta-1</version>
+ <configuration>
+ <fail>false</fail>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
\ No newline at end of file
Modified: root/examples-sandbox/trunk/pom.xml
===================================================================
--- root/examples-sandbox/trunk/pom.xml 2010-05-17 11:21:39 UTC (rev 17071)
+++ root/examples-sandbox/trunk/pom.xml 2010-05-17 11:49:37 UTC (rev 17072)
@@ -18,67 +18,6 @@
<packaging>pom</packaging>
<name>Richfaces Sandbox Components Examples</name>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.richfaces.ui</groupId>
- <artifactId>core-api</artifactId>
- <version>${project.version}</version>
- <scope>import</scope>
- <type>pom</type>
- </dependency>
- </dependencies>
- </dependencyManagement>
-
- <dependencies>
- <dependency>
- <groupId>org.richfaces.core</groupId>
- <artifactId>richfaces-core-impl</artifactId>
- </dependency>
-
- <!-- simple logger binding: only messages of level INFO and higher are printed-->
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
- <version>1.5.8</version>
- </dependency>
-
- <!-- TODO: uncomment when assembly will be ready -->
- <!--dependency>
- <groupId>org.richfaces.ui</groupId>
- <artifactId>richfaces-ui</artifactId>
- <version>${ui.version}</version>
- </dependency-->
- <dependency>
- <groupId>com.sun.faces</groupId>
- <artifactId>jsf-api</artifactId>
- </dependency>
- <dependency>
- <groupId>com.sun.faces</groupId>
- <artifactId>jsf-impl</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet.jsp</groupId>
- <artifactId>jsp-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.el</groupId>
- <artifactId>el-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>jstl</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
<modules>
<module>components</module>
</modules>
14 years, 4 months
JBoss Rich Faces SVN: r17071 - in root: core/trunk and 8 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2010-05-17 07:21:39 -0400 (Mon, 17 May 2010)
New Revision: 17071
Modified:
root/commons/trunk/api/pom.xml
root/core/trunk/bom/pom.xml
root/core/trunk/parent/pom.xml
root/core/trunk/pom.xml
root/ui-sandbox/componentcontrol/trunk/pom.xml
root/ui-sandbox/datascroller/trunk/parent/pom.xml
root/ui-sandbox/datascroller/trunk/pom.xml
root/ui-sandbox/pom.xml
root/ui-sandbox/tables/trunk/parent/pom.xml
root/ui-sandbox/tables/trunk/pom.xml
Log:
correct bom/parent model
Modified: root/commons/trunk/api/pom.xml
===================================================================
--- root/commons/trunk/api/pom.xml 2010-05-17 11:20:15 UTC (rev 17070)
+++ root/commons/trunk/api/pom.xml 2010-05-17 11:21:39 UTC (rev 17071)
@@ -63,12 +63,12 @@
</dependency>
</dependencies>
- <build>
+<!-- <build>
<plugins>
- <!-- Trigger checkstyle checking for this module -->
+ <!– Trigger checkstyle checking for this module –>
<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
</plugins>
- </build>
+ </build>-->
</project>
\ No newline at end of file
Modified: root/core/trunk/bom/pom.xml
===================================================================
--- root/core/trunk/bom/pom.xml 2010-05-17 11:20:15 UTC (rev 17070)
+++ root/core/trunk/bom/pom.xml 2010-05-17 11:21:39 UTC (rev 17071)
@@ -20,18 +20,17 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.richfaces.core</groupId>
+ <artifactId>richfaces-core-aggregator</artifactId>
+ <version>4.0.0-SNAPSHOT</version>
+ </parent>
+
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-bom</artifactId>
<packaging>pom</packaging>
- <version>4.0.0-SNAPSHOT</version>
<name>RichFaces Core BOM</name>
- <parent>
- <groupId>org.richfaces</groupId>
- <artifactId>richfaces-parent</artifactId>
- <version>1-SNAPSHOT</version>
- </parent>
-
<description>
The RichFaces Core "Bill of Materials". This defines core api/impl specific runtime dependency versions.
</description>
Modified: root/core/trunk/parent/pom.xml
===================================================================
--- root/core/trunk/parent/pom.xml 2010-05-17 11:20:15 UTC (rev 17070)
+++ root/core/trunk/parent/pom.xml 2010-05-17 11:21:39 UTC (rev 17071)
@@ -21,22 +21,26 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.richfaces.core</groupId>
+ <artifactId>richfaces-core-aggregator</artifactId>
+ <version>4.0.0-SNAPSHOT</version>
+ </parent>
+
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-parent</artifactId>
<packaging>pom</packaging>
- <version>4.0.0-SNAPSHOT</version>
<name>RichFaces Core Parent</name>
- <parent>
- <groupId>org.richfaces</groupId>
- <artifactId>richfaces-parent</artifactId>
- <version>1-SNAPSHOT</version>
- </parent>
-
<description>
The Parent for all RichFaces core sub-projects. This specifies build and project meta-data. Runtime dependencies are imported via the bom.
</description>
+ <modules>
+ <module>../api</module>
+ <module>../impl</module>
+ </modules>
+
<properties>
<richfaces.core.version>4.0.0-SNAPSHOT</richfaces.core.version>
</properties>
Modified: root/core/trunk/pom.xml
===================================================================
--- root/core/trunk/pom.xml 2010-05-17 11:20:15 UTC (rev 17070)
+++ root/core/trunk/pom.xml 2010-05-17 11:21:39 UTC (rev 17071)
@@ -40,8 +40,8 @@
<modules>
<module>bom</module>
<module>parent</module>
- <module>api</module>
- <module>impl</module>
+ <!--<module>api</module>-->
+ <!--<module>impl</module>-->
</modules>
</project>
Modified: root/ui-sandbox/componentcontrol/trunk/pom.xml
===================================================================
--- root/ui-sandbox/componentcontrol/trunk/pom.xml 2010-05-17 11:20:15 UTC (rev 17070)
+++ root/ui-sandbox/componentcontrol/trunk/pom.xml 2010-05-17 11:21:39 UTC (rev 17071)
@@ -1,18 +1,30 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
<parent>
- <groupId>org.richfaces</groupId>
- <artifactId>richfaces-parent</artifactId>
- <version>1-SNAPSHOT</version>
+ <groupId>org.richfaces.sandbox.ui</groupId>
+ <artifactId>components</artifactId>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
- <modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.ui</groupId>
<artifactId>componentControl</artifactId>
<name>Richfaces UI Components: Component Control</name>
<packaging>jar</packaging>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.richfaces.core</groupId>
+ <artifactId>richfaces-core-bom</artifactId>
+ <version>4.0.0-SNAPSHOT</version>
+ <scope>import</scope>
+ <type>pom</type>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
<dependencies>
<dependency>
@@ -22,8 +34,66 @@
</dependency>
<dependency>
<groupId>org.richfaces.core</groupId>
+ <artifactId>richfaces-core-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-impl</artifactId>
</dependency>
+
+ <!-- JSF -->
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>el-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>jstl</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- Tests -->
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.test-jsf</groupId>
+ <artifactId>htmlunit-client</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.test-jsf</groupId>
+ <artifactId>jsf-mock</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
Modified: root/ui-sandbox/datascroller/trunk/parent/pom.xml
===================================================================
--- root/ui-sandbox/datascroller/trunk/parent/pom.xml 2010-05-17 11:20:15 UTC (rev 17070)
+++ root/ui-sandbox/datascroller/trunk/parent/pom.xml 2010-05-17 11:21:39 UTC (rev 17071)
@@ -26,7 +26,7 @@
<parent>
<groupId>org.richfaces.ui-sandbox</groupId>
- <artifactId>datascroller-bom</artifactId>
+ <artifactId>datascroller-aggregator</artifactId>
<version>4.0.0-SNAPSHOT</version>
</parent>
@@ -35,23 +35,59 @@
<name>Richfaces UI Components: Datascroller Parent Module</name>
<packaging>pom</packaging>
- <distributionManagement>
- <downloadUrl>
- http://labs.jboss.com/portal/jbossrichfaces/downloads
- </downloadUrl>
- <repository>
- <id>jboss-releases-repository</id>
- <uniqueVersion>false</uniqueVersion>
- <url>${releaseRepository}</url>
- </repository>
- <snapshotRepository>
- <id>jboss-snapshots-repository</id>
- <uniqueVersion>true</uniqueVersion>
- <url>${snapshotRepository}</url>
- </snapshotRepository>
- </distributionManagement>
+ <modules>
+ <module>../api</module>
+ <module>../ui</module>
+ </modules>
- <build>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.richfaces.ui-sandbox</groupId>
+ <artifactId>datascroller-bom</artifactId>
+ <version>${project.version}</version>
+ <scope>import</scope>
+ <type>pom</type>
+ </dependency>
+
+ <dependency>
+ <groupId>org.richfaces.cdk</groupId>
+ <artifactId>annotations</artifactId>
+ <version>4.0.0-SNAPSHOT</version>
+ </dependency>
+
+ <!-- Archetypes dependency -->
+ <dependency>
+ <groupId>org.apache.maven.archetype</groupId>
+ <artifactId>archetype-packaging</artifactId>
+ <version>2.0-alpha-4</version>
+ </dependency>
+
+ <!-- tests -->
+ <dependency>
+ <groupId>org.jboss.test-jsf</groupId>
+ <artifactId>htmlunit-client</artifactId>
+ <version>1.0.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.test-jsf</groupId>
+ <artifactId>jsf-mock</artifactId>
+ <version>1.0.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.test-jsf</groupId>
+ <artifactId>jsf-test-stage</artifactId>
+ <version>1.0.3</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.4</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <build>
<pluginManagement>
<plugins>
<plugin>
@@ -112,44 +148,4 @@
</plugin>
</plugins>
</build>
-
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.richfaces.cdk</groupId>
- <artifactId>annotations</artifactId>
- <version>4.0.0-SNAPSHOT</version>
- </dependency>
-
- <!-- Archetypes dependency -->
- <dependency>
- <groupId>org.apache.maven.archetype</groupId>
- <artifactId>archetype-packaging</artifactId>
- <version>2.0-alpha-4</version>
- </dependency>
-
- <!-- tests -->
- <dependency>
- <groupId>org.jboss.test-jsf</groupId>
- <artifactId>htmlunit-client</artifactId>
- <version>1.0.3</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.test-jsf</groupId>
- <artifactId>jsf-mock</artifactId>
- <version>1.0.3</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.test-jsf</groupId>
- <artifactId>jsf-test-stage</artifactId>
- <version>1.0.3</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.4</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
-
</project>
Modified: root/ui-sandbox/datascroller/trunk/pom.xml
===================================================================
--- root/ui-sandbox/datascroller/trunk/pom.xml 2010-05-17 11:20:15 UTC (rev 17070)
+++ root/ui-sandbox/datascroller/trunk/pom.xml 2010-05-17 11:21:39 UTC (rev 17071)
@@ -19,23 +19,28 @@
http://www.fsf.org.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
<parent>
<groupId>org.richfaces.sandbox.ui</groupId>
<artifactId>components</artifactId>
<version>4.0.0-SNAPSHOT</version>
</parent>
- <modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces.ui-sandbox</groupId>
- <artifactId>datascroller-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
- <packaging>pom</packaging>
- <name>Richfaces UI Components: Datascroller Aggregator</name>
+ <artifactId>datascroller-aggregator</artifactId>
+ <packaging>pom</packaging>
+ <name>Richfaces UI Components: Datascroller Aggregator</name>
+ <modules>
+ <module>bom</module>
+ <module>parent</module>
+ </modules>
+
<build>
<plugins>
<plugin>
@@ -49,11 +54,4 @@
</plugins>
</build>
- <modules>
- <module>bom</module>
- <module>parent</module>
- <module>api</module>
- <module>ui</module>
- </modules>
-
</project>
\ No newline at end of file
Modified: root/ui-sandbox/pom.xml
===================================================================
--- root/ui-sandbox/pom.xml 2010-05-17 11:20:15 UTC (rev 17070)
+++ root/ui-sandbox/pom.xml 2010-05-17 11:21:39 UTC (rev 17071)
@@ -38,82 +38,75 @@
<modules>
<module>tables/trunk</module>
<module>datascroller/trunk</module>
+ <module>componentcontrol/trunk</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
- <groupId>org.richfaces.ui</groupId>
- <artifactId>core-api</artifactId>
- <version>${project.version}</version>
- <scope>import</scope>
- <type>pom</type>
+ <groupId>org.richfaces.cdk</groupId>
+ <artifactId>annotations</artifactId>
+ <version>4.0.0-SNAPSHOT</version>
</dependency>
+
+ <!-- Archetypes dependency -->
+ <dependency>
+ <groupId>org.apache.maven.archetype</groupId>
+ <artifactId>archetype-packaging</artifactId>
+ <version>2.0-alpha-4</version>
+ </dependency>
+
+ <!-- tests -->
+ <dependency>
+ <groupId>org.jboss.test-jsf</groupId>
+ <artifactId>htmlunit-client</artifactId>
+ <version>1.0.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.test-jsf</groupId>
+ <artifactId>jsf-mock</artifactId>
+ <version>1.0.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.test-jsf</groupId>
+ <artifactId>jsf-test-stage</artifactId>
+ <version>1.0.3</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.4</version>
+ </dependency>
</dependencies>
</dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.richfaces.core</groupId>
- <artifactId>richfaces-core-api</artifactId>
- </dependency>
-
- <!-- JSF -->
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet.jsp</groupId>
- <artifactId>jsp-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.el</groupId>
- <artifactId>el-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>jstl</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>com.sun.faces</groupId>
- <artifactId>jsf-api</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <!-- Tests -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.sun.faces</groupId>
- <artifactId>jsf-impl</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.test-jsf</groupId>
- <artifactId>htmlunit-client</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.test-jsf</groupId>
- <artifactId>jsf-mock</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
<build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.richfaces.cdk</groupId>
+ <artifactId>maven-cdk-plugin</artifactId>
+ <version>4.0.0-SNAPSHOT</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>2.1</version>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>xml-maven-plugin</artifactId>
+ <version>1.0-beta-2</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-archetype-plugin</artifactId>
+ <version>2.0-alpha-4</version>
+ <extensions>true</extensions>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+
<plugins>
<plugin>
<groupId>org.richfaces.cdk</groupId>
Modified: root/ui-sandbox/tables/trunk/parent/pom.xml
===================================================================
--- root/ui-sandbox/tables/trunk/parent/pom.xml 2010-05-17 11:20:15 UTC (rev 17070)
+++ root/ui-sandbox/tables/trunk/parent/pom.xml 2010-05-17 11:21:39 UTC (rev 17071)
@@ -26,58 +26,95 @@
<parent>
<groupId>org.richfaces.ui-sandbox</groupId>
- <artifactId>tables-bom</artifactId>
+ <artifactId>tables-aggregator</artifactId>
<version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.richfaces.ui-sandbox</groupId>
<artifactId>tables-parent</artifactId>
- <name>Richfaces UI Components: Tables Parent Module</name>
+ <name>Richfaces UI Components: Tables Parent</name>
<packaging>pom</packaging>
- <distributionManagement>
- <downloadUrl>
- http://labs.jboss.com/portal/jbossrichfaces/downloads
- </downloadUrl>
- <repository>
- <id>jboss-releases-repository</id>
- <uniqueVersion>false</uniqueVersion>
- <url>${releaseRepository}</url>
- </repository>
- <snapshotRepository>
- <id>jboss-snapshots-repository</id>
- <uniqueVersion>true</uniqueVersion>
- <url>${snapshotRepository}</url>
- </snapshotRepository>
- </distributionManagement>
+ <modules>
+ <module>../api</module>
+ <module>../impl</module>
+ <module>../ui</module>
+ </modules>
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.richfaces.cdk</groupId>
- <artifactId>maven-cdk-plugin</artifactId>
- <version>4.0.0-SNAPSHOT</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <version>2.1</version>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>xml-maven-plugin</artifactId>
- <version>1.0-beta-2</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-archetype-plugin</artifactId>
- <version>2.0-alpha-4</version>
- <extensions>true</extensions>
- </plugin>
- </plugins>
- </pluginManagement>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.richfaces.ui-sandbox</groupId>
+ <artifactId>tables-bom</artifactId>
+ <version>${project.version}</version>
+ <scope>import</scope>
+ <type>pom</type>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.richfaces.core</groupId>
+ <artifactId>richfaces-core-api</artifactId>
+ </dependency>
+
+ <!-- JSF -->
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>el-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>jstl</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- Tests -->
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.test-jsf</groupId>
+ <artifactId>htmlunit-client</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.test-jsf</groupId>
+ <artifactId>jsf-mock</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -112,44 +149,4 @@
</plugin>
</plugins>
</build>
-
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.richfaces.cdk</groupId>
- <artifactId>annotations</artifactId>
- <version>4.0.0-SNAPSHOT</version>
- </dependency>
-
- <!-- Archetypes dependency -->
- <dependency>
- <groupId>org.apache.maven.archetype</groupId>
- <artifactId>archetype-packaging</artifactId>
- <version>2.0-alpha-4</version>
- </dependency>
-
- <!-- tests -->
- <dependency>
- <groupId>org.jboss.test-jsf</groupId>
- <artifactId>htmlunit-client</artifactId>
- <version>1.0.3</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.test-jsf</groupId>
- <artifactId>jsf-mock</artifactId>
- <version>1.0.3</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.test-jsf</groupId>
- <artifactId>jsf-test-stage</artifactId>
- <version>1.0.3</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.4</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
-
</project>
Modified: root/ui-sandbox/tables/trunk/pom.xml
===================================================================
--- root/ui-sandbox/tables/trunk/pom.xml 2010-05-17 11:20:15 UTC (rev 17070)
+++ root/ui-sandbox/tables/trunk/pom.xml 2010-05-17 11:21:39 UTC (rev 17071)
@@ -31,10 +31,14 @@
<groupId>org.richfaces.ui-sandbox</groupId>
<artifactId>tables-aggregator</artifactId>
- <version>4.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Richfaces UI Components: Tables Aggregator</name>
+ <modules>
+ <module>bom</module>
+ <module>parent</module>
+ </modules>
+
<build>
<plugins>
<plugin>
@@ -48,12 +52,4 @@
</plugins>
</build>
- <modules>
- <module>bom</module>
- <module>parent</module>
- <module>api</module>
- <module>impl</module>
- <module>ui</module>
- </modules>
-
</project>
\ No newline at end of file
14 years, 4 months
JBoss Rich Faces SVN: r17070 - in root/ui-sandbox: tables/trunk/ui/src/main/java/org/richfaces/component and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2010-05-17 07:20:15 -0400 (Mon, 17 May 2010)
New Revision: 17070
Modified:
root/ui-sandbox/datascroller/trunk/ui/src/main/java/org/richfaces/component/UIDataScroller.java
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/component/UISubTable.java
Log:
fix checkstyle
Modified: root/ui-sandbox/datascroller/trunk/ui/src/main/java/org/richfaces/component/UIDataScroller.java
===================================================================
--- root/ui-sandbox/datascroller/trunk/ui/src/main/java/org/richfaces/component/UIDataScroller.java 2010-05-17 11:07:57 UTC (rev 17069)
+++ root/ui-sandbox/datascroller/trunk/ui/src/main/java/org/richfaces/component/UIDataScroller.java 2010-05-17 11:20:15 UTC (rev 17070)
@@ -148,7 +148,7 @@
MethodExpression scrollerListener = (MethodExpression) getStateHelper().eval(PropertyKeys.scrollerListener);
if (scrollerListener != null) {
- scrollerListener.invoke(facesContext.getELContext(), new Object[] { event });
+ scrollerListener.invoke(facesContext.getELContext(), new Object[] {event });
}
UIComponent dataTable = getDataTable();
@@ -158,14 +158,14 @@
facesContext.getPartialViewContext().getRenderIds().add(dataScroller.getClientId(facesContext));
}
- String dataTableId = null;
- if (dataTable instanceof MetaComponentResolver) {
- dataTableId = ((MetaComponentResolver) dataTable).resolveClientId(facesContext, dataTable, "body");
+ String dataTableId = null;
+ if (dataTable instanceof MetaComponentResolver) {
+ dataTableId = ((MetaComponentResolver) dataTable).resolveClientId(facesContext, dataTable, "body");
}
- if (dataTableId == null) {
- dataTableId = dataTable.getClientId(facesContext);
- }
+ if (dataTableId == null) {
+ dataTableId = dataTable.getClientId(facesContext);
+ }
facesContext.getPartialViewContext().getRenderIds().add(dataTableId);
}
@@ -366,7 +366,7 @@
FacesMessage message;
if (null == messageStr) {
message = MessageUtil.getMessage(facesContext, UIInput.UPDATE_MESSAGE_ID,
- new Object[] { MessageUtil.getLabel(facesContext, this) });
+ new Object[] {MessageUtil.getLabel(facesContext, this) });
} else {
message = new FacesMessage(FacesMessage.SEVERITY_ERROR, messageStr, messageStr);
}
@@ -375,13 +375,13 @@
facesContext.renderResponse();
} catch (IllegalArgumentException e) {
FacesMessage message = MessageUtil.getMessage(facesContext, UIInput.UPDATE_MESSAGE_ID,
- new Object[] { MessageUtil.getLabel(facesContext, this) });
+ new Object[] {MessageUtil.getLabel(facesContext, this) });
facesContext.getExternalContext().log(message.getSummary(), e);
facesContext.addMessage(getClientId(facesContext), message);
facesContext.renderResponse();
} catch (Exception e) {
FacesMessage message = MessageUtil.getMessage(facesContext, UIInput.UPDATE_MESSAGE_ID,
- new Object[] { MessageUtil.getLabel(facesContext, this) });
+ new Object[] {MessageUtil.getLabel(facesContext, this) });
facesContext.getExternalContext().log(message.getSummary(), e);
facesContext.addMessage(getClientId(facesContext), message);
facesContext.renderResponse();
Modified: root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/component/UISubTable.java
===================================================================
--- root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/component/UISubTable.java 2010-05-17 11:07:57 UTC (rev 17069)
+++ root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/component/UISubTable.java 2010-05-17 11:20:15 UTC (rev 17070)
@@ -55,22 +55,22 @@
@Override
public void broadcast(FacesEvent event) throws AbortProcessingException {
super.broadcast(event);
- if(event instanceof ToggleEvent) {
- ToggleEvent toggleEvent = (ToggleEvent)event;
+ if (event instanceof ToggleEvent) {
+ ToggleEvent toggleEvent = (ToggleEvent) event;
boolean newValue = toggleEvent.isExpanded();
FacesContext facesContext = getFacesContext();
ELContext elContext = facesContext.getELContext();
MethodExpression methodExpression = getToggleListener();
- if(methodExpression != null) {
+ if (methodExpression != null) {
methodExpression.invoke(elContext, new Object[]{newValue});
}
getStateHelper().put(PropertyKeys.expanded, newValue);
ValueExpression valueExpression = getValueExpression(PropertyKeys.expanded.toString());
- if(valueExpression != null && !valueExpression.isReadOnly(elContext)) {
+ if (valueExpression != null && !valueExpression.isReadOnly(elContext)) {
valueExpression.setValue(elContext, newValue);
}
@@ -79,7 +79,7 @@
}
}
public boolean isExpanded() {
- return (Boolean)getStateHelper().eval(PropertyKeys.expanded, true);
+ return (Boolean) getStateHelper().eval(PropertyKeys.expanded, true);
}
public void setExpanded(boolean expanded) {
@@ -125,7 +125,7 @@
}
public String getExpandMode() {
- return (String)getStateHelper().eval(PropertyKeys.expandMode,MODE_SERVER);
+ return (String) getStateHelper().eval(PropertyKeys.expandMode, MODE_SERVER);
}
public void setExpandMode(String expandMode) {
@@ -134,14 +134,14 @@
@Override
public void setIterationState(Object stateObject) {
- Object[] state = (Object[])stateObject;
- if(state != null) {
- super.setIterationState(state[0]);
- getStateHelper().put(PropertyKeys.expanded, state[1]);
- } else {
- super.setIterationState(null);
- getStateHelper().put(PropertyKeys.expanded, null);
- }
+ Object[] state = (Object[]) stateObject;
+ if (state != null) {
+ super.setIterationState(state[0]);
+ getStateHelper().put(PropertyKeys.expanded, state[1]);
+ } else {
+ super.setIterationState(null);
+ getStateHelper().put(PropertyKeys.expanded, null);
+ }
}
@Override
14 years, 4 months
JBoss Rich Faces SVN: r17069 - in root/ui-sandbox/tables/trunk/api/src/main/java/org/richfaces: event and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2010-05-17 07:07:57 -0400 (Mon, 17 May 2010)
New Revision: 17069
Modified:
root/ui-sandbox/tables/trunk/api/src/main/java/org/richfaces/component/Row.java
root/ui-sandbox/tables/trunk/api/src/main/java/org/richfaces/event/PagingEvent.java
Log:
fix checkstyle
Modified: root/ui-sandbox/tables/trunk/api/src/main/java/org/richfaces/component/Row.java
===================================================================
--- root/ui-sandbox/tables/trunk/api/src/main/java/org/richfaces/component/Row.java 2010-05-16 14:56:31 UTC (rev 17068)
+++ root/ui-sandbox/tables/trunk/api/src/main/java/org/richfaces/component/Row.java 2010-05-17 11:07:57 UTC (rev 17069)
@@ -22,28 +22,26 @@
package org.richfaces.component;
-import java.util.Iterator;
+import org.ajax4jsf.model.DataVisitor;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
+import java.util.Iterator;
-import org.ajax4jsf.model.DataVisitor;
-
/**
* Marker interface for table columns, rendered as entire row.
- * @author shura
*
+ * @author shura
*/
public interface Row {
-
- /**
- * Get iterator for all columns contained in this row.
- *
- */
- public Iterator<UIComponent> columns();
-
- public void setRowKey(FacesContext context, Object rowKey);
-
- public void walk(FacesContext context, DataVisitor visitor, Object argument);
+ /**
+ * Get iterator for all columns contained in this row.
+ */
+ public Iterator<UIComponent> columns();
+
+ public void setRowKey(FacesContext context, Object rowKey);
+
+ public void walk(FacesContext context, DataVisitor visitor, Object argument);
+
}
Modified: root/ui-sandbox/tables/trunk/api/src/main/java/org/richfaces/event/PagingEvent.java
===================================================================
--- root/ui-sandbox/tables/trunk/api/src/main/java/org/richfaces/event/PagingEvent.java 2010-05-16 14:56:31 UTC (rev 17068)
+++ root/ui-sandbox/tables/trunk/api/src/main/java/org/richfaces/event/PagingEvent.java 2010-05-17 11:07:57 UTC (rev 17069)
@@ -28,15 +28,15 @@
public class PagingEvent extends FacesEvent {
+ private static final long serialVersionUID = -8176111805839316345L;
+
public PagingEvent(UIComponent component) {
super(component);
}
- private static final long serialVersionUID = -8176111805839316345L;
-
@Override
public boolean isAppropriateListener(FacesListener listener) {
- return (listener instanceof PagingListener);
+ return listener instanceof PagingListener;
}
@Override
14 years, 4 months
JBoss Rich Faces SVN: r17068 - in root: ui/core/trunk/api/src/main/java/org/ajax4jsf/component and 2 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2010-05-16 10:56:31 -0400 (Sun, 16 May 2010)
New Revision: 17068
Added:
root/ui-sandbox/core/trunk/src/main/java/org/ajax4jsf/component/AjaxActionComponent.java
root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractActionComponent.java
Removed:
root/core/trunk/impl/src/main/java/org/ajax4jsf/component/AjaxActionComponent.java
Modified:
root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/AbstractPoll.java
root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractAjaxFunction.java
root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractCommandButton.java
root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractCommandLink.java
root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractPush.java
Log:
https://jira.jboss.org/browse/RF-7825
Deleted: root/core/trunk/impl/src/main/java/org/ajax4jsf/component/AjaxActionComponent.java
===================================================================
--- root/core/trunk/impl/src/main/java/org/ajax4jsf/component/AjaxActionComponent.java 2010-05-16 12:29:36 UTC (rev 17067)
+++ root/core/trunk/impl/src/main/java/org/ajax4jsf/component/AjaxActionComponent.java 2010-05-16 14:56:31 UTC (rev 17068)
@@ -1,163 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.ajax4jsf.component;
-
-import org.ajax4jsf.context.AjaxContext;
-import org.ajax4jsf.event.AjaxEvent;
-import org.ajax4jsf.event.AjaxListener;
-import org.ajax4jsf.event.AjaxSource;
-import org.ajax4jsf.renderkit.RendererUtils;
-
-import javax.faces.component.UICommand;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.event.AbortProcessingException;
-import javax.faces.event.ActionEvent;
-import javax.faces.event.FacesEvent;
-import javax.faces.event.PhaseId;
-
-/**
- * @author shura (latest modification by $Author: alexsmirnov $)
- * @version $Revision: 1.1.2.3 $ $Date: 2007/02/06 16:23:21 $
- */
-public abstract class AjaxActionComponent extends UICommand implements AjaxComponent, AjaxSource {
- public static final String FOCUS_DATA_ID = "_A4J.AJAX.focus";
-
- /*
- * (non-Javadoc)
- *
- * @see javax.faces.component.UIComponentBase#broadcast(javax.faces.event.FacesEvent)
- */
- public void broadcast(FacesEvent event) throws AbortProcessingException {
-
- // perform default
- super.broadcast(event);
-
- if (event instanceof AjaxEvent) {
- FacesContext context = getFacesContext();
-
- // complete re-Render fields. AjaxEvent deliver before render
- // response.
- setupReRender(context);
-
- // Put data for send in response
- Object data = getData();
- AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
-
- if (null != data) {
- ajaxContext.setResponseData(data);
- }
-
- String focus = getFocus();
-
- if (null != focus) {
-
- // search for component in tree.
- // XXX - use more pourful search, as in h:outputLabel
- // component.
- UIComponent focusComponent = RendererUtils.getInstance().findComponentFor(this, focus);
-
- if (null != focusComponent) {
- focus = focusComponent.getClientId(context);
- }
-
- ajaxContext.getResponseDataMap().put(FOCUS_DATA_ID, focus);
- }
-
- ajaxContext.setOnbeforedomupdate(getOnbeforedomupdate());
- ajaxContext.setOncomplete(getOncomplete());
- }
- }
-
- /**
- * Template method with old signature, for backward compability.
- */
- protected void setupReRender() {
- }
-
- /**
- * Template methods for fill set of resions to render in subclasses.
- *
- * @param facesContext TODO
- */
- protected void setupReRender(FacesContext facesContext) {
- AjaxContext.getCurrentInstance(facesContext).addRegionsFromComponent(this);
- setupReRender();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.faces.component.UIComponentBase#queueEvent(javax.faces.event.FacesEvent)
- */
- public void queueEvent(FacesEvent event) {
- if (event instanceof ActionEvent) {
- if (event.getComponent() == this) {
- if (isImmediate()) {
- event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
- } else if (isBypassUpdates()) {
- event.setPhaseId(PhaseId.PROCESS_VALIDATIONS);
- } else {
- event.setPhaseId(PhaseId.INVOKE_APPLICATION);
- }
- }
-
- // UICommand set Phase ID for all ActionEvents - bypass it.
- getParent().queueEvent(event);
- } else {
- super.queueEvent(event);
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.ajax4jsf.framework.ajax.AjaxSource#addAjaxListener(org.ajax4jsf.framework.ajax.AjaxListener)
- */
- public void addAjaxListener(AjaxListener listener) {
- addFacesListener(listener);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.ajax4jsf.framework.ajax.AjaxSource#getAjaxListeners()
- */
- public AjaxListener[] getAjaxListeners() {
- AjaxListener[] al = (AjaxListener[]) getFacesListeners(AjaxListener.class);
-
- return al;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.ajax4jsf.framework.ajax.AjaxSource#removeAjaxListener(org.ajax4jsf.framework.ajax.AjaxListener)
- */
- public void removeAjaxListener(AjaxListener listener) {
- removeFacesListener(listener);
- }
-
- protected UIComponent getSingleComponent() {
- return this;
- }
-}
Modified: root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/AbstractPoll.java
===================================================================
--- root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/AbstractPoll.java 2010-05-16 12:29:36 UTC (rev 17067)
+++ root/ui/core/trunk/api/src/main/java/org/ajax4jsf/component/AbstractPoll.java 2010-05-16 14:56:31 UTC (rev 17068)
@@ -23,17 +23,15 @@
package org.ajax4jsf.component;
-import org.ajax4jsf.context.AjaxContext;
+import org.richfaces.component.AbstractActionComponent;
-import javax.faces.context.FacesContext;
-
/**
* Component for periodically call AJAX events on server ( poll actions )
* @author shura
*
*/
//@JsfComponent
-public abstract class AbstractPoll extends AjaxActionComponent {
+public abstract class AbstractPoll extends AbstractActionComponent {
public static final String COMPONENT_TYPE = "org.ajax4jsf.Poll";
private transient boolean submitted = false;
@@ -66,8 +64,4 @@
public abstract void setEnabled(boolean enable);
- protected void setupReRender(FacesContext facesContext) {
- super.setupReRender(facesContext);
- AjaxContext.getCurrentInstance(facesContext).addComponentToAjaxRender(this);
- }
}
Added: root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractActionComponent.java
===================================================================
--- root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractActionComponent.java (rev 0)
+++ root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractActionComponent.java 2010-05-16 14:56:31 UTC (rev 17068)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.richfaces.component;
+
+import javax.faces.component.UICommand;
+import javax.faces.event.ActionEvent;
+import javax.faces.event.FacesEvent;
+import javax.faces.event.PhaseId;
+
+/**
+ * @author Nick Belaevski
+ *
+ */
+public abstract class AbstractActionComponent extends UICommand {
+
+ public abstract boolean isBypassUpdates();
+ public abstract void setBypassUpdates(boolean bypassUpdates);
+
+ @Override
+ public void queueEvent(FacesEvent event) {
+ if (event instanceof ActionEvent) {
+ if (event.getComponent() == this) {
+ if (isImmediate()) {
+ event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
+ } else if (isBypassUpdates()) {
+ event.setPhaseId(PhaseId.PROCESS_VALIDATIONS);
+ } else {
+ event.setPhaseId(PhaseId.INVOKE_APPLICATION);
+ }
+ }
+
+ // UICommand set Phase ID for all ActionEvents - bypass it.
+ getParent().queueEvent(event);
+ } else {
+ super.queueEvent(event);
+ }
+ }
+}
Modified: root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractAjaxFunction.java
===================================================================
--- root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractAjaxFunction.java 2010-05-16 12:29:36 UTC (rev 17067)
+++ root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractAjaxFunction.java 2010-05-16 14:56:31 UTC (rev 17068)
@@ -23,8 +23,6 @@
package org.richfaces.component;
-import javax.faces.component.UICommand;
-
import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.EventName;
import org.richfaces.cdk.annotations.JsfComponent;
@@ -39,7 +37,7 @@
@JsfComponent(
tag = @Tag(name = "jsFunction", type = TagType.Facelets)
)
-public abstract class AbstractAjaxFunction extends UICommand {
+public abstract class AbstractAjaxFunction extends AbstractActionComponent {
public static final String COMPONENT_FAMILY = "javax.faces.Command";
Modified: root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractCommandButton.java
===================================================================
--- root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractCommandButton.java 2010-05-16 12:29:36 UTC (rev 17067)
+++ root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractCommandButton.java 2010-05-16 14:56:31 UTC (rev 17068)
@@ -24,7 +24,6 @@
package org.richfaces.component;
import javax.faces.component.UICommand;
-import javax.faces.component.UIComponentBase;
import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.EventName;
@@ -35,7 +34,7 @@
*
*/
@JsfComponent
-public abstract class AbstractCommandButton extends UIComponentBase {
+public abstract class AbstractCommandButton extends AbstractActionComponent {
public static final String COMPONENT_TYPE = "org.richfaces.CommandButton";
Modified: root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractCommandLink.java
===================================================================
--- root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractCommandLink.java 2010-05-16 12:29:36 UTC (rev 17067)
+++ root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractCommandLink.java 2010-05-16 14:56:31 UTC (rev 17068)
@@ -36,7 +36,7 @@
@JsfComponent (
tag = @Tag(type = TagType.Facelets)
)
-public abstract class AbstractCommandLink extends UICommand {
+public abstract class AbstractCommandLink extends AbstractActionComponent {
public static final String COMPONENT_TYPE = "org.richfaces.CommandLink";
Modified: root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractPush.java
===================================================================
--- root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractPush.java 2010-05-16 12:29:36 UTC (rev 17067)
+++ root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractPush.java 2010-05-16 14:56:31 UTC (rev 17068)
@@ -28,7 +28,6 @@
import javax.el.MethodExpression;
import javax.faces.component.NamingContainer;
-import javax.faces.component.UICommand;
import javax.faces.context.FacesContext;
import javax.faces.event.BehaviorEvent;
import javax.faces.event.FacesEvent;
@@ -49,7 +48,7 @@
@JsfComponent(
tag = @Tag(generate = true, handler = "org.richfaces.view.facelets.html.AjaxPushHandler", type = TagType.Facelets)
)
-public abstract class AbstractPush extends UICommand {
+public abstract class AbstractPush extends AbstractActionComponent {
public static final String COMPONENT_TYPE = "org.richfaces.Push";
Copied: root/ui-sandbox/core/trunk/src/main/java/org/ajax4jsf/component/AjaxActionComponent.java (from rev 17066, root/core/trunk/impl/src/main/java/org/ajax4jsf/component/AjaxActionComponent.java)
===================================================================
--- root/ui-sandbox/core/trunk/src/main/java/org/ajax4jsf/component/AjaxActionComponent.java (rev 0)
+++ root/ui-sandbox/core/trunk/src/main/java/org/ajax4jsf/component/AjaxActionComponent.java 2010-05-16 14:56:31 UTC (rev 17068)
@@ -0,0 +1,163 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.ajax4jsf.component;
+
+import org.ajax4jsf.context.AjaxContext;
+import org.ajax4jsf.event.AjaxEvent;
+import org.ajax4jsf.event.AjaxListener;
+import org.ajax4jsf.event.AjaxSource;
+import org.ajax4jsf.renderkit.RendererUtils;
+
+import javax.faces.component.UICommand;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.event.AbortProcessingException;
+import javax.faces.event.ActionEvent;
+import javax.faces.event.FacesEvent;
+import javax.faces.event.PhaseId;
+
+/**
+ * @author shura (latest modification by $Author: alexsmirnov $)
+ * @version $Revision: 1.1.2.3 $ $Date: 2007/02/06 16:23:21 $
+ */
+public abstract class AjaxActionComponent extends UICommand implements AjaxComponent, AjaxSource {
+ public static final String FOCUS_DATA_ID = "_A4J.AJAX.focus";
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.component.UIComponentBase#broadcast(javax.faces.event.FacesEvent)
+ */
+ public void broadcast(FacesEvent event) throws AbortProcessingException {
+
+ // perform default
+ super.broadcast(event);
+
+ if (event instanceof AjaxEvent) {
+ FacesContext context = getFacesContext();
+
+ // complete re-Render fields. AjaxEvent deliver before render
+ // response.
+ setupReRender(context);
+
+ // Put data for send in response
+ Object data = getData();
+ AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
+
+ if (null != data) {
+ ajaxContext.setResponseData(data);
+ }
+
+ String focus = getFocus();
+
+ if (null != focus) {
+
+ // search for component in tree.
+ // XXX - use more pourful search, as in h:outputLabel
+ // component.
+ UIComponent focusComponent = RendererUtils.getInstance().findComponentFor(this, focus);
+
+ if (null != focusComponent) {
+ focus = focusComponent.getClientId(context);
+ }
+
+ ajaxContext.getResponseDataMap().put(FOCUS_DATA_ID, focus);
+ }
+
+ ajaxContext.setOnbeforedomupdate(getOnbeforedomupdate());
+ ajaxContext.setOncomplete(getOncomplete());
+ }
+ }
+
+ /**
+ * Template method with old signature, for backward compability.
+ */
+ protected void setupReRender() {
+ }
+
+ /**
+ * Template methods for fill set of resions to render in subclasses.
+ *
+ * @param facesContext TODO
+ */
+ protected void setupReRender(FacesContext facesContext) {
+ AjaxContext.getCurrentInstance(facesContext).addRegionsFromComponent(this);
+ setupReRender();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.component.UIComponentBase#queueEvent(javax.faces.event.FacesEvent)
+ */
+ public void queueEvent(FacesEvent event) {
+ if (event instanceof ActionEvent) {
+ if (event.getComponent() == this) {
+ if (isImmediate()) {
+ event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
+ } else if (isBypassUpdates()) {
+ event.setPhaseId(PhaseId.PROCESS_VALIDATIONS);
+ } else {
+ event.setPhaseId(PhaseId.INVOKE_APPLICATION);
+ }
+ }
+
+ // UICommand set Phase ID for all ActionEvents - bypass it.
+ getParent().queueEvent(event);
+ } else {
+ super.queueEvent(event);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.ajax4jsf.framework.ajax.AjaxSource#addAjaxListener(org.ajax4jsf.framework.ajax.AjaxListener)
+ */
+ public void addAjaxListener(AjaxListener listener) {
+ addFacesListener(listener);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.ajax4jsf.framework.ajax.AjaxSource#getAjaxListeners()
+ */
+ public AjaxListener[] getAjaxListeners() {
+ AjaxListener[] al = (AjaxListener[]) getFacesListeners(AjaxListener.class);
+
+ return al;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.ajax4jsf.framework.ajax.AjaxSource#removeAjaxListener(org.ajax4jsf.framework.ajax.AjaxListener)
+ */
+ public void removeAjaxListener(AjaxListener listener) {
+ removeFacesListener(listener);
+ }
+
+ protected UIComponent getSingleComponent() {
+ return this;
+ }
+}
14 years, 4 months
JBoss Rich Faces SVN: r17067 - in root/ui/core/trunk/api/src: test/java/org/richfaces/component and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2010-05-16 08:29:36 -0400 (Sun, 16 May 2010)
New Revision: 17067
Added:
root/ui/core/trunk/api/src/test/java/org/richfaces/component/RegionTest.java
Modified:
root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractRegion.java
Log:
https://jira.jboss.org/browse/RF-8585
Modified: root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractRegion.java
===================================================================
--- root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractRegion.java 2010-05-15 18:45:29 UTC (rev 17066)
+++ root/ui/core/trunk/api/src/main/java/org/richfaces/component/AbstractRegion.java 2010-05-16 12:29:36 UTC (rev 17067)
@@ -38,6 +38,10 @@
)
public abstract class AbstractRegion extends UIComponentBase implements MetaComponentResolver, AjaxContainer {
+ public static final String COMPONENT_TYPE = "org.richfaces.Region";
+
+ public static final String COMPONENT_FAMILY = "org.richfaces.AjaxContainer";
+
public String resolveClientId(FacesContext facesContext, UIComponent contextComponent, String metaId) {
if (META_COMPONENT_ID.equals(metaId)) {
Added: root/ui/core/trunk/api/src/test/java/org/richfaces/component/RegionTest.java
===================================================================
--- root/ui/core/trunk/api/src/test/java/org/richfaces/component/RegionTest.java (rev 0)
+++ root/ui/core/trunk/api/src/test/java/org/richfaces/component/RegionTest.java 2010-05-16 12:29:36 UTC (rev 17067)
@@ -0,0 +1,307 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.richfaces.component;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Collection;
+import java.util.Iterator;
+
+import javax.el.ELContext;
+import javax.el.ValueExpression;
+import javax.faces.application.Application;
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIForm;
+import javax.faces.component.UIViewRoot;
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.renderkit.AjaxRendererUtils;
+import org.jboss.test.faces.FacesEnvironment;
+import org.jboss.test.faces.FacesEnvironment.FacesRequest;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+
+
+/**
+ * Test page pseudo-code:
+ * <pre>
+ * <h:form id="form">
+ * <a4j:testLink id="link"
+ * binding="#{link}"
+ * execute="#{linkExecute}" />
+ *
+ * <a4j:region id="region">
+ * <a4j:testLink id="regionLink"
+ * binding="#{regionLink}"
+ * execute="#{regionLinkExecute}" />
+ *
+ * </a4j:region>
+ * </h:form>
+ * </pre>
+ *
+ *
+ * @author Nick Belaevski
+ *
+ */
+public class RegionTest {
+
+ private FacesEnvironment environment;
+
+ private FacesRequest request;
+
+ private FacesContext facesContext;
+
+ private UIComponent link;
+
+ private String linkExecute;
+
+ private UIComponent regionLink;
+
+ private String regionLinkExecute;
+
+ private String linkClientId;
+
+ private String regionLinkClientId;
+
+ private String regionClientId;
+
+ @SuppressWarnings("serial")
+ private static abstract class StringFieldValueExpression extends ValueExpression {
+
+ @Override
+ public Class<?> getExpectedType() {
+ return String.class;
+ }
+
+ @Override
+ public Class<?> getType(ELContext context) {
+ return String.class;
+ }
+
+ @Override
+ public boolean isReadOnly(ELContext context) {
+ return false;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return obj == this;
+ }
+
+ @Override
+ public String getExpressionString() {
+ return null;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ @Override
+ public boolean isLiteralText() {
+ return false;
+ }
+ }
+
+ @SuppressWarnings("serial")
+ private ValueExpression createFirstLinkExecuteExpression() {
+ return new StringFieldValueExpression() {
+
+ @Override
+ public void setValue(ELContext context, Object value) {
+ linkExecute = (String) value;
+ }
+
+ @Override
+ public Object getValue(ELContext context) {
+ return linkExecute;
+ }
+ };
+ }
+
+ @SuppressWarnings("serial")
+ private ValueExpression createNestedFirstLinkExecuteExpression() {
+ return new StringFieldValueExpression() {
+
+ @Override
+ public void setValue(ELContext context, Object value) {
+ regionLinkExecute = (String) value;
+ }
+
+ @Override
+ public Object getValue(ELContext context) {
+ return regionLinkExecute;
+ }
+ };
+ }
+
+ private void createView() {
+ Application application = facesContext.getApplication();
+
+ UIViewRoot viewRoot = facesContext.getViewRoot();
+
+ UIComponent form = application.createComponent(UIForm.COMPONENT_TYPE);
+ form.setId("form");
+ viewRoot.getChildren().add(form);
+
+ link = createTestLink();
+ link.setId("link");
+ link.setValueExpression("execute", createFirstLinkExecuteExpression());
+ form.getChildren().add(link);
+ linkClientId = link.getClientId(facesContext);
+
+ UIComponent region = application.createComponent(AbstractRegion.COMPONENT_TYPE);
+ region.setId("region");
+ form.getChildren().add(region);
+ regionClientId = region.getClientId(facesContext);
+
+ regionLink = createTestLink();
+ regionLink.setId("regionLink");
+ regionLink.setValueExpression("execute", createNestedFirstLinkExecuteExpression());
+ region.getChildren().add(regionLink);
+ regionLinkClientId = regionLink.getClientId(facesContext);
+ }
+
+ private UIComponent createTestLink() {
+ return facesContext.getApplication().createComponent(UICommandButton.COMPONENT_TYPE);
+ }
+
+ private void setActivatorComponentId(String clientId) {
+ request.withParameter(AjaxRendererUtils.AJAX_COMPONENT_ID_PARAMETER, clientId);
+ }
+
+ private <T> void assertSingleElementCollection(T expected, Collection<T> actual) {
+ Iterator<T> iterator = actual.iterator();
+ assertTrue(iterator.hasNext());
+
+ assertEquals(expected, iterator.next());
+
+ assertFalse(iterator.hasNext());
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ environment = FacesEnvironment.createEnvironment();
+ environment.start();
+
+ request = environment.createFacesRequest();
+ request.start();
+
+ facesContext = FacesContext.getCurrentInstance();
+ createView();
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ linkClientId = null;
+ regionLinkClientId = null;
+
+ link = null;
+ regionLink = null;
+
+ linkExecute = null;
+ regionLinkExecute = null;
+
+ facesContext = null;
+
+ request.release();
+ request = null;
+
+ environment.release();
+ environment = null;
+ }
+
+ @Test
+ public void testDefaults() throws Exception {
+ setActivatorComponentId(linkClientId);
+
+ Collection<String> executeIds = facesContext.getPartialViewContext().getExecuteIds();
+ assertSingleElementCollection(linkClientId, executeIds);
+ }
+
+ @Test
+ public void testDefaultsInRegion() throws Exception {
+ setActivatorComponentId(regionLinkClientId);
+
+ Collection<String> executeIds = facesContext.getPartialViewContext().getExecuteIds();
+ assertSingleElementCollection(regionClientId, executeIds);
+ }
+
+ @Test
+ public void testExecuteThis() throws Exception {
+ linkExecute = AjaxRendererUtils.THIS;
+ setActivatorComponentId(linkClientId);
+
+ Collection<String> executeIds = facesContext.getPartialViewContext().getExecuteIds();
+ assertSingleElementCollection(linkClientId, executeIds);
+ }
+
+ @Test
+ public void testExecuteThisInRegion() throws Exception {
+ regionLinkExecute = AjaxRendererUtils.THIS;
+ setActivatorComponentId(regionLinkClientId);
+
+ Collection<String> executeIds = facesContext.getPartialViewContext().getExecuteIds();
+ assertSingleElementCollection(regionLinkClientId, executeIds);
+ }
+
+ @Test
+ public void testExecuteAll() throws Exception {
+ linkExecute = AjaxRendererUtils.ALL;
+ setActivatorComponentId(linkClientId);
+
+ Collection<String> executeIds = facesContext.getPartialViewContext().getExecuteIds();
+ assertSingleElementCollection(AjaxRendererUtils.ALL, executeIds);
+ }
+
+ @Test
+ public void testExecuteAllInRegion() throws Exception {
+ regionLinkExecute = AjaxRendererUtils.ALL;
+ setActivatorComponentId(regionLinkClientId);
+
+ Collection<String> executeIds = facesContext.getPartialViewContext().getExecuteIds();
+ assertSingleElementCollection(AjaxRendererUtils.ALL, executeIds);
+ }
+
+ @Test
+ public void testExecuteRegion() throws Exception {
+ linkExecute = AjaxContainer.META_CLIENT_ID;
+ setActivatorComponentId(linkClientId);
+
+ Collection<String> executeIds = facesContext.getPartialViewContext().getExecuteIds();
+ assertSingleElementCollection(linkClientId, executeIds);
+ }
+
+ @Test
+ public void testExecuteRegionInRegion() throws Exception {
+ regionLinkExecute = AjaxContainer.META_CLIENT_ID;
+ setActivatorComponentId(regionLinkClientId);
+
+ Collection<String> executeIds = facesContext.getPartialViewContext().getExecuteIds();
+ assertSingleElementCollection(regionClientId, executeIds);
+ }
+}
14 years, 4 months