Author: jbq Date: Sun Jun 24 08:04:46 2007 New Revision: 550244 URL: http://svn.apache.org/viewvc?view=rev&rev=550244 Log: Add an example with a Wicket bookmarkable page, and give an example to send a Wicket page by email
Added: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Page.html (with props) incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Page.java (with props) incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Sent.html (with props) incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Sent.java (with props) Modified: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Application.java incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Home.html incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Home.java Modified: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Application.java URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Application.java?view=diff&rev=550244&r1=550243&r2=550244 ============================================================================== --- incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Application.java (original) +++ incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Application.java Sun Jun 24 08:04:46 2007 @@ -17,15 +17,21 @@ package org.apache.wicket.examples.staticpages; import org.apache.wicket.IRequestTarget; +import org.apache.wicket.PageParameters; +import org.apache.wicket.RequestCycle; import org.apache.wicket.protocol.http.WebApplication; +import org.apache.wicket.protocol.http.WebResponse; import org.apache.wicket.protocol.http.request.WebExternalResourceRequestTarget; import org.apache.wicket.request.RequestParameters; import org.apache.wicket.request.target.basic.URIRequestTargetUrlCodingStrategy; +import org.apache.wicket.request.target.component.BookmarkablePageRequestTarget; import org.apache.wicket.request.target.resource.ResourceStreamRequestTarget; +import org.apache.wicket.response.StringResponse; import org.apache.wicket.util.resource.IResourceStream; import org.apache.wicket.util.resource.PackageResourceStream; import org.apache.wicket.util.resource.WebExternalResourceStream; import org.apache.wicket.util.resource.XSLTResourceStream; +import org.apache.wicket.util.value.ValueMap; /** * Examples for serving static files @@ -65,6 +71,39 @@ "layout.xsl"); IResourceStream docStream = new WebExternalResourceStream(path); return new ResourceStreamRequestTarget(new XSLTResourceStream(xslStream, docStream)); + } + }); + + // Passing URI to a Wicket page + mount(new URIRequestTargetUrlCodingStrategy("/pages") + { + @Override + public IRequestTarget decode(RequestParameters requestParameters) + { + final ValueMap requestParams = decodeParameters(requestParameters); + final StringResponse emailResponse = new StringResponse(); + final WebResponse originalResponse = (WebResponse)RequestCycle.get().getResponse(); + if (requestParams.getString("email") != null) { + RequestCycle.get().setResponse(emailResponse); + } + PageParameters params = new PageParameters(); + params.put("uri", requestParams.get(URI)); + return new BookmarkablePageRequestTarget(Page.class, params) { + /** + * @see org.apache.wicket.request.target.component.BookmarkablePageRequestTarget#respond(org.apache.wicket.RequestCycle) + */ + @Override + public void respond(RequestCycle requestCycle) + { + super.respond(requestCycle); + if (requestParams.getString("email") != null) { + // Here send the email instead of dumping it to stdout! + System.out.println(emailResponse.toString()); + RequestCycle.get().setResponse(originalResponse); + RequestCycle.get().setRequestTarget(new BookmarkablePageRequestTarget(Sent.class)); + } + } + }; } }); } Modified: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Home.html URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Home.html?view=diff&rev=550244&r1=550243&r2=550244 ============================================================================== --- incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Home.html (original) +++ incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Home.html Sun Jun 24 08:04:46 2007 @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <html xmlns="http://www.w3.org/1999/xhtml" > <head> - <title>Wicket Examples - stockquote</title> + <title>Wicket Examples - Static Pages</title> <link rel="stylesheet" type="text/css" href="style.css"/> </head> <body> @@ -50,6 +50,7 @@ <li><a wicket:id="hellostream">Hello World as a Static Page</a></li> <li><a wicket:id="helloxslt">Hello World as a Static Page with XSLT layout</a></li> + <li><a wicket:id="wicketpage">Passing URI to a Wicket page</a></li> </ul> <p>NOTE: it is possible to serve any kind of content using this method, not Modified: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Home.java URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Home.java?view=diff&rev=550244&r1=550243&r2=550244 ============================================================================== --- incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Home.java (original) +++ incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Home.java Sun Jun 24 08:04:46 2007 @@ -41,6 +41,8 @@ add(new StaticLink("hellostream", new Model("docs/hello.html"))); // Hello World as a Static Page with XSLT layout add(new StaticLink("helloxslt", new Model("xsldocs/hello.html"))); + // Passing URI to a Wicket page + add(new StaticLink("wicketpage", new Model("pages/path/to/hello.html"))); } private class StaticLink extends WebMarkupContainer Added: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Page.html URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Page.html?view=auto&rev=550244 ============================================================================== --- incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Page.html (added) +++ incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Page.html Sun Jun 24 08:04:46 2007 @@ -0,0 +1,13 @@ +<html> + <head> + <title>Wicket Examples - Static Pages</title> + <link rel="stylesheet" type="text/css" href="style.css"/> + </head> + <body> + <span wicket:id="mainNavigation"/> + <p>The <tt>uri</tt> parameter is: <b><span wicket:id="uri"></span></b></p> + + <p>This parameter can be used to fetch contents in a database or from a file while using a nice URL to identify the + document. The example is using a Wicket bookmarkable page.</p> + </body> +</html> Propchange: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Page.html ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Page.java URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Page.java?view=auto&rev=550244 ============================================================================== --- incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Page.java (added) +++ incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Page.java Sun Jun 24 08:04:46 2007 @@ -0,0 +1,32 @@ +/* + * 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.staticpages; + +import org.apache.wicket.PageParameters; +import org.apache.wicket.examples.WicketExamplePage; +import org.apache.wicket.markup.html.basic.Label; + +/** + * @author jbq + */ +public class Page extends WicketExamplePage +{ + public Page(PageParameters parameters) + { + add(new Label("uri", parameters.getString("uri"))); + } +} Propchange: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Page.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Page.java ------------------------------------------------------------------------------ svn:keywords = Id Added: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Sent.html URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Sent.html?view=auto&rev=550244 ============================================================================== --- incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Sent.html (added) +++ incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Sent.html Sun Jun 24 08:04:46 2007 @@ -0,0 +1,13 @@ +<html> + <head> + <title>Wicket Examples - Static Pages</title> + <link rel="stylesheet" type="text/css" href="style.css"/> + </head> + <body> + <span wicket:id="mainNavigation"/> + <p><b>The email has been sent!</b></p> + + <p>Well, that's if you have a little bit of imagination. But for now the page has been dumped to stdout. Sending + the real email is left as an exercise for the reader.</p> + </body> +</html> Propchange: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Sent.html ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Sent.java URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Sent.java?view=auto&rev=550244 ============================================================================== --- incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Sent.java (added) +++ incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Sent.java Sun Jun 24 08:04:46 2007 @@ -0,0 +1,26 @@ +/* + * 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.staticpages; + +import org.apache.wicket.examples.WicketExamplePage; + +/** + * @author jbq + */ +public class Sent extends WicketExamplePage +{ +} Propchange: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Sent.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/staticpages/Sent.java ------------------------------------------------------------------------------ svn:keywords = Id