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