You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2010/05/21 22:05:56 UTC

svn commit: r947153 - in /tapestry/tapestry5/trunk/tapestry-core/src: main/java/org/apache/tapestry5/internal/ main/java/org/apache/tapestry5/internal/services/ main/java/org/apache/tapestry5/internal/services/ajax/ main/java/org/apache/tapestry5/inter...

Author: hlship
Date: Fri May 21 20:05:56 2010
New Revision: 947153

URL: http://svn.apache.org/viewvc?rev=947153&view=rev
Log:
TAP5-65: Make StylesheetLink public; change JavascriptSupport and JavascriptStack to make use of it

Added:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/StylesheetLink.java   (contents, props changed)
      - copied, changed from r947152, tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/StylesheetLink.java
Removed:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/StylesheetLink.java
Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/TapestryInternalUtils.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinker.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PartialMarkupDocumentLinker.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RenderSupportImpl.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/JavascriptSupportImpl.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/CoreJavascriptStack.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/DateFieldStack.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavascriptStack.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavascriptSupport.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/nested/AssetDemo.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/PartialMarkupDocumentLinkerTest.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RenderSupportImplTest.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ajax/JavascriptSupportImplTest.java

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/TapestryInternalUtils.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/TapestryInternalUtils.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/TapestryInternalUtils.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/TapestryInternalUtils.java Fri May 21 20:05:56 2010
@@ -4,7 +4,7 @@
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,14 +14,6 @@
 
 package org.apache.tapestry5.internal;
 
-import org.apache.tapestry5.*;
-import org.apache.tapestry5.ioc.Messages;
-import org.apache.tapestry5.ioc.Resource;
-import org.apache.tapestry5.ioc.Orderable;
-import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
-import org.apache.tapestry5.ioc.internal.util.Defense;
-import org.apache.tapestry5.ioc.internal.util.InternalUtils;
-
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -30,6 +22,22 @@ import java.util.List;
 import java.util.Map;
 import java.util.regex.Pattern;
 
+import org.apache.tapestry5.Asset;
+import org.apache.tapestry5.Asset2;
+import org.apache.tapestry5.EventContext;
+import org.apache.tapestry5.OptionModel;
+import org.apache.tapestry5.PropertyConduit;
+import org.apache.tapestry5.SelectModel;
+import org.apache.tapestry5.ioc.Messages;
+import org.apache.tapestry5.ioc.Orderable;
+import org.apache.tapestry5.ioc.Resource;
+import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
+import org.apache.tapestry5.ioc.internal.util.Defense;
+import org.apache.tapestry5.ioc.internal.util.Func;
+import org.apache.tapestry5.ioc.internal.util.InternalUtils;
+import org.apache.tapestry5.ioc.services.Coercion;
+import org.apache.tapestry5.services.javascript.StylesheetLink;
+
 /**
  * Shared utility methods used by various implementation classes.
  */
@@ -77,7 +85,8 @@ public class TapestryInternalUtils
 
             boolean upperCase = Character.isUpperCase(ch);
 
-            if (upperCase && !postSpace) builder.append(' ');
+            if (upperCase && !postSpace)
+                builder.append(' ');
 
             builder.append(ch);
 
@@ -106,7 +115,7 @@ public class TapestryInternalUtils
     /**
      * Converts a string to an {@link OptionModel}. The string is of the form "value=label". If the equals sign is
      * omitted, then the same value is used for both value and label.
-     *
+     * 
      * @param input
      * @return
      */
@@ -116,7 +125,8 @@ public class TapestryInternalUtils
 
         int equalsx = input.indexOf('=');
 
-        if (equalsx < 0) return new OptionModelImpl(input);
+        if (equalsx < 0)
+            return new OptionModelImpl(input);
 
         String value = input.substring(0, equalsx);
         String label = input.substring(equalsx + 1);
@@ -127,8 +137,9 @@ public class TapestryInternalUtils
     /**
      * Parses a string input into a series of value=label pairs compatible with {@link #toOptionModel(String)}. Splits
      * on commas. Ignores whitespace around commas.
-     *
-     * @param input comma seperated list of terms
+     * 
+     * @param input
+     *            comma seperated list of terms
      * @return list of option models
      */
     public static List<OptionModel> toOptionModels(String input)
@@ -145,7 +156,7 @@ public class TapestryInternalUtils
 
     /**
      * Wraps the result of {@link #toOptionModels(String)} as a {@link SelectModel} (with no option groups).
-     *
+     * 
      * @param input
      * @return
      */
@@ -158,7 +169,7 @@ public class TapestryInternalUtils
 
     /**
      * Converts a map entry to an {@link OptionModel}.
-     *
+     * 
      * @param input
      * @return
      */
@@ -173,8 +184,9 @@ public class TapestryInternalUtils
 
     /**
      * Processes a map input into a series of map entries compatible with {@link #toOptionModel(Map.Entry)}.
-     *
-     * @param input map of elements
+     * 
+     * @param input
+     *            map of elements
      * @return list of option models
      */
     public static <K, V> List<OptionModel> toOptionModels(Map<K, V> input)
@@ -191,7 +203,7 @@ public class TapestryInternalUtils
 
     /**
      * Wraps the result of {@link #toOptionModels(Map)} as a {@link SelectModel} (with no option groups).
-     *
+     * 
      * @param input
      * @return
      */
@@ -204,7 +216,7 @@ public class TapestryInternalUtils
 
     /**
      * Converts an object to an {@link OptionModel}.
-     *
+     * 
      * @param input
      * @return
      */
@@ -217,8 +229,9 @@ public class TapestryInternalUtils
 
     /**
      * Processes a list input into a series of objects compatible with {@link #toOptionModel(Object)}.
-     *
-     * @param input list of elements
+     * 
+     * @param input
+     *            list of elements
      * @return list of option models
      */
     public static <E> List<OptionModel> toOptionModels(List<E> input)
@@ -235,7 +248,7 @@ public class TapestryInternalUtils
 
     /**
      * Wraps the result of {@link #toOptionModels(List)} as a {@link SelectModel} (with no option groups).
-     *
+     * 
      * @param input
      * @return
      */
@@ -249,7 +262,7 @@ public class TapestryInternalUtils
     /**
      * Parses a key/value pair where the key and the value are seperated by an equals sign. The key and value are
      * trimmed of leading and trailing whitespace, and returned as a {@link KeyValue}.
-     *
+     * 
      * @param input
      * @return
      */
@@ -257,7 +270,8 @@ public class TapestryInternalUtils
     {
         int pos = input.indexOf('=');
 
-        if (pos < 1) throw new IllegalArgumentException(InternalMessages.badKeyValue(input));
+        if (pos < 1)
+            throw new IllegalArgumentException(InternalMessages.badKeyValue(input));
 
         String key = input.substring(0, pos);
         String value = input.substring(pos + 1);
@@ -265,13 +279,13 @@ public class TapestryInternalUtils
         return new KeyValue(key.trim(), value.trim());
     }
 
-
     /**
      * Used to convert a property expression into a key that can be used to locate various resources (Blocks, messages,
      * etc.). Strips out any punctuation characters, leaving just words characters (letters, number and the
      * underscore).
-     *
-     * @param expression a property expression
+     * 
+     * @param expression
+     *            a property expression
      * @return the expression with punctuation removed
      */
     public static String extractIdFromPropertyExpression(String expression)
@@ -287,7 +301,8 @@ public class TapestryInternalUtils
     {
         String key = id + "-label";
 
-        if (messages.contains(key)) return messages.get(key);
+        if (messages.contains(key))
+            return messages.get(key);
 
         return toUserPresentable(extractIdFromPropertyExpression(lastTerm(propertyExpression)));
     }
@@ -306,28 +321,33 @@ public class TapestryInternalUtils
     /**
      * Converts an list of strings into a space-separated string combining them all, suitable for use as an HTML class
      * attribute value.
-     *
-     * @param classes classes to combine
+     * 
+     * @param classes
+     *            classes to combine
      * @return the joined classes, or null if classes is empty
      */
     public static String toClassAttributeValue(List<String> classes)
     {
-        if (classes.isEmpty()) return null;
+        if (classes.isEmpty())
+            return null;
 
         return InternalUtils.join(classes, " ");
     }
 
-
     /**
      * Converts an enum to a label string, allowing for overrides from a message catalog.
      * <p/>
-     * <ul> <li>As key <em>prefix</em>.<em>name</em> if present.  Ex: "ElementType.LOCAL_VARIABLE" <li>As key
-     * <em>name</em> if present, i.e., "LOCAL_VARIABLE". <li>As a user-presentable version of the name, i.e., "Local
-     * Variable". </ul>
-     *
-     * @param messages the messages to search for the label
+     * <ul>
+     * <li>As key <em>prefix</em>.<em>name</em> if present. Ex: "ElementType.LOCAL_VARIABLE"
+     * <li>As key <em>name</em> if present, i.e., "LOCAL_VARIABLE".
+     * <li>As a user-presentable version of the name, i.e., "Local Variable".
+     * </ul>
+     * 
+     * @param messages
+     *            the messages to search for the label
      * @param prefix
-     * @param value    to get a label for
+     * @param value
+     *            to get a label for
      * @return the label
      */
     public static String getLabelForEnum(Messages messages, String prefix, Enum value)
@@ -336,9 +356,11 @@ public class TapestryInternalUtils
 
         String key = prefix + "." + name;
 
-        if (messages.contains(key)) return messages.get(key);
+        if (messages.contains(key))
+            return messages.get(key);
 
-        if (messages.contains(name)) return messages.get(name);
+        if (messages.contains(name))
+            return messages.get(name);
 
         return toUserPresentable(name.toLowerCase());
     }
@@ -358,22 +380,25 @@ public class TapestryInternalUtils
     /**
      * Determines if the two values are equal. They are equal if they are the exact same value (including if they are
      * both null). Otherwise standard equals() comparison is used.
-     *
+     * 
      * @param <T>
-     * @param left  value to compare, possibly null
-     * @param right value to compare, possibly null
+     * @param left
+     *            value to compare, possibly null
+     * @param right
+     *            value to compare, possibly null
      * @return true if same value, both null, or equal
      */
     public static <T> boolean isEqual(T left, T right)
     {
-        if (left == right) return true;
+        if (left == right)
+            return true;
 
-        if (left == null) return right == null;
+        if (left == null)
+            return right == null;
 
         return left.equals(right);
     }
 
