You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2010/03/19 17:56:54 UTC
svn commit: r925324 - in
/myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago:
component/ComponentUtil.java component/UIDatePicker.java
util/EncodeAjaxCallback.java
Author: lofwyr
Date: Fri Mar 19 16:56:53 2010
New Revision: 925324
URL: http://svn.apache.org/viewvc?rev=925324&view=rev
Log:
TOBAGO-134: z-index calculation needed
- managing z-index in request map, also in the ajax case.
Modified:
myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java
myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/component/UIDatePicker.java
myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/util/EncodeAjaxCallback.java
Modified: myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java?rev=925324&r1=925323&r2=925324&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java (original)
+++ myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java Fri Mar 19 16:56:53 2010
@@ -22,37 +22,11 @@ package org.apache.myfaces.tobago.compon
* $Id$
*/
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_ACTION_LINK;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_ACTION_ONCLICK;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_ALIGN;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_CONVERTER;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_CREATE_SPAN;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_DISABLED;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_ESCAPE;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_FOR;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_HOVER;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_LABEL;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_MARKUP;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_READONLY;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_RENDERED_PARTIALLY;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_RENDER_RANGE;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_RENDER_RANGE_EXTERN;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_SORTABLE;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_STYLE_CLASS;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_VALUE;
-import static org.apache.myfaces.tobago.TobagoConstants.COMMAND_TYPE_NAVIGATE;
-import static org.apache.myfaces.tobago.TobagoConstants.COMMAND_TYPE_RESET;
-import static org.apache.myfaces.tobago.TobagoConstants.COMMAND_TYPE_SCRIPT;
-import static org.apache.myfaces.tobago.TobagoConstants.FACET_ITEMS;
-import static org.apache.myfaces.tobago.TobagoConstants.FACET_LABEL;
-import static org.apache.myfaces.tobago.TobagoConstants.RENDERER_TYPE_LABEL;
-import static org.apache.myfaces.tobago.TobagoConstants.RENDERER_TYPE_OUT;
-import static org.apache.myfaces.tobago.TobagoConstants.RENDERER_TYPE_SELECT_BOOLEAN_CHECKBOX;
-import static org.apache.myfaces.tobago.TobagoConstants.RENDERER_TYPE_SELECT_ONE_RADIO;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.tobago.TobagoConstants;
import org.apache.myfaces.tobago.context.TransientStateHolder;
import org.apache.myfaces.tobago.el.ConstantMethodBinding;
import org.apache.myfaces.tobago.event.PopupActionListener;
@@ -66,17 +40,10 @@ import org.apache.myfaces.tobago.util.To
import javax.faces.FactoryFinder;
import javax.faces.application.Application;
import javax.faces.application.FacesMessage;
-import javax.faces.component.ActionSource;
-import javax.faces.component.EditableValueHolder;
-import javax.faces.component.NamingContainer;
+import javax.faces.component.*;
import javax.faces.component.UICommand;
-import javax.faces.component.UIComponent;
-import javax.faces.component.UIGraphic;
import javax.faces.component.UIOutput;
-import javax.faces.component.UIParameter;
import javax.faces.component.UISelectItem;
-import javax.faces.component.UISelectItems;
-import javax.faces.component.ValueHolder;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.el.MethodBinding;
@@ -91,14 +58,9 @@ import javax.faces.render.RenderKitFacto
import javax.faces.render.Renderer;
import javax.faces.webapp.UIComponentTag;
import javax.servlet.jsp.JspException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
+
+import static org.apache.myfaces.tobago.TobagoConstants.*;
public class ComponentUtil {
@@ -1304,6 +1266,7 @@ public class ComponentUtil {
}
Collections.reverse(list);
invokeOrPrepare(facesContext, list, clientId, callback);
+ facesContext.getExternalContext().getRequestMap().remove(TobagoConstants.ATTR_ZINDEX);
}
private static void invokeOrPrepare(FacesContext facesContext, List<UIComponent> list, String clientId,
@@ -1314,6 +1277,8 @@ public class ComponentUtil {
prepareOnUIData(facesContext, list, clientId, callback);
} else if (list.get(0) instanceof UIForm) {
prepareOnUIForm(facesContext, list, clientId, callback);
+ } else if (list.get(0) instanceof UIPopup) {
+ prepareOnUIPopup(facesContext, list, clientId, callback);
} else {
prepareOnUIComponent(facesContext, list, clientId, callback);
}
@@ -1338,8 +1303,24 @@ public class ComponentUtil {
}
- private static void prepareOnUIComponent(FacesContext facesContext, List<UIComponent> list, String clientId,
- Callback callback) {
+ private static void prepareOnUIComponent(
+ FacesContext facesContext, List<UIComponent> list, String clientId, Callback callback) {
+ list.remove(0);
+ invokeOrPrepare(facesContext, list, clientId, callback);
+ }
+
+ private static void prepareOnUIPopup(
+ FacesContext facesContext, List<UIComponent> list, String clientId, Callback callback) {
+ if (callback instanceof TobagoCallback
+ && PhaseId.RENDER_RESPONSE.equals(((TobagoCallback) callback).getPhaseId())) {
+ Integer zIndex = (Integer) facesContext.getExternalContext().getRequestMap().get(TobagoConstants.ATTR_ZINDEX);
+ if (zIndex == null) {
+ zIndex = 0;
+ } else {
+ zIndex += 10;
+ }
+ facesContext.getExternalContext().getRequestMap().put(TobagoConstants.ATTR_ZINDEX, zIndex);
+ }
list.remove(0);
invokeOrPrepare(facesContext, list, clientId, callback);
}
Modified: myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/component/UIDatePicker.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/component/UIDatePicker.java?rev=925324&r1=925323&r2=925324&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/component/UIDatePicker.java (original)
+++ myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/component/UIDatePicker.java Fri Mar 19 16:56:53 2010
@@ -17,24 +17,6 @@ package org.apache.myfaces.tobago.compon
* limitations under the License.
*/
-import org.apache.myfaces.tobago.TobagoConstants;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_ALT;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_CALENDAR_DATE_INPUT_ID;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_COLUMNS;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_LABEL;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_POPUP_RESET;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_ROWS;
-import static org.apache.myfaces.tobago.TobagoConstants.FACET_LAYOUT;
-import static org.apache.myfaces.tobago.TobagoConstants.FACET_PICKER_POPUP;
-import static org.apache.myfaces.tobago.TobagoConstants.RENDERER_TYPE_BOX;
-import static org.apache.myfaces.tobago.TobagoConstants.RENDERER_TYPE_BUTTON;
-import static org.apache.myfaces.tobago.TobagoConstants.RENDERER_TYPE_CALENDAR;
-import static org.apache.myfaces.tobago.TobagoConstants.RENDERER_TYPE_GRID_LAYOUT;
-import static org.apache.myfaces.tobago.TobagoConstants.RENDERER_TYPE_HIDDEN;
-import static org.apache.myfaces.tobago.TobagoConstants.RENDERER_TYPE_IMAGE;
-import static org.apache.myfaces.tobago.TobagoConstants.RENDERER_TYPE_PANEL;
-import static org.apache.myfaces.tobago.TobagoConstants.RENDERER_TYPE_POPUP;
-import static org.apache.myfaces.tobago.TobagoConstants.RENDERER_TYPE_TIME;
import org.apache.myfaces.tobago.context.ResourceManagerUtil;
import org.apache.myfaces.tobago.renderkit.html.StyleClasses;
@@ -44,6 +26,8 @@ import javax.faces.context.FacesContext;
import javax.faces.event.FacesEvent;
import java.util.Map;
+import static org.apache.myfaces.tobago.TobagoConstants.*;
+
/*
* Date: 30.05.2006
* Time: 19:22:40
@@ -146,8 +130,6 @@ public class UIDatePicker extends UILink
final UIPopup popup =
(UIPopup) ComponentUtil.createComponent(facesContext, UIPopup.COMPONENT_TYPE,
RENDERER_TYPE_POPUP, (linkId != null ? linkId + "popup" : viewRoot.createUniqueId()));
- popup.getAttributes().put(TobagoConstants.ATTR_ZINDEX, 10);
-
link.getFacets().put(FACET_PICKER_POPUP, popup);
popup.setRendered(false);
Modified: myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/util/EncodeAjaxCallback.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/util/EncodeAjaxCallback.java?rev=925324&r1=925323&r2=925324&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/util/EncodeAjaxCallback.java (original)
+++ myfaces/tobago/branches/tobago-1.0.x/core/src/main/java/org/apache/myfaces/tobago/util/EncodeAjaxCallback.java Fri Mar 19 16:56:53 2010
@@ -20,12 +20,13 @@ package org.apache.myfaces.tobago.util;
import org.apache.myfaces.tobago.ajax.api.AjaxComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.component.UIComponent;
import javax.faces.FacesException;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.event.PhaseId;
import java.io.IOException;
-public class EncodeAjaxCallback implements Callback {
+public class EncodeAjaxCallback implements TobagoCallback {
public void execute(FacesContext facesContext, UIComponent component) {
try {
@@ -34,4 +35,8 @@ public class EncodeAjaxCallback implemen
throw new FacesException(e);
}
}
+
+ public PhaseId getPhaseId() {
+ return PhaseId.RENDER_RESPONSE;
+ }
}