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:36:32 UTC

svn commit: r888957 - in /labs/magma/trunk/website-image: ./ 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/htmlp...

Author: simoneg
Date: Wed Dec  9 20:36:31 2009
New Revision: 888957

URL: http://svn.apache.org/viewvc?rev=888957&view=rev
Log:
LABS-380 : html support for meta type for uploaded images

Added:
    labs/magma/trunk/website-image/pom.xml
    labs/magma/trunk/website-image/src/
    labs/magma/trunk/website-image/src/main/
    labs/magma/trunk/website-image/src/main/java/
    labs/magma/trunk/website-image/src/main/java/org/
    labs/magma/trunk/website-image/src/main/java/org/apache/
    labs/magma/trunk/website-image/src/main/java/org/apache/magma/
    labs/magma/trunk/website-image/src/main/java/org/apache/magma/website/
    labs/magma/trunk/website-image/src/main/java/org/apache/magma/website/htmlpieces/
    labs/magma/trunk/website-image/src/main/java/org/apache/magma/website/htmlpieces/MagImageHtml.java
    labs/magma/trunk/website-image/src/main/resources/
    labs/magma/trunk/website-image/src/main/resources/META-INF/
    labs/magma/trunk/website-image/src/main/resources/META-INF/magma.default.properties
    labs/magma/trunk/website-image/src/test/
    labs/magma/trunk/website-image/src/test/java/
    labs/magma/trunk/website-image/src/test/resources/

Added: labs/magma/trunk/website-image/pom.xml
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-image/pom.xml?rev=888957&view=auto
==============================================================================
--- labs/magma/trunk/website-image/pom.xml (added)
+++ labs/magma/trunk/website-image/pom.xml Wed Dec  9 20:36:31 2009
@@ -0,0 +1,30 @@
+<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-image</artifactId>
+  <name>Magma Website Uploaded Image support</name>
+  <version>0.0.3-SNAPSHOT</version>
+  <packaging>magma</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.magma</groupId>
+      <artifactId>beans-image</artifactId>
+      <version>0.0.3-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.magma</groupId>
+      <artifactId>website-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-image/src/main/java/org/apache/magma/website/htmlpieces/MagImageHtml.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-image/src/main/java/org/apache/magma/website/htmlpieces/MagImageHtml.java?rev=888957&view=auto
==============================================================================
--- labs/magma/trunk/website-image/src/main/java/org/apache/magma/website/htmlpieces/MagImageHtml.java (added)
+++ labs/magma/trunk/website-image/src/main/java/org/apache/magma/website/htmlpieces/MagImageHtml.java Wed Dec  9 20:36:31 2009
@@ -0,0 +1,82 @@
+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.MagImage;
+import org.apache.magma.website.Head;
+import org.apache.magma.website.utils.LinkHelper;
+
+public class MagImageHtml implements HtmlOutputPiece<MagImage>, HtmlFormPiece<MagImage>, ParsingHtmlFormPiece<MagImage> {
+
+	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<MagImage> createFor(Class<? extends MagImage> clazz) {
+		return this;
+	}
+
+	public void head(MagImage value, Head head) {
+	}
+
+	public String output(MagImage value) {
+		return "<img class=\"MagmaImage\" src=\"magma:/files/" + link.makeLink((Object)value.getSpec()) + "/" + value.getOriginalName() + "\"/>";
+	}
+
+	public String createFormInput(MagImage 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 boolean outputs(Class<?> clazz) {
+		return MagImage.class.isAssignableFrom(clazz);
+	}
+
+	public void formHead(MagImage value, String id) {
+	}
+
+	public boolean handles(Class<?> clazz) {
+		return outputs(clazz);
+	}
+
+	public MagImage parse(Map<String, String> binding, String id, MagImage 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]);
+				MagImage mf = new MagImage(temp, split[0]);
+				return mf;
+			} else {
+				throw new MagmaException("Found non-file input in input {0}", id);
+			}
+		}
+		return previous;
+	}
+
+	public HtmlFormPiece<MagImage> createInputFor(Class<? extends MagImage> clazz) {
+		return this;
+	}
+
+}
+

Added: labs/magma/trunk/website-image/src/main/resources/META-INF/magma.default.properties
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-image/src/main/resources/META-INF/magma.default.properties?rev=888957&view=auto
==============================================================================
--- labs/magma/trunk/website-image/src/main/resources/META-INF/magma.default.properties (added)
+++ labs/magma/trunk/website-image/src/main/resources/META-INF/magma.default.properties Wed Dec  9 20:36:31 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.~aimage=org.apache.magma.website.htmlpieces.MagImageHtml
+org.apache.magma.website.htmlpieces.HtmlOutputPiece.~aimage=org.apache.magma.website.htmlpieces.MagImageHtml
\ 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