Update of /var/cvs/src/org/mmbase/framework
In directory james.mmbase.org:/tmp/cvs-serv646
Modified Files:
BasicComponent.java
Log Message:
that 'autodefining' parameters is implicit if no parameters defined, can be
very confusing. Defined and implemented 'automaticParameters' attribute on
renderer elements
See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/framework
Index: BasicComponent.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/BasicComponent.java,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- BasicComponent.java 28 Jul 2008 15:52:17 -0000 1.47
+++ BasicComponent.java 8 Aug 2008 08:53:30 -0000 1.48
@@ -24,7 +24,7 @@
* components, and may be requested several blocks.
*
* @author Michiel Meeuwissen
- * @version $Id: BasicComponent.java,v 1.47 2008/07/28 15:52:17 michiel Exp $
+ * @version $Id: BasicComponent.java,v 1.48 2008/08/08 08:53:30 michiel Exp $
* @since MMBase-1.9
*/
public class BasicComponent implements Component {
@@ -173,6 +173,19 @@
}
}
+ private void addParameters(Element rendererElement, Block b) {
+ Parameter[] params = Parameter.readArrayFromXml(rendererElement);
+ boolean automatic =
rendererElement.getAttribute("automaticParameters").equals("true");
+ if (params.length == 0 && automatic) {
+ // if addParameters function never called, it behaves with
'AutoDefinedParameters'.
+ } else {
+ if (automatic) {
+ log.warn("Ignoring that automaticParameters, because
parameters were explictely defined");
+ }
+ b.addParameters(params);
+ }
+ }
+
private Renderer getRenderer(String name, Element block, Block b) {
NodeList renderElements = block.getElementsByTagName(name);
log.debug("Number of [" + name + "] elements: " +
renderElements.getLength());
@@ -193,10 +206,8 @@
return null;
}
}
- Parameter[] params = Parameter.readArrayFromXml(renderElement);
- if (params.length > 0) { // a bit to simple, how can you
explicitely make a renderer parameter-less now?
- b.addParameters(params);
- }
+ addParameters(renderElement, b);
+
if (renderer == null) {
renderer = subRenderer;
} else {
@@ -230,10 +241,8 @@
return null;
}
}
- Parameter[] params = Parameter.readArrayFromXml(processorElement);
- if (params.length > 0) { // a bit to simple, how can you explicitely
make a processor parameter-less now?
- b.addParameters(params);
- }
+ addParameters(processorElement, b);
+
return processor;
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs