You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2010/12/21 12:21:34 UTC
svn commit: r1051457 - in
/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration:
GroupingAndFilteringHeaderResponse.java HomePage.html HomePage.java
ResourceDecorationApplication.java
Author: mgrigorov
Date: Tue Dec 21 11:21:33 2010
New Revision: 1051457
URL: http://svn.apache.org/viewvc?rev=1051457&view=rev
Log:
Add a demo how to load JavaScript in the footer of the page (after </body>
Added:
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/GroupingAndFilteringHeaderResponse.java (with props)
Modified:
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/HomePage.html
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/HomePage.java
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/ResourceDecorationApplication.java
Added: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/GroupingAndFilteringHeaderResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/GroupingAndFilteringHeaderResponse.java?rev=1051457&view=auto
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/GroupingAndFilteringHeaderResponse.java (added)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/GroupingAndFilteringHeaderResponse.java Tue Dec 21 11:21:33 2010
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); 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
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.examples.resourcedecoration;
+
+import org.apache.wicket.markup.html.DecoratingHeaderResponse;
+import org.apache.wicket.markup.html.IHeaderResponse;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.resource.filtering.JavaScriptFilteredIntoFooterHeaderResponse;
+
+/**
+ * An {@link IHeaderResponse} that uses grouping for the CSS resources, i.e. can load several .css
+ * files with one http request, and load the JavaScript resources at the footer of the body
+ */
+public class GroupingAndFilteringHeaderResponse extends DecoratingHeaderResponse
+{
+ private final GroupingHeaderResponse groupingHeaderResponse;
+
+ /**
+ * Uses {@link JavaScriptFilteredIntoFooterHeaderResponse} for rendering all JavaScript
+ * resources and {@link GroupingHeaderResponse} for all CSS resources
+ *
+ * @param groupingHeaderResponse
+ * @param filteredIntoFooterHeaderResponse
+ */
+ public GroupingAndFilteringHeaderResponse(GroupingHeaderResponse groupingHeaderResponse,
+ JavaScriptFilteredIntoFooterHeaderResponse filteredIntoFooterHeaderResponse)
+ {
+ super(filteredIntoFooterHeaderResponse);
+
+ this.groupingHeaderResponse = groupingHeaderResponse;
+ }
+
+ @Override
+ public void renderCSSReference(ResourceReference reference)
+ {
+ groupingHeaderResponse.renderCSSReference(reference);
+ }
+
+ @Override
+ public void renderCSSReference(String url)
+ {
+ groupingHeaderResponse.renderCSSReference(url);
+ }
+
+ @Override
+ public void renderCSSReference(ResourceReference reference, String media)
+ {
+ groupingHeaderResponse.renderCSSReference(reference, media);
+ }
+
+ @Override
+ public void renderCSSReference(ResourceReference reference, PageParameters pageParameters,
+ String media)
+ {
+ groupingHeaderResponse.renderCSSReference(reference, pageParameters, media);
+ }
+
+ @Override
+ public void renderCSSReference(String url, String media)
+ {
+ groupingHeaderResponse.renderCSSReference(url, media);
+ }
+
+ /**
+ * @see org.apache.wicket.markup.html.DecoratingHeaderResponse#close()
+ */
+ @Override
+ public void close()
+ {
+ groupingHeaderResponse.close();
+ super.close();
+ }
+
+}
Propchange: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/GroupingAndFilteringHeaderResponse.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/HomePage.html
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/HomePage.html?rev=1051457&r1=1051456&r2=1051457&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/HomePage.html (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/HomePage.html Tue Dec 21 11:21:33 2010
@@ -21,4 +21,6 @@
<h1 class="footer">footer h1</h1>
</div>
</body>
+
+ <wicket:container wicket:id="footerJS"></wicket:container>
</html>
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/HomePage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/HomePage.java?rev=1051457&r1=1051456&r2=1051457&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/HomePage.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/HomePage.java Tue Dec 21 11:21:33 2010
@@ -27,6 +27,7 @@ import org.apache.wicket.markup.html.IHe
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.resource.PackageResourceReference;
+import org.apache.wicket.resource.filtering.HeaderResponseFilteredResponseContainer;
import org.apache.wicket.util.time.Duration;
/**
@@ -75,6 +76,12 @@ public class HomePage extends WicketExam
stop();
}
});
+
+ /*
+ * a container for all collected JavaScript contributions that will be loaded at the page
+ * footer (after </body>)
+ */
+ add(new HeaderResponseFilteredResponseContainer("footerJS", "footerJS"));
}
@Override
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/ResourceDecorationApplication.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/ResourceDecorationApplication.java?rev=1051457&r1=1051456&r2=1051457&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/ResourceDecorationApplication.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/ResourceDecorationApplication.java Tue Dec 21 11:21:33 2010
@@ -20,6 +20,7 @@ import org.apache.wicket.Application;
import org.apache.wicket.markup.html.IHeaderResponse;
import org.apache.wicket.markup.html.IHeaderResponseDecorator;
import org.apache.wicket.protocol.http.WebApplication;
+import org.apache.wicket.resource.filtering.JavaScriptFilteredIntoFooterHeaderResponse;
/**
* An application showing how to return several resources into a single http response.
@@ -46,10 +47,19 @@ public class ResourceDecorationApplicati
public IHeaderResponse decorate(IHeaderResponse response)
{
- // add one that aggregates http requests,
- // but delegates writing of the scripts (or aggregated URL script and link tags) to
- // the real response
- return new GroupingHeaderResponse(response);
+ // use grouping header response for the CSS resources, this way we can load several
+ // .css files in one http request. See HomePage#renderHead() header.css and
+ // footer.css
+ GroupingHeaderResponse groupingHeaderResponse = new GroupingHeaderResponse(response);
+
+ // use this header resource decorator to load all JavaScript resources in the page
+ // footer (after </body>)
+ JavaScriptFilteredIntoFooterHeaderResponse javaScriptFooterResponse = new JavaScriptFilteredIntoFooterHeaderResponse(
+ response, "footerJS");
+
+ // finally use one that delegates to the two above
+ return new GroupingAndFilteringHeaderResponse(groupingHeaderResponse,
+ javaScriptFooterResponse);
}
});
}