You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2007/09/01 23:39:27 UTC

svn commit: r571877 - in /wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket: ajax/AjaxRequestTarget.java markup/html/IHeaderResponse.java markup/html/internal/HeaderResponse.java

Author: knopp
Date: Sat Sep  1 14:39:26 2007
New Revision: 571877

URL: http://svn.apache.org/viewvc?rev=571877&view=rev
Log:
WICKET-480

Modified:
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/IHeaderResponse.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java?rev=571877&r1=571876&r2=571877&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java Sat Sep  1 14:39:26 2007
@@ -829,7 +829,8 @@
 
 		public void renderOnDomReadyJavascript(String javascript)
 		{
-			List token = Arrays.asList(new Object[] { "javascript-event", "domready", javascript });
+			List token = Arrays.asList(new Object[] { "javascript-event", "window", "domready",
+					javascript });
 			if (wasRendered(token) == false)
 			{
 				domReadyJavascripts.add(javascript);
@@ -839,7 +840,8 @@
 
 		public void renderOnLoadJavascript(String javascript)
 		{
-			List token = Arrays.asList(new Object[] { "javascript-event", "load", javascript });
+			List token = Arrays.asList(new Object[] { "javascript-event", "window", "load",
+					javascript });
 			if (wasRendered(token) == false)
 			{
 				// execute the javascript after all other scripts are executed

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/IHeaderResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/IHeaderResponse.java?rev=571877&r1=571876&r2=571877&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/IHeaderResponse.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/IHeaderResponse.java Sat Sep  1 14:39:26 2007
@@ -20,20 +20,17 @@
 import org.apache.wicket.Response;
 
 /**
- * Interface that is used to render header elements (usually javascript and CSS
- * references).
+ * Interface that is used to render header elements (usually javascript and CSS references).
  * 
- * Implementation of this interface is responsible for filtering duplicate
- * contributions (so that for example the same javascript is not loaded twice)
- * during the same request.
+ * Implementation of this interface is responsible for filtering duplicate contributions (so that
+ * for example the same javascript is not loaded twice) during the same request.
  * 
  * @author Matej Knopp
  */
 public interface IHeaderResponse
 {
 	/**
-	 * Writes a javascript reference, if the specified reference hasn't been
-	 * rendered yet.
+	 * Writes a javascript reference, if the specified reference hasn't been rendered yet.
 	 * 
 	 * @param reference
 	 *            resource reference pointing to the javascript resource
@@ -41,8 +38,7 @@
 	public void renderJavascriptReference(ResourceReference reference);
 
 	/**
-	 * Writes a javascript reference, if the specified reference hasn't been
-	 * rendered yet.
+	 * Writes a javascript reference, if the specified reference hasn't been rendered yet.
 	 * 
 	 * @param url
 	 *            url of the the javascript resource
@@ -50,25 +46,21 @@
 	public void renderJavascriptReference(String url);
 
 	/**
-	 * Renders javascript code to the response, if the javascript has not
-	 * already been rendered.
+	 * Renders javascript code to the response, if the javascript has not already been rendered.
 	 * 
-	 * the necessary surrounding <code>script</code> tags will be added to the
-	 * output.
+	 * the necessary surrounding <code>script</code> tags will be added to the output.
 	 * 
 	 * @param javascript
 	 *            javacript content to be rendered.
 	 * 
 	 * @param id
-	 *            unique id for the javascript element. This can be null,
-	 *            however in that case the ajax header contribution can't detect
-	 *            duplicate script fragments.
+	 *            unique id for the javascript element. This can be null, however in that case the
+	 *            ajax header contribution can't detect duplicate script fragments.
 	 */
 	public void renderJavascript(CharSequence javascript, String id);
 
 	/**
-	 * Writes a CSS reference, if the specified reference hasn't been rendered
-	 * yet.
+	 * Writes a CSS reference, if the specified reference hasn't been rendered yet.
 	 * 
 	 * @param reference
 	 *            resource reference pointing to the CSS resource
@@ -76,8 +68,7 @@
 	public void renderCSSReference(ResourceReference reference);
 
 	/**
-	 * Writes a CSS reference, if the specified reference hasn't been rendered
-	 * yet.
+	 * Writes a CSS reference, if the specified reference hasn't been rendered yet.
 	 * 
 	 * @param url
 	 *            url of the CSS resource
@@ -85,8 +76,7 @@
 	public void renderCSSReference(String url);
 
 	/**
-	 * Writes a CSS reference, if the specified reference hasn't been rendered
-	 * yet.
+	 * Writes a CSS reference, if the specified reference hasn't been rendered yet.
 	 * 
 	 * @param reference
 	 *            resource reference pointing to the CSS resource
@@ -96,8 +86,7 @@
 	public void renderCSSReference(ResourceReference reference, String media);
 
 	/**
-	 * Writes a CSS reference, if the specified reference hasn't been rendered
-	 * yet.
+	 * Writes a CSS reference, if the specified reference hasn't been rendered yet.
 	 * 
 	 * @param url
 	 *            url of the CSS resource
@@ -107,11 +96,11 @@
 	public void renderCSSReference(String url, String media);
 
 	/**
-	 * Renders an arbitrary string to the header. The string is only rendered if
-	 * the same string hasn't been rendered before.
+	 * Renders an arbitrary string to the header. The string is only rendered if the same string
+	 * hasn't been rendered before.
 	 * <p>
-	 * Note: This method is kind of dangerous as users are able to write to the
-	 * output whatever they like.
+	 * Note: This method is kind of dangerous as users are able to write to the output whatever they
+	 * like.
 	 * 
 	 * @param string
 	 *            string to be rendered to head
@@ -119,10 +108,9 @@
 	public void renderString(CharSequence string);
 
 	/**
-	 * Marks the given object as rendered. The object can be anything (string,
-	 * resource reference, etc...). The purpose of this function is to allow
-	 * user to manually keep track of rendered items. This can be useful for
-	 * items that are expensive to generate (like interpolated text).
+	 * Marks the given object as rendered. The object can be anything (string, resource reference,
+	 * etc...). The purpose of this function is to allow user to manually keep track of rendered
+	 * items. This can be useful for items that are expensive to generate (like interpolated text).
 	 * 
 	 * @param object
 	 *            object to be marked as rendered.
@@ -132,15 +120,12 @@
 	/**
 	 * Returns whether the given object has been marked as rendered.
 	 * <ul>
-	 * <li>Methods <code>renderJavascriptReference</code> and
-	 * <code>renderCSSReference</code> mark the specified
-	 * {@link ResourceReference} as rendered.
-	 * <li>Method <code>renderJavascript</code> marks List of two elements
-	 * (first is javascript body CharSequence and second is id) as rendered.
-	 * <li>Method <code>renderString</code> marks the whole string as
-	 * rendered.
-	 * <li>Method <code>markRendered</code> can be used to mark an arbitrary
-	 * object as rendered
+	 * <li>Methods <code>renderJavascriptReference</code> and <code>renderCSSReference</code>
+	 * mark the specified {@link ResourceReference} as rendered.
+	 * <li>Method <code>renderJavascript</code> marks List of two elements (first is javascript
+	 * body CharSequence and second is id) as rendered.
+	 * <li>Method <code>renderString</code> marks the whole string as rendered.
+	 * <li>Method <code>markRendered</code> can be used to mark an arbitrary object as rendered
 	 * </ul>
 	 * 
 	 * @param object
@@ -150,19 +135,18 @@
 	public boolean wasRendered(Object object);
 
 	/**
-	 * Returns the response that can be used to write arbitrary text to the head
-	 * section.
+	 * Returns the response that can be used to write arbitrary text to the head section.
 	 * <p>
-	 * Note: This method is kind of dangerous as users are able to write to the
-	 * output whatever they like.
+	 * Note: This method is kind of dangerous as users are able to write to the output whatever they
+	 * like.
 	 * 
 	 * @return Reponse
 	 */
 	public Response getResponse();
 
 	/**
-	 * Renders javascript that is executed right after the DOM is built, before
-	 * external resources (e.g. images) are loaded.
+	 * Renders javascript that is executed right after the DOM is built, before external resources
+	 * (e.g. images) are loaded.
 	 * 
 	 * @param javascript
 	 */
@@ -174,11 +158,13 @@
 	 * @param javascript
 	 */
 	public void renderOnLoadJavascript(String javascript);
-	
+
 	/**
-	 * Renders javascript that is executed before a page is unloaded.
+	 * Renders javascript that is executed after the given event happens on specified target
 	 * 
+	 * @param target
+	 * @param event
 	 * @param javascript
 	 */
-	public void renderOnBeforeUnloadJavascript(String javascript);
+	public void renderOnEventJavacript(String target, String event, String javascript);
 }

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java?rev=571877&r1=571876&r2=571877&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java Sat Sep  1 14:39:26 2007
@@ -176,14 +176,7 @@
 	 */
 	public void renderOnDomReadyJavascript(String javascript)
 	{
-		List token = Arrays.asList(new Object[] { "javascript-event", "domready", javascript });
-		if (wasRendered(token) == false)
-		{
-			renderJavascriptReference(WicketEventReference.INSTANCE);
-			JavascriptUtils.writeJavascript(getResponse(),
-					"Wicket.Event.add(window, \"domready\", function() { " + javascript + ";});");
-			markRendered(token);
-		}
+		renderOnEventJavacript("window", "domready", javascript);
 	}
 
 	/**
@@ -191,27 +184,22 @@
 	 */
 	public void renderOnLoadJavascript(String javascript)
 	{
-		List token = Arrays.asList(new Object[] { "javascript-event", "load", javascript });
-		if (wasRendered(token) == false)
-		{
-			renderJavascriptReference(WicketEventReference.INSTANCE);
-			JavascriptUtils.writeJavascript(getResponse(),
-					"Wicket.Event.add(window, \"load\", function() { " + javascript + ";});");
-			markRendered(token);
-		}
+		renderOnEventJavacript("window", "load", javascript);
 	}
 
 	/**
-	 * @see org.apache.wicket.markup.html.IHeaderResponse#renderOnBeforeUnloadJavascript(java.lang.String)
+	 * 
+	 * @see org.apache.wicket.markup.html.IHeaderResponse#renderOnEventJavacript(java.lang.String,
+	 *      java.lang.String, java.lang.String)
 	 */
-	public void renderOnBeforeUnloadJavascript(String javascript)
+	public void renderOnEventJavacript(String target, String event, String javascript)
 	{
-		List token = Arrays.asList(new Object[] { "javascript-event", "beforeunload", javascript });
+		List token = Arrays.asList(new Object[] { "javascript-event", target, event, javascript });
 		if (wasRendered(token) == false)
 		{
 			renderJavascriptReference(WicketEventReference.INSTANCE);
-			JavascriptUtils.writeJavascript(getResponse(),
-					"Wicket.Event.add(window, \"beforeunload\", function() { " + javascript + ";});");
+			JavascriptUtils.writeJavascript(getResponse(), "Wicket.Event.add(" + target + ", \"" +
+					event + "\", function() { " + javascript + ";});");
 			markRendered(token);
 		}
 	}