-
     /**
      * Splits a path at each slash.
      */
@@ -383,24 +408,26 @@ public class TapestryInternalUtils
     }
 
     /**
-     * Splits a value around commas.  Whitespace around the commas is removed, as is leading and trailing whitespace.
-     *
+     * Splits a value around commas. Whitespace around the commas is removed, as is leading and trailing whitespace.
+     * 
      * @since 5.1.0.0
      */
     public static String[] splitAtCommas(String value)
     {
         if (InternalUtils.isBlank(value))
             return InternalConstants.EMPTY_STRING_ARRAY;
-            
+
         return COMMA_PATTERN.split(value.trim());
     }
 
     /**
      * Copies some content from an input stream to an output stream. It is the caller's responsibility to close the
      * streams.
-     *
-     * @param in  source of data
-     * @param out sink of data
+     * 
+     * @param in
+     *            source of data
+     * @param out
+     *            sink of data
      * @throws IOException
      * @since 5.1.0.0
      */
@@ -412,7 +439,8 @@ public class TapestryInternalUtils
         {
             int length = in.read(buffer);
 
-            if (length < 0) break;
+            if (length < 0)
+                break;
 
             out.write(buffer, 0, length);
         }
@@ -423,11 +451,13 @@ public class TapestryInternalUtils
 
     public static boolean isEqual(EventContext left, EventContext right)
     {
-        if (left == right) return true;
+        if (left == right)
+            return true;
 
         int count = left.getCount();
 
-        if (count != right.getCount()) return false;
+        if (count != right.getCount())
+            return false;
 
         for (int i = 0; i < count; i++)
         {
@@ -441,7 +471,7 @@ public class TapestryInternalUtils
     /**
      * Converts an Asset to an Asset2 if necessary. When actually wrapping an Asset as an Asset2, the asset is assumed
      * to be variant (i.e., not cacheable).
-     *
+     * 
      * @since 5.1.0.0
      */
     public static Asset2 toAsset2(final Asset asset)
@@ -474,62 +504,72 @@ public class TapestryInternalUtils
             }
         };
     }
-    
+
     public static InternalPropertyConduit toInternalPropertyConduit(final PropertyConduit conduit)
     {
-    	if(conduit instanceof InternalPropertyConduit)
-    		return (InternalPropertyConduit) conduit;
-    	
-    	return new InternalPropertyConduit() {
-			
-			public <T extends Annotation> T getAnnotation(Class<T> annotationClass) 
-			{
-				return conduit.getAnnotation(annotationClass);
-			}
-			
-			public void set(Object instance, Object value) 
-			{
-				conduit.set(instance, value);
-			}
-			
-			public Class getPropertyType() 
-			{
-				return conduit.getPropertyType();
-			}
-			
-			public Object get(Object instance) 
-			{
-				return conduit.get(instance);
-			}
-			
-			public String getPropertyName() 
-			{
-				return null;
-			}
-		};
+        if (conduit instanceof InternalPropertyConduit)
+            return (InternalPropertyConduit) conduit;
+
+        return new InternalPropertyConduit()
+        {
+
+            public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
+            {
+                return conduit.getAnnotation(annotationClass);
+            }
+
+            public void set(Object instance, Object value)
+            {
+                conduit.set(instance, value);
+            }
+
+            public Class getPropertyType()
+            {
+                return conduit.getPropertyType();
+            }
+
+            public Object get(Object instance)
+            {
+                return conduit.get(instance);
+            }
+
+            public String getPropertyName()
+            {
+                return null;
+            }
+        };
     }
 
     /**
-     *
-     * @param mixinDef the original mixin definition.
+     * @param mixinDef
+     *            the original mixin definition.
      * @return an Orderable whose id is the mixin name.
      */
