Author: apetrelli
Date: Mon Feb  9 13:05:45 2009
New Revision: 742467

URL: http://svn.apache.org/viewvc?rev=742467&view=rev
Log:
TILESSB-4
Fixed DefinitionModel (to work with not-nested definitions) and 
PutAttributeModel (to work with DefinitionModel).

Modified:
    
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/DefinitionModel.java
    
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/PutAttributeModel.java

Modified: 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/DefinitionModel.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/DefinitionModel.java?rev=742467&r1=742466&r2=742467&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/DefinitionModel.java
 (original)
+++ 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/DefinitionModel.java
 Mon Feb  9 13:05:45 2009
@@ -25,6 +25,11 @@
             Stack<Object> composeStack, String name, Object... requestItems) {
         Definition definition = (Definition) composeStack.pop();
         container.register(definition, requestItems);
+        
+        if (composeStack.isEmpty()) {
+            return;
+        }
+        
         Object obj = composeStack.peek();
         if (obj instanceof Attribute) {
             Attribute attribute = (Attribute) obj;

Modified: 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/PutAttributeModel.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/PutAttributeModel.java?rev=742467&r1=742466&r2=742467&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/PutAttributeModel.java
 (original)
+++ 
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/PutAttributeModel.java
 Mon Feb  9 13:05:45 2009
@@ -4,6 +4,7 @@
 
 import org.apache.tiles.Attribute;
 import org.apache.tiles.AttributeContext;
+import org.apache.tiles.Definition;
 import org.apache.tiles.TilesContainer;
 
 public class PutAttributeModel {
@@ -16,9 +17,17 @@
     public void end(TilesContainer container, Stack<Object> composeStack,
             String name, Object value, String expression, String body,
             String role, String type, boolean cascade, Object... requestItems) 
{
-        AttributeContext attributeContext = container
-                .getAttributeContext(requestItems);
         Attribute attribute = (Attribute) composeStack.pop();
+        AttributeContext attributeContext = null;
+        if (!composeStack.isEmpty()) {
+            Object obj = composeStack.peek();
+            if (obj instanceof Definition) {
+                attributeContext = (AttributeContext) obj;
+            }
+        }
+        if (attributeContext == null) {
+            attributeContext = container.getAttributeContext(requestItems);
+        }
         if(value != null) {
             attribute.setValue(value);
         } else if (body != null) {


Reply via email to