You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2004/02/06 15:43:14 UTC
cvs commit: cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/event/impl JavaClassWidgetListenerBuilder.java JavaScriptWidgetListenerBuilder.java
vgritsenko 2004/02/06 06:43:14
Modified: src/blocks/woody/java/org/apache/cocoon/woody/event
WidgetListenerBuilderUtil.java
src/blocks/woody/java/org/apache/cocoon/woody/event/impl
JavaClassWidgetListenerBuilder.java
JavaScriptWidgetListenerBuilder.java
Log:
Instantiate JavaClassWidgetListenerBuilder and JavaScriptWidgetListenerBuilder
only once (each), and use their's static INSTANCE instead of creating new object
every time.
Revision Changes Path
1.2 +5 -5 cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/event/WidgetListenerBuilderUtil.java
Index: WidgetListenerBuilderUtil.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/event/WidgetListenerBuilderUtil.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WidgetListenerBuilderUtil.java 24 Sep 2003 20:47:05 -0000 1.1
+++ WidgetListenerBuilderUtil.java 6 Feb 2004 14:43:14 -0000 1.2
@@ -58,17 +58,17 @@
/**
* Quick hack to avoid declaring a component selector and all that stuff for now (should be removed
* in a near future)
- *
+ *
* @author <a href="http://www.apache.org/~sylvain/">Sylvain Wallez</a>
* @version CVS $Id$
*/
public class WidgetListenerBuilderUtil {
-
+
public static WidgetListener getWidgetListener(Element element, Class listenerClass) throws Exception {
if (element.getLocalName().equals("java")) {
- return new JavaClassWidgetListenerBuilder().buildListener(element, listenerClass);
+ return JavaClassWidgetListenerBuilder.INSTANCE.buildListener(element, listenerClass);
} else if (element.getLocalName().equals("javascript")) {
- return new JavaScriptWidgetListenerBuilder().buildListener(element, listenerClass);
+ return JavaScriptWidgetListenerBuilder.INSTANCE.buildListener(element, listenerClass);
} else {
throw new IllegalArgumentException("Unknown listener element " + element.getTagName() +
" at " + DomHelper.getLocation(element));
1.2 +4 -4 cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/event/impl/JavaClassWidgetListenerBuilder.java
Index: JavaClassWidgetListenerBuilder.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/event/impl/JavaClassWidgetListenerBuilder.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JavaClassWidgetListenerBuilder.java 24 Sep 2003 20:47:06 -0000 1.1
+++ JavaClassWidgetListenerBuilder.java 6 Feb 2004 14:43:14 -0000 1.2
@@ -63,19 +63,19 @@
* <pre>
* <java class="com.my.SuperListener"/>
* </pre>
- *
+ *
* @author <a href="http://www.apache.org/~sylvain/">Sylvain Wallez</a>
*/
public class JavaClassWidgetListenerBuilder implements WidgetListenerBuilder {
+ public static final JavaClassWidgetListenerBuilder INSTANCE = new JavaClassWidgetListenerBuilder();
+
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
return (WidgetListener)listener;
} else {
1.4 +5 -4 cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/event/impl/JavaScriptWidgetListenerBuilder.java
Index: JavaScriptWidgetListenerBuilder.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/event/impl/JavaScriptWidgetListenerBuilder.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- JavaScriptWidgetListenerBuilder.java 8 Oct 2003 09:13:05 -0000 1.3
+++ JavaScriptWidgetListenerBuilder.java 6 Feb 2004 14:43:14 -0000 1.4
@@ -70,15 +70,17 @@
* </pre>
* As shown above, the event that fired this listener is published as the <code>event</code>
* variable.
- *
+ *
* @author <a href="http://www.apache.org/~sylvain/">Sylvain Wallez</a>
*/
public class JavaScriptWidgetListenerBuilder implements WidgetListenerBuilder {
+ public static final JavaScriptWidgetListenerBuilder INSTANCE = new JavaScriptWidgetListenerBuilder();
+
public WidgetListener buildListener(Element element, Class listenerClass) throws Exception {
-
+
Script script = JavaScriptHelper.buildScript(element);
-
+
if (listenerClass == ActionListener.class) {
return new JavaScriptWidgetListener.JSActionListener(script);
} else if (listenerClass == ValueChangedListener.class) {
@@ -87,5 +89,4 @@
throw new Exception("Unkonwn event class: " + listenerClass);
}
}
-
}