Author: nbelaevski
Date: 2009-12-14 15:52:39 -0500 (Mon, 14 Dec 2009)
New Revision: 16127
Added:
branches/community/3.3.X/framework/impl/src/main/java-jsf12/org/ajax4jsf/component/EventValueExpression.java
branches/community/3.3.X/framework/impl/src/main/java-jsf20/org/ajax4jsf/component/EventValueExpression.java
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/AbstractEventValueExpression.java
Removed:
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/EventValueExpression.java
Modified:
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/EventValueBinding.java
branches/community/3.3.X/framework/impl/src/main/java/org/richfaces/webapp/taglib/ValueBindingValueExpressionAdaptor.java
Log:
https://jira.jboss.org/jira/browse/RF-8203
Added:
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/AbstractEventValueExpression.java
===================================================================
---
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/AbstractEventValueExpression.java
(rev 0)
+++
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/AbstractEventValueExpression.java 2009-12-14
20:52:39 UTC (rev 16127)
@@ -0,0 +1,150 @@
+/*
+ * 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;
+
+import javax.el.ELContext;
+import javax.el.ELException;
+import javax.el.ValueExpression;
+import javax.faces.component.UIComponent;
+
+import org.ajax4jsf.Messages;
+
+/**
+ * @author Nick Belaevski
+ *
+ */
+public abstract class AbstractEventValueExpression extends ValueExpression {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -2600139922687495517L;
+
+ protected abstract AjaxSupport getComponent();
+
+ /**
+ * @param component
+ * the component to set
+ */
+ public abstract void setComponent(AjaxSupport component);
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.el.Expression#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.el.ValueExpression#getExpectedType()
+ */
+ @Override
+ public Class<?> getExpectedType() {
+ return String.class;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.el.Expression#getExpressionString()
+ */
+ @Override
+ public String getExpressionString() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.el.ValueExpression#getType(javax.el.ELContext)
+ */
+ @Override
+ public Class<?> getType(ELContext context) {
+ return String.class;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.el.ValueExpression#getValue(javax.el.ELContext)
+ */
+ @Override
+ public Object getValue(ELContext context) {
+ AjaxSupport ajaxSupport = getComponent();
+ if (((UIComponent) ajaxSupport).isRendered()) {
+ return ajaxSupport.getEventString();
+ } else {
+ return null;
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.el.Expression#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.el.Expression#isLiteralText()
+ */
+ @Override
+ public boolean isLiteralText() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.el.ValueExpression#isReadOnly(javax.el.ELContext)
+ */
+ @Override
+ public boolean isReadOnly(ELContext context) {
+ return true;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.el.ValueExpression#setValue(javax.el.ELContext,
+ * java.lang.Object)
+ */
+ @Override
+ public void setValue(ELContext context, Object value) {
+ throw new ELException(Messages.getMessage(Messages.EVENT_IS_READ_ONLY));
+ }
+
+
+}
Modified:
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/EventValueBinding.java
===================================================================
---
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/EventValueBinding.java 2009-12-14
15:24:21 UTC (rev 16126)
+++
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/EventValueBinding.java 2009-12-14
20:52:39 UTC (rev 16127)
@@ -21,15 +21,8 @@
package org.ajax4jsf.component;
-import javax.faces.component.StateHolder;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.el.EvaluationException;
-import javax.faces.el.PropertyNotFoundException;
-import javax.faces.el.ValueBinding;
+import org.richfaces.webapp.taglib.ValueBindingValueExpressionAdaptor;
-import org.ajax4jsf.Messages;
-import org.ajax4jsf.renderkit.AjaxRendererUtils;
/**
* Inner class for build event string for parent component.
@@ -39,168 +32,44 @@
* not rebuild event string setted as EL expression. TODO - save
* expressions for build event string at render phase.
*/
-public class EventValueBinding extends ValueBinding implements StateHolder {
+public class EventValueBinding extends ValueBindingValueExpressionAdaptor {
- /**
+ /**
*
*/
- private static final long serialVersionUID = -6583167387542332290L;
+ private static final long serialVersionUID = -6583167387542332290L;
- private String _componentId;
+ /**
+ * Default constructor for restoreState.
+ */
+ public EventValueBinding() {
+ super(new EventValueExpression());
+ }
- /**
- * current update component. transient since saved state as component.
- */
- transient private AjaxSupport _component = null;
-
- /**
- * Default constructor for restoreState.
- */
- public EventValueBinding() {
-
- }
-
- /**
- * Constructor for build from AjaxComponent.
- *
- * @param update
- */
- public EventValueBinding(AjaxSupport update) {
- _component = update;
- // _componentId = string;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.faces.el.ValueBinding#getType(javax.faces.context.FacesContext)
- */
- public Class getType(FacesContext facesContext) throws EvaluationException,
- PropertyNotFoundException {
-
- return String.class;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.faces.el.ValueBinding#getValue(javax.faces.context.FacesContext)
- */
- public Object getValue(FacesContext facesContext)
- throws EvaluationException, PropertyNotFoundException {
- if (((UIComponent) getComponent(facesContext)).isRendered()) {
- return getComponent(facesContext).getEventString();
-
- } else {
- return null;
+ /**
+ * Constructor for build from AjaxComponent.
+ *
+ * @param update
+ */
+ public EventValueBinding(AjaxSupport update) {
+ super(new EventValueExpression(update));
}
- }
- private AjaxSupport getComponent(FacesContext facesContext)
- throws EvaluationException {
-
- if (_component == null) {
- UIComponent uiComponent = facesContext.getViewRoot().findComponent(
- _componentId);
- if (null != uiComponent && uiComponent instanceof AjaxSupport) {
- _component = (AjaxSupport) uiComponent;
- } else {
- throw new EvaluationException(Messages.getMessage(
- Messages.COMPONENT_NOT_FOUND, _componentId));
- }
-
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.component.StateHolder#isTransient()
+ */
+ public boolean isTransient() {
+ return false;
}
- return _component;
- }
-
- /**
- * @param component
- * the component to set
- */
- public void setComponent(AjaxSupport component) {
- _component = component;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.faces.el.ValueBinding#isReadOnly(javax.faces.context.FacesContext)
- */
- public boolean isReadOnly(FacesContext facesContext)
- throws EvaluationException, PropertyNotFoundException {
- // TODO Auto-generated method stub
- return true;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.faces.el.ValueBinding#setValue(javax.faces.context.FacesContext,
- * java.lang.Object)
- */
- public void setValue(FacesContext facesContext, Object value)
- throws EvaluationException, PropertyNotFoundException {
- throw new EvaluationException(Messages
- .getMessage(Messages.EVENT_IS_READ_ONLY));
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
javax.faces.component.StateHolder#saveState(javax.faces.context.FacesContext)
- */
- public Object saveState(FacesContext context) {
- if (null == _component) {
- return _componentId;
- } else {
- return AjaxRendererUtils
- .getAbsoluteId((UIComponent) getComponent(context));
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.component.StateHolder#setTransient(boolean)
+ */
+ public void setTransient(boolean newTransientValue) {
}
- }
- /*
- * (non-Javadoc)
- *
- * @see
javax.faces.component.StateHolder#restoreState(javax.faces.context.FacesContext,
- * java.lang.Object)
- */
- public void restoreState(FacesContext context, Object state) {
- // TODO Auto-generated method stub
- _componentId = (String) state;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.faces.component.StateHolder#isTransient()
- */
- public boolean isTransient() {
- // TODO Auto-generated method stub
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.faces.component.StateHolder#setTransient(boolean)
- */
- public void setTransient(boolean newTransientValue) {
- // TODO Auto-generated method stub
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.faces.el.ValueBinding#getExpressionString()
- */
- public String getExpressionString() {
- // FacesContext context = FacesContext.getCurrentInstance();
- // UIComponent component = (UIComponent) getComponent(context);
- // return "#{ajaxSupport["+component.getClientId(context)+"]}";
- return null;
- }
-
}
\ No newline at end of file
Deleted:
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/EventValueExpression.java
===================================================================
---
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/EventValueExpression.java 2009-12-14
15:24:21 UTC (rev 16126)
+++
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/component/EventValueExpression.java 2009-12-14
20:52:39 UTC (rev 16127)
@@ -1,216 +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 javax.el.ELContext;
-import javax.el.ELException;
-import javax.el.ValueExpression;
-import javax.faces.component.StateHolder;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-
-import org.ajax4jsf.Messages;
-import org.ajax4jsf.renderkit.AjaxRendererUtils;
-
-/**
- * @author Maksim Kaszynski
- *
- */
-public class EventValueExpression extends ValueExpression implements
- StateHolder {
-
- /**
- *
- */
- private static final long serialVersionUID = -6583167387542332290L;
-
- private String componentId;
-
- /**
- * current update component. transient since saved state as component.
- */
- transient private AjaxSupport component = null;
-
-
- public EventValueExpression() {
- // TODO Auto-generated constructor stub
- }
-
- public EventValueExpression(AjaxSupport component) {
- super();
- this.component = component;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.el.Expression#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- // TODO Auto-generated method stub
- return false;
- }
-
- private AjaxSupport getComponent(FacesContext facesContext)
- throws ELException {
-
- if (component == null) {
- UIComponent uiComponent = facesContext.getViewRoot().findComponent(
- componentId);
- if (null != uiComponent && uiComponent instanceof AjaxSupport) {
- component = (AjaxSupport) uiComponent;
- } else {
- throw new ELException(Messages.getMessage(
- Messages.COMPONENT_NOT_FOUND, componentId));
- }
-
- }
-
- return component;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.el.ValueExpression#getExpectedType()
- */
- @Override
- public Class<?> getExpectedType() {
- return String.class;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.el.Expression#getExpressionString()
- */
- @Override
- public String getExpressionString() {
- // TODO Auto-generated method stub
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.el.ValueExpression#getType(javax.el.ELContext)
- */
- @Override
- public Class<?> getType(ELContext context) {
- return String.class;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.el.ValueExpression#getValue(javax.el.ELContext)
- */
- @Override
- public Object getValue(ELContext context) {
- FacesContext facesContext = FacesContext.getCurrentInstance();
- AjaxSupport component = getComponent(facesContext);
- if (((UIComponent) component).isRendered()) {
- return component.getEventString();
-
- } else {
- return null;
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.el.Expression#hashCode()
- */
- @Override
- public int hashCode() {
- // TODO Auto-generated method stub
- return 0;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.el.Expression#isLiteralText()
- */
- @Override
- public boolean isLiteralText() {
- // TODO Auto-generated method stub
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.el.ValueExpression#isReadOnly(javax.el.ELContext)
- */
- @Override
- public boolean isReadOnly(ELContext context) {
- return true;
- }
-
- public boolean isTransient() {
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
javax.faces.component.StateHolder#restoreState(javax.faces.context.FacesContext,
- * java.lang.Object)
- */
- public void restoreState(FacesContext context, Object state) {
- componentId = (String) state;
- }
-
- public Object saveState(FacesContext context) {
- if (null == component) {
- return componentId;
- } else {
- return AjaxRendererUtils
- .getAbsoluteId((UIComponent) getComponent(context));
- }
- }
-
- /**
- * @param component
- * the component to set
- */
- public void setComponent(AjaxSupport component) {
- this.component = component;
- }
-
- public void setTransient(boolean newTransientValue) {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.el.ValueExpression#setValue(javax.el.ELContext,
- * java.lang.Object)
- */
- @Override
- public void setValue(ELContext context, Object value) {
- throw new ELException(Messages.getMessage(Messages.EVENT_IS_READ_ONLY));
- }
-
-}
Modified:
branches/community/3.3.X/framework/impl/src/main/java/org/richfaces/webapp/taglib/ValueBindingValueExpressionAdaptor.java
===================================================================
---
branches/community/3.3.X/framework/impl/src/main/java/org/richfaces/webapp/taglib/ValueBindingValueExpressionAdaptor.java 2009-12-14
15:24:21 UTC (rev 16126)
+++
branches/community/3.3.X/framework/impl/src/main/java/org/richfaces/webapp/taglib/ValueBindingValueExpressionAdaptor.java 2009-12-14
20:52:39 UTC (rev 16127)
@@ -20,9 +20,12 @@
*/
package org.richfaces.webapp.taglib;
+import java.io.Serializable;
+
import javax.el.ELException;
import javax.el.ValueExpression;
import javax.faces.component.StateHolder;
+import javax.faces.component.UIComponentBase;
import javax.faces.context.FacesContext;
import javax.faces.el.EvaluationException;
import javax.faces.el.PropertyNotFoundException;
@@ -33,8 +36,13 @@
*
*/
@SuppressWarnings("deprecation")
-public class ValueBindingValueExpressionAdaptor extends ValueBinding implements
StateHolder {
+public class ValueBindingValueExpressionAdaptor extends ValueBinding implements
StateHolder, Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 3242030160417022811L;
+
private ValueExpression expression;
private boolean tranzient;
@@ -105,11 +113,11 @@
}
public void restoreState(FacesContext context, Object state) {
- expression = (ValueExpression) state;
+ expression = (ValueExpression) UIComponentBase.restoreAttachedState(context, state);
}
public Object saveState(FacesContext context) {
- return expression;
+ return UIComponentBase.saveAttachedState(context, expression);
}
public void setTransient(boolean newTransientValue) {
Added:
branches/community/3.3.X/framework/impl/src/main/java-jsf12/org/ajax4jsf/component/EventValueExpression.java
===================================================================
---
branches/community/3.3.X/framework/impl/src/main/java-jsf12/org/ajax4jsf/component/EventValueExpression.java
(rev 0)
+++
branches/community/3.3.X/framework/impl/src/main/java-jsf12/org/ajax4jsf/component/EventValueExpression.java 2009-12-14
20:52:39 UTC (rev 16127)
@@ -0,0 +1,112 @@
+/*
+ * 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;
+
+import javax.el.ELException;
+import javax.faces.component.StateHolder;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.Messages;
+import org.ajax4jsf.renderkit.AjaxRendererUtils;
+
+/**
+ * @author Nick Belaevski
+ *
+ */
+public class EventValueExpression extends AbstractEventValueExpression
+ implements StateHolder {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -6583167387542332290L;
+
+ private String componentId;
+
+ /**
+ * current update component. transient since saved state as component.
+ */
+ transient private AjaxSupport component = null;
+
+ public EventValueExpression() {
+ }
+
+ public EventValueExpression(AjaxSupport component) {
+
+ super();
+ this.component = component;
+ }
+
+ public boolean isTransient() {
+ return false;
+ }
+
+ public void setTransient(boolean newTransientValue) {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seejavax.faces.component.StateHolder#restoreState(javax.faces.context.
+ * FacesContext, java.lang.Object)
+ */
+ public void restoreState(FacesContext context, Object state) {
+ componentId = (String) state;
+ }
+
+ public Object saveState(FacesContext context) {
+ if (null == component) {
+ return componentId;
+ } else {
+ return AjaxRendererUtils
+ .getAbsoluteId((UIComponent) getComponent());
+ }
+ }
+
+ /**
+ * @param component
+ * the component to set
+ */
+ public void setComponent(AjaxSupport component) {
+ this.component = component;
+ }
+
+ @Override
+ protected AjaxSupport getComponent() {
+ if (component == null) {
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ UIComponent uiComponent = facesContext.getViewRoot().findComponent(
+ componentId);
+ if (null != uiComponent && uiComponent instanceof AjaxSupport) {
+ component = (AjaxSupport) uiComponent;
+ } else {
+ throw new ELException(Messages.getMessage(
+ Messages.COMPONENT_NOT_FOUND, componentId));
+ }
+
+ }
+
+ return component;
+ }
+
+}
Added:
branches/community/3.3.X/framework/impl/src/main/java-jsf20/org/ajax4jsf/component/EventValueExpression.java
===================================================================
---
branches/community/3.3.X/framework/impl/src/main/java-jsf20/org/ajax4jsf/component/EventValueExpression.java
(rev 0)
+++
branches/community/3.3.X/framework/impl/src/main/java-jsf20/org/ajax4jsf/component/EventValueExpression.java 2009-12-14
20:52:39 UTC (rev 16127)
@@ -0,0 +1,98 @@
+/**
+ * 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 javax.el.ELException;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.Messages;
+
+/**
+ * @author Maksim Kaszynski
+ *
+ */
+public class EventValueExpression extends AbstractEventValueExpression {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -6583167387542332290L;
+
+ private String componentId;
+
+ public EventValueExpression() {
+ super();
+ }
+
+ public EventValueExpression(AjaxSupport component) {
+ super();
+
+ this.componentId = ((UIComponent) component).getId();
+ }
+
+ private UIComponent quickFindComponent(UIComponent component, String componentId) {
+ UIComponent result = null;
+
+ if (component.getFacetCount() > 0) {
+ for (UIComponent c : component.getFacets().values()) {
+ if (componentId.equals(c.getId())) {
+ result = c;
+ break;
+ }
+ }
+ }
+
+ if (result == null && component.getChildCount() > 0) {
+ for (UIComponent c : component.getChildren()) {
+ if (componentId.equals(c.getId())) {
+ result = c;
+ break;
+ }
+ }
+ }
+
+ return result;
+ }
+
+ protected AjaxSupport getComponent() {
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ UIComponent currentComponent = UIComponent.getCurrentComponent(facesContext);
+ UIComponent foundComponent = null;
+
+ if (currentComponent != null) {
+ foundComponent = quickFindComponent(currentComponent, componentId);
+ }
+
+ if (foundComponent == null || !(foundComponent instanceof AjaxSupport)) {
+ throw new ELException(Messages.getMessage(
+ Messages.COMPONENT_NOT_FOUND, componentId));
+ }
+
+ return (AjaxSupport) foundComponent;
+ }
+
+ @Override
+ public void setComponent(AjaxSupport ajaxSupport) {
+ this.componentId = ((UIComponent) ajaxSupport).getId();
+ }
+
+}