-    public static Orderable<String> mixinTypeAndOrder(String mixinDef) {
+    public static Orderable<String> mixinTypeAndOrder(String mixinDef)
+    {
         int idx = mixinDef.indexOf("::");
-        if (idx == -1)
-        {
-            return new Orderable(mixinDef,mixinDef);
-        }
-        String type = mixinDef.substring(0,idx);
-        String[] constraints = splitMixinConstraints(mixinDef.substring(idx+2));
+        if (idx == -1) { return new Orderable(mixinDef, mixinDef); }
+        String type = mixinDef.substring(0, idx);
+        String[] constraints = splitMixinConstraints(mixinDef.substring(idx + 2));
 
-        return new Orderable(type,type,constraints);
+        return new Orderable(type, type, constraints);
     }
 
-
     public static String[] splitMixinConstraints(String s)
     {
-        return InternalUtils.isBlank(s)?null:s.split(";");
+        return InternalUtils.isBlank(s) ? null : s.split(";");
     }
 
+    /**
+     * Common coercion, used primarily with {@link Func#map(Coercion, java.util.Collection)}
+     * 
+     * @since 5.2.0
+     */
+    public static Coercion<Asset, StylesheetLink> assetToStylesheetLink = new Coercion<Asset, StylesheetLink>()
+    {
+        public StylesheetLink coerce(Asset input)
+        {
+            return new StylesheetLink(input);
+        };
+    };
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinker.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinker.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinker.java Fri May 21 20:05:56 2010
@@ -16,6 +16,7 @@ package org.apache.tapestry5.internal.se
 
 import org.apache.tapestry5.json.JSONObject;
 import org.apache.tapestry5.services.javascript.InitializationPriority;
+import org.apache.tapestry5.services.javascript.StylesheetLink;
 
 /**
  * Responsible for injecting script and style links into the &lt;head&gt; and &lt;body&gt; element of the rendered HTML

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java Fri May 21 20:05:56 2010
@@ -25,6 +25,7 @@ import org.apache.tapestry5.ioc.internal
 import org.apache.tapestry5.ioc.internal.util.Operation;
 import org.apache.tapestry5.json.JSONObject;
 import org.apache.tapestry5.services.javascript.InitializationPriority;
+import org.apache.tapestry5.services.javascript.StylesheetLink;
 
 public class DocumentLinkerImpl implements DocumentLinker
 {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PartialMarkupDocumentLinker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PartialMarkupDocumentLinker.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PartialMarkupDocumentLinker.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PartialMarkupDocumentLinker.java Fri May 21 20:05:56 2010
@@ -20,6 +20,7 @@ import org.apache.tapestry5.ioc.internal
 import org.apache.tapestry5.json.JSONArray;
 import org.apache.tapestry5.json.JSONObject;
 import org.apache.tapestry5.services.javascript.InitializationPriority;
+import org.apache.tapestry5.services.javascript.StylesheetLink;
 
 public class PartialMarkupDocumentLinker implements DocumentLinker
 {
@@ -40,7 +41,7 @@ public class PartialMarkupDocumentLinker
     {
         JSONObject object = new JSONObject(
 
-        "href", stylesheet.getUrl(),
+        "href", stylesheet.getURL(),
 
         "media", stylesheet.getOptions().getMedia());
 

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RenderSupportImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RenderSupportImpl.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RenderSupportImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RenderSupportImpl.java Fri May 21 20:05:56 2010
@@ -24,6 +24,7 @@ import org.apache.tapestry5.json.JSONArr
 import org.apache.tapestry5.json.JSONObject;
 import org.apache.tapestry5.services.AssetSource;
 import org.apache.tapestry5.services.javascript.JavascriptSupport;
+import org.apache.tapestry5.services.javascript.StylesheetLink;
 import org.apache.tapestry5.services.javascript.StylesheetOptions;
 
 public class RenderSupportImpl implements RenderSupport
@@ -168,11 +169,11 @@ public class RenderSupportImpl implement
 
     public void addStylesheetLink(Asset stylesheet, String media)
     {
-        javascriptSupport.importStylesheet(stylesheet, new StylesheetOptions(media));
+        javascriptSupport.importStylesheet(new StylesheetLink(stylesheet, new StylesheetOptions(media)));
     }
 
     public void addStylesheetLink(String stylesheetURL, String media)
     {
-        javascriptSupport.importStylesheet(stylesheetURL, new StylesheetOptions(media));
+        javascriptSupport.importStylesheet(new StylesheetLink(stylesheetURL, new StylesheetOptions(media)));
     }
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/JavascriptSupportImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/JavascriptSupportImpl.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/JavascriptSupportImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/JavascriptSupportImpl.java Fri May 21 20:05:56 2010
@@ -22,7 +22,6 @@ import org.apache.tapestry5.Asset;
 import org.apache.tapestry5.ComponentResources;
 import org.apache.tapestry5.internal.InternalConstants;
 import org.apache.tapestry5.internal.services.DocumentLinker;
-import org.apache.tapestry5.internal.services.StylesheetLink;
 import org.apache.tapestry5.internal.services.javascript.JavascriptStackPathConstructor;
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
 import org.apache.tapestry5.ioc.internal.util.Defense;
@@ -36,7 +35,7 @@ import org.apache.tapestry5.services.jav
 import org.apache.tapestry5.services.javascript.JavascriptStack;
 import org.apache.tapestry5.services.javascript.JavascriptStackSource;
 import org.apache.tapestry5.services.javascript.JavascriptSupport;
-import org.apache.tapestry5.services.javascript.StylesheetOptions;
+import org.apache.tapestry5.services.javascript.StylesheetLink;
 
 public class JavascriptSupportImpl implements JavascriptSupport
 {
@@ -52,11 +51,9 @@ public class JavascriptSupportImpl imple
 
     private final List<String> otherLibraries = CollectionFactory.newList();
 
-    private final List<String> stackStylesheets = CollectionFactory.newList();
+    private final Set<String> importedStylesheetURLs = CollectionFactory.newSet();
 
-    private final Set<String> importedStylesheets = CollectionFactory.newSet();
-
-    private final List<StylesheetLink> otherStylesheets = CollectionFactory.newList();
+    private final List<StylesheetLink> stylesheetLinks = CollectionFactory.newList();
 
     private final Map<InitializationPriority, JSONObject> inits = CollectionFactory.newMap();
 
@@ -95,21 +92,13 @@ public class JavascriptSupportImpl imple
 
     public void commit()
     {
-        Func.each(new Operation<String>()
-        {
-            public void op(String value)
-            {
-                linker.addStylesheetLink(new StylesheetLink(value, null));
-            }
-        }, stackStylesheets);
-
         Func.each(new Operation<StylesheetLink>()
         {
             public void op(StylesheetLink value)
             {
                 linker.addStylesheetLink(value);
             }
-        }, otherStylesheets);
+        }, stylesheetLinks);
 
         Operation<String> linkLibrary = new Operation<String>()
         {
@@ -236,9 +225,7 @@ public class JavascriptSupportImpl imple
 
         stackLibraries.addAll(stackPathConstructor.constructPathsForJavascriptStack(stackName));
 
-        List<String> stylesheetPaths = Func.map(toPath, stack.getStylesheets());
-
-        stackStylesheets.addAll(stylesheetPaths);
+        stylesheetLinks.addAll(stack.getStylesheets());
 
         String initialization = stack.getInitialization();
 
@@ -248,25 +235,27 @@ public class JavascriptSupportImpl imple
         addedStacks.put(stackName, true);
     }
 
-    public void importStylesheet(Asset stylesheet, StylesheetOptions options)
+    public void importStylesheet(Asset stylesheet)
     {
         Defense.notNull(stylesheet, "stylesheet");
 
-        importStylesheet(stylesheet.toClientURL(), options);
+        importStylesheet(new StylesheetLink(stylesheet));
     }
 
-    public void importStylesheet(String stylesheetURL, StylesheetOptions options)
+    public void importStylesheet(StylesheetLink stylesheetLink)
     {
-        Defense.notBlank(stylesheetURL, "stylesheetURL");
+        Defense.notNull(stylesheetLink, "stylesheetLink");
 
         // Assumes no overlap between stack stylesheets and all other stylesheets
 
-        if (importedStylesheets.contains(stylesheetURL))
+        String stylesheetURL = stylesheetLink.getURL();
+
+        if (importedStylesheetURLs.contains(stylesheetURL))
             return;
 
-        importedStylesheets.add(stylesheetURL);
+        importedStylesheetURLs.add(stylesheetURL);
 
-        otherStylesheets.add(new StylesheetLink(stylesheetURL, options));
+        stylesheetLinks.add(stylesheetLink);
     }
 
     public void importStack(String stackName)

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/CoreJavascriptStack.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/CoreJavascriptStack.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/CoreJavascriptStack.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/CoreJavascriptStack.java Fri May 21 20:05:56 2010
@@ -18,9 +18,12 @@ import java.util.List;
 
 import org.apache.tapestry5.Asset;
 import org.apache.tapestry5.SymbolConstants;
+import org.apache.tapestry5.internal.TapestryInternalUtils;
 import org.apache.tapestry5.ioc.annotations.Symbol;
+import org.apache.tapestry5.ioc.internal.util.Func;
 import org.apache.tapestry5.services.ClientInfrastructure;
 import org.apache.tapestry5.services.javascript.JavascriptStack;
+import org.apache.tapestry5.services.javascript.StylesheetLink;
 
 /**
  * JavascriptStack based on the information retrieved from {@link ClientInfrastructure}.
@@ -52,9 +55,9 @@ public class CoreJavascriptStack impleme
         return clientInfrastructure.getJavascriptStack();
     }
 
-    public List<Asset> getStylesheets()
+    public List<StylesheetLink> getStylesheets()
     {
-        return clientInfrastructure.getStylesheetStack();
+        return Func.map(TapestryInternalUtils.assetToStylesheetLink, clientInfrastructure.getStylesheetStack());
     }
 
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/DateFieldStack.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/DateFieldStack.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/DateFieldStack.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/DateFieldStack.java Fri May 21 20:05:56 2010
@@ -21,6 +21,7 @@ import java.util.Locale;
 
 import org.apache.tapestry5.Asset;
 import org.apache.tapestry5.SymbolConstants;
+import org.apache.tapestry5.internal.TapestryInternalUtils;
 import org.apache.tapestry5.ioc.annotations.Symbol;
 import org.apache.tapestry5.ioc.internal.util.Func;
 import org.apache.tapestry5.ioc.services.Coercion;
@@ -29,6 +30,7 @@ import org.apache.tapestry5.json.JSONArr
 import org.apache.tapestry5.json.JSONObject;
 import org.apache.tapestry5.services.AssetSource;
 import org.apache.tapestry5.services.javascript.JavascriptStack;
+import org.apache.tapestry5.services.javascript.StylesheetLink;
 
 public class DateFieldStack implements JavascriptStack
 {
@@ -36,7 +38,9 @@ public class DateFieldStack implements J
 
     private final boolean compactJSON;
 
-    private final List<Asset> javascriptStack, stylesheetStack;
+    private final List<Asset> javascriptStack;
+
+    private final List<StylesheetLink> stylesheetStack;
 
     public DateFieldStack(ThreadLocale threadLocale, @Symbol(SymbolConstants.COMPACT_JSON)
     boolean compactJSON, final AssetSource assetSource)
@@ -52,10 +56,13 @@ public class DateFieldStack implements J
             }
         };
 
+        Coercion<String, StylesheetLink> pathToStylesheetLink = Func.combine(pathToAsset,
+                TapestryInternalUtils.assetToStylesheetLink);
+
         javascriptStack = Func.map(pathToAsset, "${tapestry.datepicker}/js/datepicker.js",
                 "org/apache/tapestry5/corelib/components/datefield.js");
 
-        stylesheetStack = Func.map(pathToAsset, "${tapestry.datepicker}/css/datepicker.css");
+        stylesheetStack = Func.map(pathToStylesheetLink, "${tapestry.datepicker}/css/datepicker.css");
     }
 
     public String getInitialization()
@@ -101,7 +108,7 @@ public class DateFieldStack implements J
         return javascriptStack;
     }
 
-    public List<Asset> getStylesheets()
+    public List<StylesheetLink> getStylesheets()
     {
         return stylesheetStack;
     }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ImportWorker.java Fri May 21 20:05:56 2010
@@ -64,7 +64,7 @@ public class ImportWorker implements Com
     {
         public void op(Asset asset)
         {
-            javascriptSupport.importStylesheet(asset, null);
+            javascriptSupport.importStylesheet(asset);
         };
     };
 

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java Fri May 21 20:05:56 2010
@@ -114,6 +114,7 @@ import org.apache.tapestry5.services.ass
 import org.apache.tapestry5.services.javascript.JavascriptStack;
 import org.apache.tapestry5.services.javascript.JavascriptStackSource;
 import org.apache.tapestry5.services.javascript.JavascriptSupport;
+import org.apache.tapestry5.services.javascript.StylesheetLink;
 import org.apache.tapestry5.services.messages.ComponentMessagesSource;
 import org.apache.tapestry5.services.messages.PropertiesFileParser;
 import org.apache.tapestry5.services.meta.FixedExtractor;

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavascriptStack.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavascriptStack.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavascriptStack.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavascriptStack.java Fri May 21 20:05:56 2010
@@ -52,9 +52,9 @@ public interface JavascriptStack
     List<Asset> getJavascriptLibraries();
 
     /**
-     * Returns a list of <em>localized<m/e> assets for stylesheets that form the stack.
+     * Returns a list of <em>localized<m/e> links for stylesheets that form the stack.
      */
-    List<Asset> getStylesheets();
+    List<StylesheetLink> getStylesheets();
 
     /**
      * Returns static JavaScript initialization for the stack. This block of JavaScript code will be added to the

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavascriptSupport.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavascriptSupport.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavascriptSupport.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavascriptSupport.java Fri May 21 20:05:56 2010
@@ -148,27 +148,22 @@ public interface JavascriptSupport
     void importJavascriptLibrary(Asset asset);
 
     /**
-     * Imports a CSS stylesheet as part of the rendered page. CSS stylesheets are added in the
-     * order they are first imported; duplicate imports are ignored. However, CSS stylesheets
-     * added as part of a {@link JavascriptStack} are added before other stylesheets (in the order
-     * the stack is imported).
+     * A convenience method that wraps the Asset as a {@link StylesheetLink}.
      * 
      * @param stylesheet
      *            asset for the stylesheet
-     * @param options
-     *            describes options for importing the stylesheet (may be null)
+     * @see #importStylesheet(StylesheetLink)
      */
-    void importStylesheet(Asset stylesheet, StylesheetOptions options);
+    void importStylesheet(Asset stylesheet);
 
     /**
-     * As with {@link #importStylesheet(Asset, StylesheetOptions)}, but the stylesheet is represented as a URL string.
+     * Imports a Cascading Style Sheet file as part of the rendered page. Stylesheets are added in the
+     * order they are first imported; duplicate imports are ignored.
      * 
-     * @param stylesheet
-     *            URL for the stylesheet
-     * @param options
-     *            describes options for importing the stylesheet (may be null)
+     * @param stylesheetLink
+     *            encapsulates the link URL plus any additional options
      */
-    void importStylesheet(String stylesheetURL, StylesheetOptions options);
+    void importStylesheet(StylesheetLink stylesheetLink);
 
     /**
      * Imports a {@link JavascriptStack} by name, a related set of JavaScript libraries and stylesheets.

Copied: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/StylesheetLink.java (from r947152, tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/StylesheetLink.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/StylesheetLink.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/StylesheetLink.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/StylesheetLink.java&r1=947152&r2=947153&rev=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/StylesheetLink.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/StylesheetLink.java Fri May 21 20:05:56 2010
@@ -12,17 +12,22 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.tapestry5.internal.services;
+package org.apache.tapestry5.services.javascript;
 
+import org.apache.tapestry5.Asset;
+import org.apache.tapestry5.dom.Document;
 import org.apache.tapestry5.dom.Element;
 import org.apache.tapestry5.internal.TapestryInternalUtils;
+import org.apache.tapestry5.internal.services.DocumentLinker;
+import org.apache.tapestry5.ioc.internal.util.Defense;
 import org.apache.tapestry5.ioc.internal.util.InternalUtils;
-import org.apache.tapestry5.services.javascript.StylesheetOptions;
 
 /**
- * Captures the information needed to create a stylesheet link in the final {@link Document}.
+ * Captures the information needed to create a stylesheet link in the final {@link Document}, or
+ * as part of a JSON partial page render response.
  * 
  * @see DocumentLinker
+ * @see JavascriptStack
  * @since 5.2.0
  */
 public final class StylesheetLink
@@ -33,6 +38,16 @@ public final class StylesheetLink
 
     private static final StylesheetOptions BLANK_OPTIONS = new StylesheetOptions(null);
 
+    public StylesheetLink(Asset asset)
+    {
+        this(asset, null);
+    }
+
+    public StylesheetLink(Asset asset, StylesheetOptions options)
+    {
+        this(Defense.notNull(asset, "asset").toClientURL(), options);
+    }
+
     public StylesheetLink(String url)
     {
         this(url, null);
@@ -40,11 +55,11 @@ public final class StylesheetLink
 
     public StylesheetLink(String url, StylesheetOptions options)
     {
-        this.url = url;
+        this.url = Defense.notBlank(url, "url");
         this.options = options != null ? options : BLANK_OPTIONS;
     }
 
-    public String getUrl()
+    public String getURL()
     {
         return url;
     }
@@ -64,7 +79,7 @@ public final class StylesheetLink
      * @param container
      *            to add the new element to
      */
-    void add(Element container)
+    public void add(Element container)
     {
         String condition = options.getCondition();
         boolean hasCondition = InternalUtils.isNonBlank(condition);

Propchange: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/StylesheetLink.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/nested/AssetDemo.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/nested/AssetDemo.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/nested/AssetDemo.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/nested/AssetDemo.java Fri May 21 20:05:56 2010
@@ -20,6 +20,7 @@ import org.apache.tapestry5.annotations.
 import org.apache.tapestry5.annotations.Path;
 import org.apache.tapestry5.ioc.annotations.Inject;
 import org.apache.tapestry5.services.javascript.JavascriptSupport;
+import org.apache.tapestry5.services.javascript.StylesheetLink;
 import org.apache.tapestry5.services.javascript.StylesheetOptions;
 
 /**
@@ -46,7 +47,7 @@ public class AssetDemo
     @Import(stylesheet = "context:css/via-import.css")
     void afterRender()
     {
-        javascriptSupport.importStylesheet(ieOnly, new StylesheetOptions(null, "IE"));
+        javascriptSupport.importStylesheet(new StylesheetLink(ieOnly, new StylesheetOptions(null, "IE")));
     }
 
     public Asset getIcon()

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.java Fri May 21 20:05:56 2010
@@ -21,6 +21,7 @@ import org.apache.tapestry5.internal.tes
 import org.apache.tapestry5.json.JSONArray;
 import org.apache.tapestry5.json.JSONObject;
 import org.apache.tapestry5.services.javascript.InitializationPriority;
+import org.apache.tapestry5.services.javascript.StylesheetLink;
 import org.apache.tapestry5.services.javascript.StylesheetOptions;
 import org.testng.annotations.Test;
 

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/PartialMarkupDocumentLinkerTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/PartialMarkupDocumentLinkerTest.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/PartialMarkupDocumentLinkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/PartialMarkupDocumentLinkerTest.java Fri May 21 20:05:56 2010
@@ -17,6 +17,7 @@ package org.apache.tapestry5.internal.se
 import org.apache.tapestry5.json.JSONArray;
 import org.apache.tapestry5.json.JSONObject;
 import org.apache.tapestry5.services.javascript.InitializationPriority;
+import org.apache.tapestry5.services.javascript.StylesheetLink;
 import org.apache.tapestry5.services.javascript.StylesheetOptions;
 import org.testng.Assert;
 import org.testng.annotations.Test;

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RenderSupportImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RenderSupportImplTest.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RenderSupportImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RenderSupportImplTest.java Fri May 21 20:05:56 2010
@@ -23,6 +23,7 @@ import org.apache.tapestry5.json.JSONArr
 import org.apache.tapestry5.json.JSONObject;
 import org.apache.tapestry5.services.AssetSource;
 import org.apache.tapestry5.services.javascript.JavascriptSupport;
+import org.apache.tapestry5.services.javascript.StylesheetLink;
 import org.apache.tapestry5.services.javascript.StylesheetOptions;
 import org.testng.annotations.Test;
 
@@ -110,9 +111,9 @@ public class RenderSupportImplTest exten
     {
         String media = "print";
         JavascriptSupport javascriptSupport = mockJavascriptSupport();
-        Asset asset = mockAsset();
+        Asset asset = mockAsset("foo.css");
 
-        javascriptSupport.importStylesheet(asset, new StylesheetOptions(media));
+        javascriptSupport.importStylesheet(new StylesheetLink("foo.css", new StylesheetOptions(media)));
 
         replay();
 
@@ -129,7 +130,7 @@ public class RenderSupportImplTest exten
         String media = "print";
         JavascriptSupport javascriptSupport = mockJavascriptSupport();
 
-        javascriptSupport.importStylesheet(ASSET_URL, new StylesheetOptions(media));
+        javascriptSupport.importStylesheet(new StylesheetLink(ASSET_URL, new StylesheetOptions(media)));
 
         replay();
 

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ajax/JavascriptSupportImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ajax/JavascriptSupportImplTest.java?rev=947153&r1=947152&r2=947153&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ajax/JavascriptSupportImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ajax/JavascriptSupportImplTest.java Fri May 21 20:05:56 2010
@@ -21,7 +21,6 @@ import org.apache.tapestry5.Asset;
 import org.apache.tapestry5.ComponentResources;
 import org.apache.tapestry5.internal.InternalConstants;
 import org.apache.tapestry5.internal.services.DocumentLinker;
-import org.apache.tapestry5.internal.services.StylesheetLink;
 import org.apache.tapestry5.internal.services.javascript.JavascriptStackPathConstructor;
 import org.apache.tapestry5.internal.test.InternalBaseTestCase;
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
@@ -32,6 +31,7 @@ import org.apache.tapestry5.services.jav
 import org.apache.tapestry5.services.javascript.JavascriptStack;
 import org.apache.tapestry5.services.javascript.JavascriptStackSource;
 import org.apache.tapestry5.services.javascript.JavascriptSupport;
+import org.apache.tapestry5.services.javascript.StylesheetLink;
 import org.apache.tapestry5.services.javascript.StylesheetOptions;
 import org.testng.annotations.Test;
 
@@ -109,7 +109,7 @@ public class JavascriptSupportImplTest e
         JavascriptStack stack = mockJavascriptStack();
 
         List<String> libraryPaths = Collections.emptyList();
-        List<Asset> stylesheets = Collections.emptyList();
+        List<StylesheetLink> stylesheets = Collections.emptyList();
 
         expect(stackSource.getStack(InternalConstants.CORE_STACK_NAME)).andReturn(stack);
         expect(pathConstructor.constructPathsForJavascriptStack(InternalConstants.CORE_STACK_NAME)).andReturn(
@@ -124,18 +124,18 @@ public class JavascriptSupportImplTest e
     {
         JavascriptStack stack = mockJavascriptStack();
 
-        Asset stylesheet = mockAsset("style.css");
+        StylesheetLink stylesheetLink = new StylesheetLink("style.css");
 
         expect(stackSource.getStack(InternalConstants.CORE_STACK_NAME)).andReturn(stack);
         expect(pathConstructor.constructPathsForJavascriptStack(InternalConstants.CORE_STACK_NAME)).andReturn(
                 CollectionFactory.newList("stack1.js", "stack2.js"));
-        expect(stack.getStylesheets()).andReturn(CollectionFactory.newList(stylesheet));
+        expect(stack.getStylesheets()).andReturn(CollectionFactory.newList(stylesheetLink));
 
         expect(stack.getInitialization()).andReturn("stackInit();");
 
         linker.addScriptLink("stack1.js");
         linker.addScriptLink("stack2.js");
-        linker.addStylesheetLink(new StylesheetLink("style.css"));
+        linker.addStylesheetLink(stylesheetLink);
     }
 
     protected final JavascriptStack mockJavascriptStack()
@@ -206,17 +206,17 @@ public class JavascriptSupportImplTest e
 
         JavascriptStack stack = mockJavascriptStack();
 
-        Asset stylesheet = mockAsset("stack.css");
+        StylesheetLink stylesheetLink = new StylesheetLink("stack.css");
 
         expect(stackSource.getStack("custom")).andReturn(stack);
         expect(pathConstructor.constructPathsForJavascriptStack("custom")).andReturn(
                 CollectionFactory.newList("stack.js"));
-        expect(stack.getStylesheets()).andReturn(CollectionFactory.newList(stylesheet));
+        expect(stack.getStylesheets()).andReturn(CollectionFactory.newList(stylesheetLink));
 
         expect(stack.getInitialization()).andReturn("customInit();");
 
         linker.addScriptLink("stack.js");
-        linker.addStylesheetLink(new StylesheetLink("stack.css"));
+        linker.addStylesheetLink(stylesheetLink);
 
         linker.addScript(InitializationPriority.IMMEDIATE, "stackInit();");
         linker.addScript(InitializationPriority.IMMEDIATE, "customInit();");
@@ -342,15 +342,15 @@ public class JavascriptSupportImplTest e
     {
         DocumentLinker linker = mockDocumentLinker();
         Asset stylesheet = mockAsset("style.css");
-        StylesheetOptions options = new StylesheetOptions("print");
 
-        linker.addStylesheetLink(new StylesheetLink("style.css", options));
+        StylesheetLink link = new StylesheetLink("style.css");
+        linker.addStylesheetLink(link);
 
         replay();
 
         JavascriptSupportImpl jss = new JavascriptSupportImpl(linker, null, null);
 
-        jss.importStylesheet(stylesheet, options);
+        jss.importStylesheet(stylesheet);
 
         jss.commit();
 
@@ -369,8 +369,8 @@ public class JavascriptSupportImplTest e
 
         JavascriptSupportImpl jss = new JavascriptSupportImpl(linker, null, null);
 
-        jss.importStylesheet("style.css", options);
-        jss.importStylesheet("style.css", new StylesheetOptions("hologram"));
+        jss.importStylesheet(new StylesheetLink("style.css", options));
+        jss.importStylesheet(new StylesheetLink("style.css", new StylesheetOptions("hologram")));
 
         jss.commit();