You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2010/06/17 04:14:11 UTC
svn commit: r955461 - in
/myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom:
navigation/HtmlNavigationRenderer.java tabbedpane/AbstractHtmlPanelTab.java
tabbedpane/HtmlTabbedPaneRenderer.java
Author: lu4242
Date: Thu Jun 17 02:14:11 2010
New Revision: 955461
URL: http://svn.apache.org/viewvc?rev=955461&view=rev
Log:
TOMAHAWK-1474 Behavior support for components that contains event aware properties in jsf 2.0 module
Modified:
myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/navigation/HtmlNavigationRenderer.java
myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/AbstractHtmlPanelTab.java
myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/HtmlTabbedPaneRenderer.java
Modified: myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/navigation/HtmlNavigationRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/navigation/HtmlNavigationRenderer.java?rev=955461&r1=955460&r2=955461&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/navigation/HtmlNavigationRenderer.java (original)
+++ myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/navigation/HtmlNavigationRenderer.java Thu Jun 17 02:14:11 2010
@@ -21,6 +21,7 @@ package org.apache.myfaces.custom.naviga
import org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils;
import org.apache.myfaces.shared_tomahawk.renderkit.html.HTML;
import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRendererUtils;
+import org.apache.myfaces.shared_tomahawk.renderkit.html.util.ResourceUtils;
import org.apache.myfaces.renderkit.html.ext.HtmlLinkRenderer;
import org.apache.commons.logging.Log;
@@ -28,6 +29,7 @@ import org.apache.commons.logging.LogFac
import javax.faces.component.UIComponent;
import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.component.behavior.ClientBehaviorHolder;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import java.io.IOException;
@@ -100,12 +102,17 @@ public class HtmlNavigationRenderer
RendererUtils.checkParamValidity(facesContext, component, HtmlPanelNavigation.class);
ResponseWriter writer = facesContext.getResponseWriter();
HtmlPanelNavigation panelNav = (HtmlPanelNavigation)component;
+
+ Map<String, List<ClientBehavior>> behaviors = panelNav.getClientBehaviors();
+ if (!behaviors.isEmpty())
+ {
+ ResourceUtils.renderDefaultJsfJsInlineIfNecessary(facesContext, writer);
+ }
if (panelNav.getChildCount() > 0)
{
HtmlRendererUtils.writePrettyLineSeparator(facesContext);
writer.startElement(HTML.TABLE_ELEM, component);
- Map<String, List<ClientBehavior>> behaviors = panelNav.getClientBehaviors();
if (behaviors != null && !behaviors.isEmpty())
{
Modified: myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/AbstractHtmlPanelTab.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/AbstractHtmlPanelTab.java?rev=955461&r1=955460&r2=955461&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/AbstractHtmlPanelTab.java (original)
+++ myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/AbstractHtmlPanelTab.java Thu Jun 17 02:14:11 2010
@@ -19,6 +19,7 @@
package org.apache.myfaces.custom.tabbedpane;
import javax.faces.component.NamingContainer;
+import javax.faces.component.behavior.ClientBehaviorHolder;
import javax.faces.component.html.HtmlPanelGroup;
import org.apache.myfaces.component.EventAware;
@@ -41,7 +42,7 @@ import org.apache.myfaces.component.User
*/
public abstract class AbstractHtmlPanelTab
extends HtmlPanelGroup implements NamingContainer,
- UserRoleAware, EventAware, UniversalProperties
+ UserRoleAware, EventAware, UniversalProperties, ClientBehaviorHolder
{
//private static final Log log = LogFactory.getLog(HtmlPanelTab.class);
Modified: myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/HtmlTabbedPaneRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/HtmlTabbedPaneRenderer.java?rev=955461&r1=955460&r2=955461&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/HtmlTabbedPaneRenderer.java (original)
+++ myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/HtmlTabbedPaneRenderer.java Thu Jun 17 02:14:11 2010
@@ -30,6 +30,7 @@ import javax.faces.component.UIComponent
import javax.faces.component.UIForm;
import javax.faces.component.UINamingContainer;
import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.component.behavior.ClientBehaviorHolder;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.event.ComponentSystemEvent;
@@ -37,12 +38,14 @@ import javax.faces.event.ComponentSystem
import javax.faces.event.ListenerFor;
import org.apache.myfaces.component.UserRoleUtils;
+import org.apache.myfaces.shared_tomahawk.renderkit.ClientBehaviorEvents;
import org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils;
import org.apache.myfaces.shared_tomahawk.renderkit.html.HTML;
import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRenderer;
import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRendererUtils;
import org.apache.myfaces.shared_tomahawk.renderkit.html.util.FormInfo;
import org.apache.myfaces.shared_tomahawk.renderkit.html.util.JavascriptUtils;
+import org.apache.myfaces.shared_tomahawk.renderkit.html.util.ResourceUtils;
import org.apache.myfaces.tomahawk.application.PreRenderViewAddResourceEvent;
import org.apache.myfaces.tomahawk.util.TomahawkResourceUtils;
@@ -140,6 +143,24 @@ public class HtmlTabbedPaneRenderer
ResponseWriter writer = facesContext.getResponseWriter();
+ Map<String, List<ClientBehavior>> behaviors = tabbedPane.getClientBehaviors();
+ if (!behaviors.isEmpty())
+ {
+ ResourceUtils.renderDefaultJsfJsInlineIfNecessary(facesContext, writer);
+ }
+
+ for (UIComponent child : tabbedPane.getChildren())
+ {
+ if (child instanceof HtmlPanelTab)
+ {
+ Map<String, List<ClientBehavior>> bh = ((HtmlPanelTab) child).getClientBehaviors();
+ if (!bh.isEmpty())
+ {
+ ResourceUtils.renderDefaultJsfJsInlineIfNecessary(facesContext, writer);
+ }
+ }
+ }
+
HtmlRendererUtils.writePrettyLineSeparator(facesContext);
int selectedIndex = tabbedPane.getSelectedIndex();
@@ -481,21 +502,29 @@ public class HtmlTabbedPaneRenderer
String inactiveUserClass = tabbedPane.getInactiveTabStyleClass();
String activeSubStyleUserClass = tabbedPane.getActiveSubStyleClass();
String inactiveSubStyleUserClass = tabbedPane.getInactiveSubStyleClass();
- String onclickEvent = tab.getAttributes().get(HTML.ONCLICK_ATTR) != null ? (String) tab.getAttributes().get(HTML.ONCLICK_ATTR) : "";
- if(!("").equals(onclickEvent) && onclickEvent.charAt(onclickEvent.length()-1) != ';') {
- onclickEvent += ";";
- }
+ String serverSideScript = "return myFaces_showPanelTab("
+ +tabIndex+",'"+getTabIndexSubmitFieldIDAndName(tabbedPane, facesContext)+"',"
+ +'\''+getHeaderCellID(tab, facesContext)+"','"+tab.getClientId(facesContext) + TAB_DIV_SUFFIX +"',"
+ +getHeaderCellsIDsVar(tabbedPane,facesContext)+','+getTabsIDsVar(tabbedPane,facesContext)+','
+ + (activeUserClass==null ? "null" : '\''+activeUserClass+'\'')+','+ (inactiveUserClass==null ? "null" : '\''+inactiveUserClass+'\'')+','
+ + (activeSubStyleUserClass==null ? "null" : '\''+activeSubStyleUserClass+'\'')+','+ (inactiveSubStyleUserClass==null ? "null" : '\''+inactiveSubStyleUserClass+'\'')+");";
- writer.writeAttribute(HTML.ONCLICK_ATTR,
- onclickEvent
- + "return myFaces_showPanelTab("
- +tabIndex+",'"+getTabIndexSubmitFieldIDAndName(tabbedPane, facesContext)+"',"
- +'\''+getHeaderCellID(tab, facesContext)+"','"+tab.getClientId(facesContext) + TAB_DIV_SUFFIX +"',"
- +getHeaderCellsIDsVar(tabbedPane,facesContext)+','+getTabsIDsVar(tabbedPane,facesContext)+','
- + (activeUserClass==null ? "null" : '\''+activeUserClass+'\'')+','+ (inactiveUserClass==null ? "null" : '\''+inactiveUserClass+'\'')+','
- + (activeSubStyleUserClass==null ? "null" : '\''+activeSubStyleUserClass+'\'')+','+ (inactiveSubStyleUserClass==null ? "null" : '\''+inactiveSubStyleUserClass+'\'')+");",
- null);
+ Map<String, List<ClientBehavior>> behaviors = tab.getClientBehaviors();
+ HtmlRendererUtils.renderBehaviorizedAttribute(facesContext, writer, HTML.ONCLICK_ATTR,
+ tab, ClientBehaviorEvents.CLICK, null, behaviors, HTML.ONCLICK_ATTR,
+ (String) tab.getAttributes().get(HTML.ONCLICK_ATTR), serverSideScript);
+
+ //String onclickEvent = tab.getAttributes().get(HTML.ONCLICK_ATTR) != null ? (String) tab.getAttributes().get(HTML.ONCLICK_ATTR) : "";
+
+ //if(!("").equals(onclickEvent) && onclickEvent.charAt(onclickEvent.length()-1) != ';') {
+ // onclickEvent += ";";
+ //}
+
+ //writer.writeAttribute(HTML.ONCLICK_ATTR,
+ // onclickEvent +
+ // serverSideScript,
+ // null);
}
writer.endElement(HTML.INPUT_ELEM);