1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
package org.apache.tapestry.components; |
16 |
|
|
17 |
|
import org.apache.hivemind.HiveMind; |
18 |
|
import org.apache.tapestry.AbstractComponent; |
19 |
|
import org.apache.tapestry.IMarkupWriter; |
20 |
|
import org.apache.tapestry.IRequestCycle; |
21 |
|
|
22 |
|
|
23 |
|
|
24 |
|
|
25 |
6 |
public abstract class ElseBean extends AbstractComponent |
26 |
|
{ |
27 |
|
public abstract String getElement(); |
28 |
|
|
29 |
|
public abstract boolean getRenderTag(); |
30 |
|
|
31 |
|
protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle) |
32 |
|
{ |
33 |
6 |
Object conditionObject = cycle.getAttribute(IfBean.IF_VALUE_ATTRIBUTE); |
34 |
|
|
35 |
6 |
if (conditionObject instanceof Boolean && !((Boolean) conditionObject).booleanValue()) |
36 |
|
{ |
37 |
3 |
String element = HiveMind.isNonBlank(getElement()) ? getElement() : getTemplateTagName(); |
38 |
|
|
39 |
3 |
boolean render = !cycle.isRewinding() && (getRenderTag() || HiveMind.isNonBlank(getElement())); |
40 |
|
|
41 |
3 |
if (render) |
42 |
|
{ |
43 |
0 |
writer.begin(element); |
44 |
0 |
renderInformalParameters(writer, cycle); |
45 |
|
} |
46 |
|
|
47 |
3 |
renderBody(writer, cycle); |
48 |
|
|
49 |
3 |
if (render) |
50 |
0 |
writer.end(element); |
51 |
|
} |
52 |
6 |
} |
53 |
|
} |