You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by jb...@apache.org on 2006/02/09 12:11:46 UTC
svn commit: r376261 - in /cocoon: branches/BRANCH_2_1_X/status.xml
trunk/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaClassWidgetListenerBuilder.java
Author: jbq
Date: Thu Feb 9 03:11:43 2006
New Revision: 376261
URL: http://svn.apache.org/viewcvs?rev=376261&view=rev
Log:
Java event listeners can now implement Serviceable to get a ServiceManager
Reported by Philippe Gassmann <ph...@anyware-tech.com>
Modified:
cocoon/branches/BRANCH_2_1_X/status.xml
cocoon/trunk/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaClassWidgetListenerBuilder.java
Modified: cocoon/branches/BRANCH_2_1_X/status.xml
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/status.xml?rev=376261&r1=376260&r2=376261&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/status.xml (original)
+++ cocoon/branches/BRANCH_2_1_X/status.xml Thu Feb 9 03:11:43 2006
@@ -180,6 +180,9 @@
<release version="@version@" date="@date@">
-->
<release version="2.1.9" date="TBD">
+ <action dev="JBQ" type="add" due-to="Philippe Gassmann" due-to-email="phil@anyware-tech.com">
+ CForms: Java event listeners can now implement Serviceable to get a ServiceManager
+ </action>
<action dev="JBQ" type="fix" due-to="Philippe Gassmann" due-to-email="phil@anyware-tech.com">
CForms: when building the query string in AJAX mode, do not include <input type="button">
</action>
@@ -203,7 +206,7 @@
<strong>Please change corresponding classes and use getXpath() to create the relative context yourself</strong>.
</action>
<action dev="JBQ" type="add" fixes-bug="COCOON-1238" due-to="Bart Molenkamp" due-to-email="b.molenkamp@bizzdesign.nl">
- CForms: Classes used in <fb:custom> can now implement Serviceable to get a ServiceManager
+ CForms: Java classes used in <fb:custom> can now implement Serviceable to get a ServiceManager
</action>
<action dev="JBQ" type="fix" fixes-bug="COCOON-1558" due-to="Jochen Kuhnle" due-to-email="werbung@kuhnle.net">
CForms: fix <ft:validation-error> handling when used with FormsTemplateTransformer
Modified: cocoon/trunk/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaClassWidgetListenerBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaClassWidgetListenerBuilder.java?rev=376261&r1=376260&r2=376261&view=diff
==============================================================================
--- cocoon/trunk/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaClassWidgetListenerBuilder.java (original)
+++ cocoon/trunk/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaClassWidgetListenerBuilder.java Thu Feb 9 03:11:43 2006
@@ -15,10 +15,14 @@
*/
package org.apache.cocoon.forms.event.impl;
+import org.apache.cocoon.components.LifecycleHelper;
import org.apache.cocoon.forms.event.WidgetListener;
import org.apache.cocoon.forms.event.WidgetListenerBuilder;
import org.apache.cocoon.forms.util.DomHelper;
import org.apache.cocoon.util.ClassUtils;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
import org.apache.avalon.framework.thread.ThreadSafe;
import org.w3c.dom.Element;
@@ -32,15 +36,20 @@
*
* @version $Id$
*/
-public class JavaClassWidgetListenerBuilder implements WidgetListenerBuilder, ThreadSafe {
+public class JavaClassWidgetListenerBuilder implements WidgetListenerBuilder, ThreadSafe, Serviceable {
+ ServiceManager manager;
- public WidgetListener buildListener(Element element, Class listenerClass) throws Exception {
+ public void service(ServiceManager manager) throws ServiceException {
+ this.manager = manager;
+ }
+
+ public WidgetListener buildListener(Element element, Class listenerClass) throws Exception {
String name = DomHelper.getAttribute(element, "class");
Object listener = ClassUtils.newInstance(name);
if (listenerClass.isAssignableFrom(listener.getClass())) {
- // FIXME : apply filecyclehelper
+ LifecycleHelper.setupComponent(listener, null, null, manager, null);
return (WidgetListener)listener;
} else {
throw new Exception("Class " + listener.getClass() + " is not a " + listenerClass);