You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pe...@apache.org on 2011/04/04 21:23:13 UTC

svn commit: r1088743 - in /wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames: BodyFrame.java ExampleFrame.java FrameTarget.java Home.html Home.java LeftFrame.html

Author: pedro
Date: Mon Apr  4 19:23:13 2011
New Revision: 1088743

URL: http://svn.apache.org/viewvc?rev=1088743&view=rev
Log:
- changing hardcoded frame sources in the HTML to be resolved by ExampleFrame, this is just an auxiliary component under wicket-examples project

fix WICKET-3573

Added:
    wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/ExampleFrame.java
Modified:
    wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/BodyFrame.java
    wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/FrameTarget.java
    wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/Home.html
    wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/Home.java
    wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/LeftFrame.html

Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/BodyFrame.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/BodyFrame.java?rev=1088743&r1=1088742&r2=1088743&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/BodyFrame.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/BodyFrame.java Mon Apr  4 19:23:13 2011
@@ -16,13 +16,8 @@
  */
 package org.apache.wicket.examples.frames;
 
-import org.apache.wicket.AttributeModifier;
-import org.apache.wicket.markup.html.WebComponent;
 import org.apache.wicket.markup.html.WebPage;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
 import org.apache.wicket.request.IRequestHandler;
-import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.handler.PageProvider;
 import org.apache.wicket.request.handler.RenderPageRequestHandler;
 
@@ -34,32 +29,8 @@ import org.apache.wicket.request.handler
  */
 public class BodyFrame extends WebPage
 {
-	/**
-	 * Model that returns the url to the bookmarkable page that is set in the current frame target.
-	 */
-	private final class FrameModel implements IModel<CharSequence>
-	{
-		public CharSequence getObject()
-		{
-			IRequestHandler handler = new RenderPageRequestHandler(new PageProvider(
-				frameTarget.getFrameClass()));
-			return RequestCycle.get().urlFor(handler);
-		}
-
-		public void setObject(final CharSequence object)
-		{
-		}
-
-		/**
-		 * @see org.apache.wicket.model.IDetachable#detach()
-		 */
-		public void detach()
-		{
-		}
-	}
-
-	/** name for page map etc. */
-	public static final String RIGHT_FRAME_NAME = "right";
+	/** */
+	private static final long serialVersionUID = 1L;
 
 	private final FrameTarget frameTarget = new FrameTarget(Page1.class);
 
@@ -71,19 +42,23 @@ public class BodyFrame extends WebPage
 		// create a new page instance, passing this 'master page' as an argument
 		LeftFrame leftFrame = new LeftFrame(this);
 		// get the url to that page
-		IRequestHandler handler = new RenderPageRequestHandler(new PageProvider(leftFrame));
-		String leftFrameSrc = RequestCycle.get().urlFor(handler).toString();
+		IRequestHandler leftFrameHandler = new RenderPageRequestHandler(new PageProvider(leftFrame));
 		// and create a simple component that modifies it's src attribute to
 		// hold the url to that frame
-		WebComponent leftFrameTag = new WebComponent("leftFrame");
-		leftFrameTag.add(new AttributeModifier("src", new Model<String>(leftFrameSrc)));
+		ExampleFrame leftFrameTag = new ExampleFrame("leftFrame", leftFrameHandler);
 		add(leftFrameTag);
 
-		// make a simple component for the right frame tag
-		WebComponent rightFrameTag = new WebComponent("rightFrame");
-		// and this time, set a model which retrieves the url to the currently
-		// set frame class in the frame target
-		rightFrameTag.add(new AttributeModifier("src", new FrameModel()));
+		ExampleFrame rightFrameTag = new ExampleFrame("rightFrame")
+		{
+			/** */
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected CharSequence getUrl()
+			{
+				return frameTarget.getUrl();
+			}
+		};
 		add(rightFrameTag);
 	}
 

