You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mb...@apache.org on 2005/08/02 10:42:06 UTC
svn commit: r226969 - in /myfaces: examples/trunk/simple/
examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/
tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/
tomahawk/trunk/tld/
Author: mbr
Date: Tue Aug 2 01:41:56 2005
New Revision: 226969
URL: http://svn.apache.org/viewcvs?rev=226969&view=rev
Log:
actionListener property added to datascroller
Modified:
myfaces/examples/trunk/simple/dataScroller.jsp
myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/DataScrollerList.java
myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/HtmlDataScroller.java
myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/HtmlDataScrollerTag.java
myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/ScrollerActionEvent.java
myfaces/tomahawk/trunk/tld/myfaces_ext.tld
Modified: myfaces/examples/trunk/simple/dataScroller.jsp
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/dataScroller.jsp?rev=226969&r1=226968&r2=226969&view=diff
==============================================================================
--- myfaces/examples/trunk/simple/dataScroller.jsp (original)
+++ myfaces/examples/trunk/simple/dataScroller.jsp Tue Aug 2 01:41:56 2005
@@ -32,7 +32,7 @@
<f:loadBundle basename="org.apache.myfaces.examples.resource.example_messages" var="example_messages"/>
<h:panelGroup id="body">
-
+
<x:dataTable id="data"
styleClass="scrollerTable"
headerClass="standardTable_Header"
@@ -77,6 +77,7 @@
paginatorMaxPages="9"
paginatorTableClass="paginator"
paginatorActiveColumnStyle="font-weight:bold;"
+ actionListener="#{scrollerList.scrollerAction}"
>
<f:facet name="first" >
<x:graphicImage url="images/arrow-first.gif" border="1" />
@@ -118,7 +119,7 @@
</h:panelGrid>
</h:panelGroup>
-
+
</f:view>
<%@include file="inc/page_footer.jsp" %>
Modified: myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/DataScrollerList.java
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/DataScrollerList.java?rev=226969&r1=226968&r2=226969&view=diff
==============================================================================
--- myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/DataScrollerList.java (original)
+++ myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/DataScrollerList.java Tue Aug 2 01:41:56 2005
@@ -18,6 +18,11 @@
import java.util.ArrayList;
import java.util.List;
+import javax.faces.context.FacesContext;
+import javax.faces.event.ActionEvent;
+
+import org.apache.myfaces.custom.datascroller.ScrollerActionEvent;
+
/**
* DOCUMENT ME!
* @author Thomas Spiegl (latest modification by $Author$)
@@ -26,9 +31,6 @@
public class DataScrollerList
{
private List _list = new ArrayList();
- static
- {
- }
public DataScrollerList()
{
@@ -43,4 +45,13 @@
return _list;
}
+ public void scrollerAction(ActionEvent event)
+ {
+ ScrollerActionEvent scrollerEvent = (ScrollerActionEvent) event;
+ FacesContext.getCurrentInstance().getExternalContext().log(
+ "scrollerAction: facet: "
+ + scrollerEvent.getScrollerfacet()
+ + ", pageindex: "
+ + scrollerEvent.getPageIndex());
+ }
}
Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/HtmlDataScroller.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/HtmlDataScroller.java?rev=226969&r1=226968&r2=226969&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/HtmlDataScroller.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/HtmlDataScroller.java Tue Aug 2 01:41:56 2005
@@ -19,6 +19,7 @@
import javax.faces.component.UIComponent;
import javax.faces.component.UIData;
import javax.faces.context.FacesContext;
+import javax.faces.el.EvaluationException;
import javax.faces.el.MethodBinding;
import javax.faces.el.ValueBinding;
import javax.faces.event.AbortProcessingException;
@@ -31,6 +32,8 @@
import org.apache.commons.logging.LogFactory;
import org.apache.myfaces.component.html.ext.HtmlPanelGroup;
+import sun.reflect.generics.scope.Scope;
+
/**
* @author Thomas Spiegl (latest modification by $Author$)
* @version $Revision$ $Date$
@@ -49,6 +52,8 @@
// just for caching the associated uidata
private transient UIData _UIData;
+ private MethodBinding _actionListener;
+
/**
* @see javax.faces.component.UIComponentBase#queueEvent(javax.faces.event.FacesEvent)
*/
@@ -75,9 +80,12 @@
{
super.broadcast(event);
- if (event instanceof ScrollerActionEvent)
+ if (event instanceof ScrollerActionEvent)
{
- ScrollerActionEvent scrollerEvent = (ScrollerActionEvent) event;
+ ScrollerActionEvent scrollerEvent = (ScrollerActionEvent) event;
+
+ broadcastToActionListener(scrollerEvent);
+
UIData uiData = getUIData();
if (uiData == null)
{
@@ -158,6 +166,32 @@
}
/**
+ * @param event
+ */
+ protected void broadcastToActionListener(ScrollerActionEvent event)
+ {
+ FacesContext context = getFacesContext();
+
+ MethodBinding actionListenerBinding = getActionListener();
+ if (actionListenerBinding != null)
+ {
+ try
+ {
+ actionListenerBinding.invoke(context, new Object[] {event});
+ }
+ catch (EvaluationException e)
+ {
+ Throwable cause = e.getCause();
+ if (cause != null && cause instanceof AbortProcessingException)
+ {
+ throw (AbortProcessingException)cause;
+ }
+ throw e;
+ }
+ }
+ }
+
+ /**
* @return int
*/
public UIData getUIData()
@@ -353,22 +387,21 @@
"defining an action is not supported. use an actionlistener");
}
- /**
- * @see javax.faces.component.ActionSource#getActionListener()
- */
- public MethodBinding getActionListener()
- {
- return null;
- }
-
- /**
- * @see javax.faces.component.ActionSource#setActionListener(javax.faces.el.MethodBinding)
- */
- public void setActionListener(MethodBinding actionListener)
- {
- throw new UnsupportedOperationException(
- "defining an action is not supported. use an actionlistener");
- }
+ /**
+ * @see javax.faces.component.ActionSource#setActionListener(javax.faces.el.MethodBinding)
+ */
+ public void setActionListener(MethodBinding actionListener)
+ {
+ _actionListener = actionListener;
+ }
+
+ /**
+ * @see javax.faces.component.ActionSource#getActionListener()
+ */
+ public MethodBinding getActionListener()
+ {
+ return _actionListener;
+ }
/**
* @see javax.faces.component.ActionSource#addActionListener(javax.faces.event.ActionListener)
@@ -707,7 +740,7 @@
public Object saveState(FacesContext context)
{
- Object values[] = new Object[22];
+ Object values[] = new Object[23];
values[0] = super.saveState(context);
values[1] = _for;
values[2] = _fastStep;
@@ -730,6 +763,7 @@
values[19] = _paginatorActiveColumnStyle;
values[20] = _renderFacetsIfSinglePage;
values[21] = _immediate;
+ values[22] = saveAttachedState(context, _actionListener);
return values;
}
@@ -758,6 +792,7 @@
_paginatorActiveColumnStyle = (String) values[19];
_renderFacetsIfSinglePage = (Boolean) values[20];
_immediate = (Boolean) values[21];
+ _actionListener = (MethodBinding)restoreAttachedState(context, values[22]);
}
//------------------ GENERATED CODE END ---------------------------------------
Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/HtmlDataScrollerTag.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/HtmlDataScrollerTag.java?rev=226969&r1=226968&r2=226969&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/HtmlDataScrollerTag.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/HtmlDataScrollerTag.java Tue Aug 2 01:41:56 2005
@@ -117,6 +117,7 @@
private String _renderFacetsIfSinglePage;
private String _immediate;
+ private String _actionListener;
// User Role support
private String _enabledOnUserRole;
@@ -146,6 +147,7 @@
_enabledOnUserRole=null;
_visibleOnUserRole=null;
_immediate=null;
+ _actionListener=null;
}
public String getComponentType()
@@ -183,6 +185,7 @@
setBooleanProperty(component, RENDER_FACETS_IF_SINGLE_PAGE_ATTR, _renderFacetsIfSinglePage);
setBooleanProperty(component, JSFAttr.IMMEDIATE_ATTR, _immediate);
+ setActionListenerProperty(component, _actionListener);
setStringProperty(component, UserRoleAware.ENABLED_ON_USER_ROLE_ATTR, _enabledOnUserRole);
setStringProperty(component, UserRoleAware.VISIBLE_ON_USER_ROLE_ATTR, _visibleOnUserRole);
@@ -287,6 +290,11 @@
public void setImmediate(String immediate)
{
_immediate = immediate;
+ }
+
+ public void setActionListener(String actionListener)
+ {
+ _actionListener = actionListener;
}
// userrole attributes
Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/ScrollerActionEvent.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/ScrollerActionEvent.java?rev=226969&r1=226968&r2=226969&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/ScrollerActionEvent.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/datascroller/ScrollerActionEvent.java Tue Aug 2 01:41:56 2005
@@ -1,11 +1,26 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.apache.myfaces.custom.datascroller;
import javax.faces.component.UIComponent;
import javax.faces.event.ActionEvent;
/**
- * @author MBroekelmann
- *
+ * @author Mathias Broekelmann (latest modification by $Author$)
+ * @version $Revision$ $Date$
*/
public class ScrollerActionEvent extends ActionEvent
{
Modified: myfaces/tomahawk/trunk/tld/myfaces_ext.tld
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/tld/myfaces_ext.tld?rev=226969&r1=226968&r2=226969&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/tld/myfaces_ext.tld (original)
+++ myfaces/tomahawk/trunk/tld/myfaces_ext.tld Tue Aug 2 01:41:56 2005
@@ -1162,6 +1162,13 @@
<type>java.lang.String</type>
<description>True means, that the default ActionListener should be executed immediately (i.e. during Apply Request Values phase of the request processing lifecycle), rather than waiting until the Invoke Application phase.</description>
</attribute>
+ <attribute>
+ <name>actionListener</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>MethodBinding pointing at method acception an ActionEvent with return type void.</description>
+ </attribute>
</tag>
<!-- inputDate -->