Author: solomax
Date: Wed Oct 24 10:44:54 2012
New Revision: 1401615

URL: http://svn.apache.org/viewvc?rev=1401615&view=rev
Log:
Wicket: wicket is updated to 6.2.0; AjaxDownload is restored

Added:
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/AjaxDownload.java
Modified:
    incubator/openmeetings/trunk/singlewebapp/ivy.xml
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/backup/BackupPanel.java

Modified: incubator/openmeetings/trunk/singlewebapp/ivy.xml
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/ivy.xml?rev=1401615&r1=1401614&r2=1401615&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/ivy.xml (original)
+++ incubator/openmeetings/trunk/singlewebapp/ivy.xml Wed Oct 24 10:44:54 2012
@@ -216,25 +216,25 @@
                <dependency org="org.simpleframework" name="simple-xml" 
rev="2.6.6" conf="openmeetings->*" transitive="false">
                        <include type="jar" />
                </dependency>
-               <dependency org="org.apache.wicket" name="wicket-request" 
rev="6.0.0" conf="openmeetings->*" transitive="false">
+               <dependency org="org.apache.wicket" name="wicket-request" 
rev="6.2.0" conf="openmeetings->*" transitive="false">
                        <include type="jar" />
                </dependency>
-               <dependency org="org.apache.wicket" name="wicket-util" 
rev="6.0.0" conf="openmeetings->*" transitive="false">
+               <dependency org="org.apache.wicket" name="wicket-util" 
rev="6.2.0" conf="openmeetings->*" transitive="false">
                        <include type="jar" />
                </dependency>
-               <dependency org="org.apache.wicket" name="wicket-core" 
rev="6.0.0" conf="openmeetings->*" transitive="false">
+               <dependency org="org.apache.wicket" name="wicket-core" 
rev="6.2.0" conf="openmeetings->*" transitive="false">
                        <include type="jar" />
                </dependency>
-               <dependency org="org.apache.wicket" name="wicket-auth-roles" 
rev="6.0.0" conf="openmeetings->*" transitive="false">
+               <dependency org="org.apache.wicket" name="wicket-auth-roles" 
rev="6.2.0" conf="openmeetings->*" transitive="false">
                        <include type="jar" />
                </dependency>
-               <dependency org="org.apache.wicket" name="wicket-ioc" 
rev="6.0.0" conf="openmeetings->*" transitive="false">
+               <dependency org="org.apache.wicket" name="wicket-ioc" 
rev="6.2.0" conf="openmeetings->*" transitive="false">
                        <include type="jar" />
                </dependency>
-               <dependency org="org.apache.wicket" name="wicket-extensions" 
rev="6.0.0" conf="openmeetings->*" transitive="false">
+               <dependency org="org.apache.wicket" name="wicket-extensions" 
rev="6.2.0" conf="openmeetings->*" transitive="false">
                        <include type="jar" />
                </dependency>
-               <dependency org="org.apache.wicket" name="wicket-datetime" 
rev="6.0.0" conf="openmeetings->*" transitive="false">
+               <dependency org="org.apache.wicket" name="wicket-datetime" 
rev="6.2.0" conf="openmeetings->*" transitive="false">
                        <include type="jar" />
                </dependency>
                

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/backup/BackupPanel.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/backup/BackupPanel.java?rev=1401615&r1=1401614&r2=1401615&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/backup/BackupPanel.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/backup/BackupPanel.java
 Wed Oct 24 10:44:54 2012
@@ -31,6 +31,7 @@ import org.apache.openmeetings.utils.OmF
 import org.apache.openmeetings.utils.math.CalendarPatterns;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.components.admin.AdminPanel;
+import org.apache.openmeetings.web.util.AjaxDownload;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import 
org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar;
@@ -94,6 +95,9 @@ public class BackupPanel extends AdminPa
                        