Added: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/ExampleFrame.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/ExampleFrame.java?rev=1088743&view=auto
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/ExampleFrame.java (added)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/ExampleFrame.java Mon Apr  4 19:23:13 2011
@@ -0,0 +1,88 @@
+/*
+ * 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.frames;
+
+import org.apache.wicket.markup.ComponentTag;
+import org.apache.wicket.markup.html.WebComponent;
+import org.apache.wicket.request.IRequestHandler;
+
+/**
+ * A simple component setting page URL in the src frame tag attribute.
+ * 
+ * @author Pedro Santos
+ */
+public class ExampleFrame extends WebComponent
+{
+	/** */
+	private static final long serialVersionUID = 1L;
+
+	private CharSequence url;
+
+	/**
+	 * @param id
+	 */
+	public ExampleFrame(String id)
+	{
+		super(id);
+	}
+
+	/**
+	 * @param id
+	 * @param requestHandler
+	 */
+	public ExampleFrame(String id, IRequestHandler requestHandler)
+	{
+		super(id);
+		url = urlFor(requestHandler);
+	}
+
+	/**
+	 * @param id
+	 * @param url
+	 */
+	public ExampleFrame(String id, CharSequence url)
+	{
+		super(id);
+		this.url = url;
+	}
+
+	/**
+	 * Handles this frame's tag.
+	 * 
+	 * @param tag
+	 *            the component tag
+	 * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
+	 */
+	@Override
+	protected final void onComponentTag(final ComponentTag tag)
+	{
+		checkComponentTag(tag, "frame");
+
+		tag.put("src", getUrl());
+
+		super.onComponentTag(tag);
+	}
+
+	/**
+	 * @return src URL
+	 */
+	protected CharSequence getUrl()
+	{
+		return url;
+	}
+
+}

Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/FrameTarget.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/FrameTarget.java?rev=1088743&r1=1088742&r2=1088743&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/FrameTarget.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/FrameTarget.java Mon Apr  4 19:23:13 2011
@@ -18,6 +18,9 @@ package org.apache.wicket.examples.frame
 
 import org.apache.wicket.IClusterable;
 import org.apache.wicket.Page;
+import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.handler.BookmarkablePageRequestHandler;
+import org.apache.wicket.request.handler.PageProvider;
 
 /**
  * Simple struct for holding the class of the right frame.
@@ -72,4 +75,13 @@ public final class FrameTarget implement
 	{
 		this.frameClass = frameClass;
 	}
+
+	/**
+	 * @return URL to this frame class
+	 */
+	public CharSequence getUrl()
+	{
+		return RequestCycle.get().urlFor(
+			new BookmarkablePageRequestHandler(new PageProvider(frameClass)));
+	}
 }
\ No newline at end of file

Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/Home.html
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/Home.html?rev=1088743&r1=1088742&r2=1088743&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/Home.html (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/Home.html Mon Apr  4 19:23:13 2011
@@ -1,4 +1,4 @@
 <frameset rows="140px, *" name="master">
-	<frame src="?wicket:bookmarkablePage=:org.apache.wicket.examples.frames.TopFrame" name="top" />
-	<frame src="?wicket:bookmarkablePage=:org.apache.wicket.examples.frames.BodyFrame" name="body" />
+	<frame wicket:id="topFrame" name="top" />
+	<frame wicket:id="bodyFrame" name="body" />
 </frameset>

Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/Home.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/Home.java?rev=1088743&r1=1088742&r2=1088743&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/Home.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/Home.java Mon Apr  4 19:23:13 2011
@@ -17,6 +17,9 @@
 package org.apache.wicket.examples.frames;
 
 import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.handler.BookmarkablePageRequestHandler;
+import org.apache.wicket.request.handler.PageProvider;
 
 /**
  * Home page for the frames example.
@@ -25,10 +28,22 @@ import org.apache.wicket.markup.html.Web
  */
 public class Home extends WebPage
 {
+	/** */
+	private static final long serialVersionUID = 1L;
+
 	/**
 	 * Constructor
 	 */
 	public Home()
 	{
+		IRequestHandler topFrameHandler = new BookmarkablePageRequestHandler(new PageProvider(
+			TopFrame.class));
+		ExampleFrame topFrame = new ExampleFrame("topFrame", topFrameHandler);
+		add(topFrame);
+
+		IRequestHandler bodyFrameHandler = new BookmarkablePageRequestHandler(new PageProvider(
+			BodyFrame.class));
+		ExampleFrame bodyFrame = new ExampleFrame("bodyFrame", bodyFrameHandler);
+		add(bodyFrame);
 	}
 }
\ No newline at end of file

Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/LeftFrame.html
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/LeftFrame.html?rev=1088743&r1=1088742&r2=1088743&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/LeftFrame.html (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/frames/LeftFrame.html Mon Apr  4 19:23:13 2011
@@ -13,7 +13,7 @@
     			<a href="#" wicket:id="linkToPage2" target="_parent">Page 2</a>
     		</li>
             <li>
-              <a href="#" wicket:id="directLink" target="[set by tag]">Link-o-matic Page</a>
+              <a href="#" wicket:id="directLink" target="right">Link-o-matic Page</a>
             </li>
     	</ul>
     </div>