You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2009/12/09 21:32:18 UTC
svn commit: r888951 - in /labs/magma/trunk/website-file: ./ src/ src/main/
src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/magma/ src/main/java/org/apache/magma/website/
src/main/java/org/apache/magma/website/htmlpi...
Author: simoneg
Date: Wed Dec 9 20:32:17 2009
New Revision: 888951
URL: http://svn.apache.org/viewvc?rev=888951&view=rev
Log:
LABS-380 : html support for meta type for uploaded files
Added:
labs/magma/trunk/website-file/pom.xml
labs/magma/trunk/website-file/src/
labs/magma/trunk/website-file/src/main/
labs/magma/trunk/website-file/src/main/java/
labs/magma/trunk/website-file/src/main/java/org/
labs/magma/trunk/website-file/src/main/java/org/apache/
labs/magma/trunk/website-file/src/main/java/org/apache/magma/
labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/
labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/
labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/FileWebHandler.java
labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/InstallFileWebHandler.aj
labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/MagFileHtml.java
labs/magma/trunk/website-file/src/main/resources/
labs/magma/trunk/website-file/src/main/resources/META-INF/
labs/magma/trunk/website-file/src/main/resources/META-INF/magma.default.properties
labs/magma/trunk/website-file/src/main/resources/org/
labs/magma/trunk/website-file/src/main/resources/org/apache/
labs/magma/trunk/website-file/src/main/resources/org/apache/magma/
labs/magma/trunk/website-file/src/main/resources/org/apache/magma/website/
labs/magma/trunk/website-file/src/main/resources/org/apache/magma/website/magfile.css
labs/magma/trunk/website-file/src/test/
labs/magma/trunk/website-file/src/test/java/
labs/magma/trunk/website-file/src/test/resources/
Added: labs/magma/trunk/website-file/pom.xml
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-file/pom.xml?rev=888951&view=auto
==============================================================================
--- labs/magma/trunk/website-file/pom.xml (added)
+++ labs/magma/trunk/website-file/pom.xml Wed Dec 9 20:32:17 2009
@@ -0,0 +1,25 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>magma-parent</artifactId>
+ <groupId>org.apache.magma</groupId>
+ <version>3</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>website-file</artifactId>
+ <name>Magma Website File support</name>
+ <version>0.0.3-SNAPSHOT</version>
+ <packaging>magma</packaging>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>beans-file</artifactId>
+ <version>0.0.3-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>foundation-website</artifactId>
+ <version>0.0.3-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+</project>
Added: labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/FileWebHandler.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/FileWebHandler.java?rev=888951&view=auto
==============================================================================
--- labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/FileWebHandler.java (added)
+++ labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/FileWebHandler.java Wed Dec 9 20:32:17 2009
@@ -0,0 +1,15 @@
+package org.apache.magma.website.htmlpieces;
+
+import org.apache.magma.beans.MagFile;
+import org.apache.magma.website.Producer;
+import org.apache.magma.website.StreamProducer;
+import org.apache.magma.website.WebHandler;
+
+public class FileWebHandler extends WebHandler {
+
+ public Producer doDownload(String filespec) {
+ MagFile mf = new MagFile(filespec);
+ return new StreamProducer(mf.getOriginalName(), mf.getInputStream());
+ }
+
+}
Added: labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/InstallFileWebHandler.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/InstallFileWebHandler.aj?rev=888951&view=auto
==============================================================================
--- labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/InstallFileWebHandler.aj (added)
+++ labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/InstallFileWebHandler.aj Wed Dec 9 20:32:17 2009
@@ -0,0 +1,11 @@
+package org.apache.magma.website.htmlpieces;
+
+import org.apache.magma.website.RootWebHandler;
+
+public aspect InstallFileWebHandler {
+
+ public FileWebHandler RootWebHandler.handleFiles() {
+ return new FileWebHandler();
+ }
+
+}
Added: labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/MagFileHtml.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/MagFileHtml.java?rev=888951&view=auto
==============================================================================
--- labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/MagFileHtml.java (added)
+++ labs/magma/trunk/website-file/src/main/java/org/apache/magma/website/htmlpieces/MagFileHtml.java Wed Dec 9 20:32:17 2009
@@ -0,0 +1,81 @@
+package org.apache.magma.website.htmlpieces;
+
+import java.io.File;
+import java.util.Map;
+
+import org.apache.magma.basics.MagmaException;
+import org.apache.magma.beans.MagFile;
+import org.apache.magma.website.Head;
+import org.apache.magma.website.utils.LinkHelper;
+
+public class MagFileHtml implements HtmlOutputPiece<MagFile>, HtmlFormPiece<MagFile>, ParsingHtmlFormPiece<MagFile> {
+
+ private static LinkHelper link = null;
+
+ static {
+ try {
+ link = new LinkHelper(FileWebHandler.class.getMethod("doDownload", String.class));
+ } catch (Exception e) {
+ throw new MagmaException(e, "Error creating link for file download");
+ }
+ }
+
+ public HtmlOutputPiece<MagFile> createFor(Class<? extends MagFile> clazz) {
+ return this;
+ }
+
+ public void head(MagFile value, Head head) {
+ head.addCss("magma:/common/magfile.css");
+ }
+
+ public String output(MagFile value) {
+ return "<a class=\"MagmaFileLink FileType-" + value.getExtension() + "\" href=\"magma:/files/" + link.makeLink((Object)value.getSpec()) + "/" + value.getOriginalName() + "\"><span class=\"MagmaFileName\">" + value.getOriginalName() + "</span> <span class=\"MagmaFileInfo\">" + value.getLength() + " bytes</span></a>";
+ }
+
+ public boolean outputs(Class<?> clazz) {
+ return MagFile.class.isAssignableFrom(clazz);
+ }
+
+ public String createFormInput(MagFile value, String id) {
+ StringBuilder sb = new StringBuilder();
+ if (value != null) {
+ sb.append(output(value));
+ }
+ sb.append("<br/><input type=\"file\" name=\"" + id + "\" id=\"" + id + "\"/>");
+ if (value.getTemporaryFile() != null) {
+ sb.append("<input type=\"hidden\" name=\"" + id + "_temp\" id=\"" + id + "_temp\" value=\"" + value.getTemporaryFile().getAbsolutePath() + "\"/>");
+ }
+ return sb.toString();
+ }
+
+ public void formHead(MagFile value, String id) {
+ }
+
+ public boolean handles(Class<?> clazz) {
+ return outputs(clazz);
+ }
+
+ public MagFile parse(Map<String, String> binding, String id, MagFile previous) {
+ String string = binding.get(id);
+ if (string == null || string.length() == 0) {
+ string = binding.get(id + "_temp");
+ }
+ if (string != null && string.length() > 0) {
+ if (string.startsWith("FILE ")) {
+ string = string.substring(5);
+ String[] split = string.split(":");
+ File temp = new File(split[1]);
+ MagFile mf = new MagFile(temp, split[0]);
+ return mf;
+ } else {
+ throw new MagmaException("Found non-file input in input {0}", id);
+ }
+ }
+ return previous;
+ }
+
+ public HtmlFormPiece<MagFile> createInputFor(Class<? extends MagFile> clazz) {
+ return this;
+ }
+
+}
Added: labs/magma/trunk/website-file/src/main/resources/META-INF/magma.default.properties
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-file/src/main/resources/META-INF/magma.default.properties?rev=888951&view=auto
==============================================================================
--- labs/magma/trunk/website-file/src/main/resources/META-INF/magma.default.properties (added)
+++ labs/magma/trunk/website-file/src/main/resources/META-INF/magma.default.properties Wed Dec 9 20:32:17 2009
@@ -0,0 +1,16 @@
+#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.
+org.apache.magma.website.htmlpieces.HtmlFormPiece.~file=org.apache.magma.website.htmlpieces.MagFileHtml
+org.apache.magma.website.htmlpieces.HtmlOutputPiece.~file=org.apache.magma.website.htmlpieces.MagFileHtml
\ No newline at end of file
Added: labs/magma/trunk/website-file/src/main/resources/org/apache/magma/website/magfile.css
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-file/src/main/resources/org/apache/magma/website/magfile.css?rev=888951&view=auto
==============================================================================
--- labs/magma/trunk/website-file/src/main/resources/org/apache/magma/website/magfile.css (added)
+++ labs/magma/trunk/website-file/src/main/resources/org/apache/magma/website/magfile.css Wed Dec 9 20:32:17 2009
@@ -0,0 +1,3 @@
+.MagmaFileLink .MagmaFileInfo {
+ font-size: small;
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org