You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2012/10/24 12:44:54 UTC

svn commit: r1401615 - in /incubator/openmeetings/trunk/singlewebapp: ivy.xml src/org/apache/openmeetings/web/components/admin/backup/BackupPanel.java src/org/apache/openmeetings/web/util/ src/org/apache/openmeetings/web/util/AjaxDownload.java

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;
+	}
+
+}