Revision: 1282
http://stripes.svn.sourceforge.net/stripes/?rev=1282&view=rev
Author: bengunter
Date: 2010-09-25 02:01:10 +0000 (Sat, 25 Sep 2010)
Log Message:
-----------
STS-391: The execution of LayoutComponentTag.doStartTag() hasn't changed, but I
switched the logic around to make it easier to understand. There is now an
outer if/else on LayoutContext.isComponentRenderPhase() with each block having
an inner if/else that switches based on what the parent layout tag is (render,
definition or component).
Modified Paths:
--------------
branches/1.5.x/stripes/src/net/sourceforge/stripes/tag/layout/LayoutComponentTag.java
Modified:
branches/1.5.x/stripes/src/net/sourceforge/stripes/tag/layout/LayoutComponentTag.java
===================================================================
---
branches/1.5.x/stripes/src/net/sourceforge/stripes/tag/layout/LayoutComponentTag.java
2010-09-24 18:26:53 UTC (rev 1281)
+++
branches/1.5.x/stripes/src/net/sourceforge/stripes/tag/layout/LayoutComponentTag.java
2010-09-25 02:01:10 UTC (rev 1282)
@@ -101,8 +101,8 @@
LayoutContext context = getContext();
silent = context.getOut().isSilent();
- if (isChildOfRender()) {
- if (context.isComponentRenderPhase()) {
+ if (context.isComponentRenderPhase()) {
+ if (isChildOfRender()) {
if (isCurrentComponent()) {
log.debug("Render ", getName(), " in ",
context.getRenderPage());
context.getOut().setSilent(false, pageContext);
@@ -112,7 +112,23 @@
log.debug("No-op for ", getName(), " in ",
context.getRenderPage());
}
}
- else {
+ else if (isChildOfDefinition()) {
+ log.debug("No-op for ", getName(), " in ",
context.getDefinitionPage());
+ }
+ else if (isChildOfComponent()) {
+ if (isCurrentComponent()) {
+ LayoutComponentTag parent = getLayoutAncestor();
+ if (getName().equals(parent.getName())) {
+ log.debug("Invoke layout component renderer for
recursive render");
+ LayoutComponentRenderer renderer =
(LayoutComponentRenderer) pageContext
+ .getAttribute(getName());
+ renderer.write();
+ }
+ }
+ }
+ }
+ else {
+ if (isChildOfRender()) {
if (!javaIdentifierPattern.matcher(getName()).matches()) {
log.warn("The layout-component name '", getName(),
"' is not a valid Java identifier. While this
may work, it can ",
@@ -124,9 +140,7 @@
log.debug("Register component ", getName(), " with ",
context.getRenderPage());
context.getComponents().put(getName(), new
LayoutComponentRenderer(getName()));
}
- }
- else if (isChildOfDefinition()) {
- if (!context.isComponentRenderPhase()) {
+ else if (isChildOfDefinition()) {
// Use a layout component renderer to do the heavy lifting
log.debug("Invoke layout component renderer for recursive
render");
LayoutComponentRenderer renderer = new
LayoutComponentRenderer(getName());
@@ -143,20 +157,15 @@
return EVAL_BODY_INCLUDE;
}
}
- else {
- log.debug("No-op for ", getName(), " in ",
context.getDefinitionPage());
+ else if (isChildOfComponent()) {
+ /*
+ * This condition cannot be true since component tags do
not execute except in
+ * component render phase, thus any component tags
embedded with them will not
+ * execute either. I've left this block here just as a
placeholder for this
+ * explanation.
+ */
}
}
- else if (isChildOfComponent() && isCurrentComponent()
- && context.isComponentRenderPhase()) {
- LayoutComponentTag parent = getLayoutAncestor();
- if (getName().equals(parent.getName())) {
- log.debug("Invoke layout component renderer for recursive
render");
- LayoutComponentRenderer renderer =
(LayoutComponentRenderer) pageContext
- .getAttribute(getName());
- renderer.write();
- }
- }
context.getOut().setSilent(true, pageContext);
return SKIP_BODY;
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development