setMaxSize(Bytes.bytes(ImportHelper.getMaxUploadSize(Application
                                        .getBean(ConfigurationDaoImpl.class))));
 
+                       // Add a component to download a file without page 
refresh
+                       final AjaxDownload download = new AjaxDownload();
+                       add(download);
                        // add an download button
                        add(new AjaxButton("download", this) {
                                private static final long serialVersionUID = 
839803820502260006L;
@@ -116,10 +120,13 @@ public class BackupPanel extends AdminPa
                                                                
includeFilesInBackup.getConvertedInput()
                                                                                
.booleanValue());
 
+                                               
/*download.setFileName(backupFile.getName());
+                                               download.setResourceStream(new 
FileResourceStream(backupFile));
+                                               download.initiate(target);*/
                                                ResourceStreamRequestHandler 
handler
                                                        = new 
ResourceStreamRequestHandler(new FileResourceStream(backupFile), 
backupFile.getName());
                                                
handler.setContentDisposition(ContentDisposition.ATTACHMENT);
-                                       
+                               
                                                
getRequestCycle().scheduleRequestHandlerAfterCurrent(handler);
                                        } catch (Exception e) {
                                                log.error("Exception on panel 
backup download ", e);

Added: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/AjaxDownload.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/AjaxDownload.java?rev=1401615&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/AjaxDownload.java
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/AjaxDownload.java
 Wed Oct 24 10:44:54 2012
@@ -0,0 +1,99 @@
+/*
+ * 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.openmeetings.web.util;
+
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.behavior.AbstractAjaxBehavior;
+import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;
+import org.apache.wicket.request.resource.ContentDisposition;
+import org.apache.wicket.util.resource.IResourceStream;
+
+/**
+ * see: <a 
href="https://cwiki.apache.org/confluence/display/WICKET/AJAX+update+and+file+download+in+one+blow";>
+ * 
https://cwiki.apache.org/confluence/display/WICKET/AJAX+update+and+file+download+in+one+blow</href>
+ * 
+ */
+public class AjaxDownload extends AbstractAjaxBehavior {
+       private static final long serialVersionUID = 1L;
+
+       private boolean addAntiCache;
+
+       private String fileName;
+       private IResourceStream resourceStream;
+
+       public AjaxDownload() {
+               this(true);
+       }
+
+       public AjaxDownload(boolean addAntiCache) {
+               super();
+               this.addAntiCache = addAntiCache;
+       }
+
+       /**
+        * Call this method to initiate the download.
+        */
+       public void initiate(AjaxRequestTarget target) {
+               String url = getCallbackUrl().toString();
+
+               if (addAntiCache) {
+                       url = url + (url.contains("?") ? "&" : "?");
+                       url = url + "antiCache=" + System.currentTimeMillis();
+               }
+
+               // the timeout is needed to let Wicket release the channel
+               target.appendJavaScript("setTimeout(\"window.location.href='" + 
url
+                               + "'\", 100);");
+       }
+
+       public void onRequest() {
+               ResourceStreamRequestHandler handler = new 
ResourceStreamRequestHandler(
+                               getResourceStream(), getFileName());
+               handler.setContentDisposition(ContentDisposition.ATTACHMENT);
+               
getComponent().getRequestCycle().scheduleRequestHandlerAfterCurrent(
+                               handler);
+       }
+
+       /**
+        * Override this method for a file name which will let the browser 
prompt
+        * with a save/open dialog.
+        * 
+        * @see ResourceStreamRequestTarget#getFileName()
+        */
+       protected String getFileName() {
+               return this.fileName;
+       }
+
+       public void setFileName(String fileName) {
+               this.fileName = fileName;
+       }
+
+       /**
+        * Hook method providing the actual resource stream.
+        */
+       protected IResourceStream getResourceStream() {
+               return resourceStream;
+
+       }
+
+       public void setResourceStream(IResourceStream resourceStream) {
+               this.resourceStream = resourceStream;
+       }
+
+}


Reply via email to