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/11/06 18:28:55 UTC

svn commit: r1032118 - /wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java

Author: mgrigorov
Date: Sat Nov  6 17:28:55 2010
New Revision: 1032118

URL: http://svn.apache.org/viewvc?rev=1032118&view=rev
Log:
WICKET-3144 Extra client-side scripting before closing modalwindow

Add the possibility to modify the javascript used for closing the modal window (i.e. provide custom IAjaxCallDecorator for CloseButtonBehavior)

Modified:
    wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java

Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java?rev=1032118&r1=1032117&r2=1032118&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java Sat Nov  6 17:28:55 2010
@@ -149,7 +149,7 @@ public class ModalWindow extends Panel
 	private String cookieName;
 	private IModel<String> title = null;
 	private MaskType maskType = MaskType.SEMI_TRANSPARENT;
-	private boolean autoSize = false;	
+	private boolean autoSize = false;
 
 	private PageCreator pageCreator = null;
 	private CloseButtonCallback closeButtonCallback = null;
@@ -249,7 +249,7 @@ public class ModalWindow extends Panel
 
 		add(empty = new WebMarkupContainer(getContentId()));
 
-		add(new CloseButtonBehavior());
+		add(newCloseButtonBehavior());
 		add(new WindowClosedBehavior());
 	}
 
@@ -911,12 +911,16 @@ public class ModalWindow extends Panel
 	/**
 	 * @author Matej Knopp
 	 */
-	private class CloseButtonBehavior extends AbstractDefaultAjaxBehavior
+	protected class CloseButtonBehavior extends AbstractDefaultAjaxBehavior
 	{
 		private static final long serialVersionUID = 1L;
 
+		public CloseButtonBehavior()
+		{
+		}
+
 		@Override
-		protected void respond(AjaxRequestTarget target)
+		protected final void respond(AjaxRequestTarget target)
 		{
 			if (closeButtonCallback == null ||
 				closeButtonCallback.onCloseButtonClicked(target) == true)
@@ -938,7 +942,7 @@ public class ModalWindow extends Panel
 		 * @see org.apache.wicket.ajax.AbstractDefaultAjaxBehavior#getCallbackScript()
 		 */
 		@Override
-		protected CharSequence getCallbackScript()
+		protected final CharSequence getCallbackScript()
 		{
 			return super.getCallbackScript();
 		}
@@ -1051,7 +1055,7 @@ public class ModalWindow extends Panel
 		{
 			buffer.append("settings.mask=\"semi-transparent\";\n");
 		}
-		
+
 		appendAssignment(buffer, "settings.autoSize", autoSize);
 
 
@@ -1171,4 +1175,13 @@ public class ModalWindow extends Panel
 		return autoSize;
 	}
 
+	/**
+	 * Gives the possibility to provide custom {@link IAjaxCallDecorator}
+	 * 
+	 * @return the behavior that should be used for the window close button
+	 */
+	protected CloseButtonBehavior newCloseButtonBehavior()
+	{
+		return new CloseButtonBehavior();
+	}
 }