Author: mgrigorov
Date: Sat Nov  6 17:46:37 2010
New Revision: 1032124

URL: http://svn.apache.org/viewvc?rev=1032124&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)

merge r1032118 from trunk


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

Modified: 
wicket/branches/wicket-1.4.x/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java?rev=1032124&r1=1032123&r2=1032124&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/ModalWindow.java
 Sat Nov  6 17:46:37 2010
@@ -257,7 +257,7 @@ public class ModalWindow extends Panel
 
                add(empty = new WebMarkupContainer(getContentId()));
 
-               add(new CloseButtonBehavior());
+               add(newCloseButtonBehavior());
                add(new WindowClosedBehavior());
 
                
add(JavascriptPackageResource.getHeaderContribution(JAVASCRIPT));
@@ -974,12 +974,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)
@@ -1001,7 +1005,7 @@ public class ModalWindow extends Panel
                 * @see 
org.apache.wicket.ajax.AbstractDefaultAjaxBehavior#getCallbackScript()
                 */
                @Override
-               protected CharSequence getCallbackScript()
+               protected final CharSequence getCallbackScript()
                {
                        return super.getCallbackScript();
                }
@@ -1217,4 +1221,14 @@ public class ModalWindow extends Panel
                        title.detach();
                }
        }
+
+       /**
+        * 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();
+       }
 }


Reply via email to