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/07/10 18:09:23 UTC

svn commit: r793007 - in /labs/magma/trunk/foundation-website/src/main: java/org/apache/magma/website/ java/org/apache/magma/website/templating/ java/org/apache/magma/website/utils/ resources/org/apache/magma/website/

Author: simoneg
Date: Fri Jul 10 16:09:23 2009
New Revision: 793007

URL: http://svn.apache.org/viewvc?rev=793007&view=rev
Log:
LABS-386 : Nice exception display

Added:
    labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/NiceExceptionDisplay.aj
    labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/ExceptionProducer.java
    labs/magma/trunk/foundation-website/src/main/resources/org/apache/magma/website/exceptions.css
Modified:
    labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/templating/DefaultTemplate.java

Added: labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/NiceExceptionDisplay.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/NiceExceptionDisplay.aj?rev=793007&view=auto
==============================================================================
--- labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/NiceExceptionDisplay.aj (added)
+++ labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/NiceExceptionDisplay.aj Fri Jul 10 16:09:23 2009
@@ -0,0 +1,50 @@
+package org.apache.magma.website;
+
+import org.apache.magma.website.templating.Template;
+import org.apache.magma.website.utils.ExceptionProducer;
+
+public privileged aspect NiceExceptionDisplay {
+
+	//declare precedence : *, NiceExceptionDisplay;
+	
+	HtmlProducer around() : 
+			execution(public HtmlProducer+ WebHandler+.do*(..)) ||
+			execution(public HtmlProducer+ WebHandler+.hidden*(..))
+		{
+		
+		//try {
+			return proceed();
+		//} catch (Throwable t) {
+		//	ExceptionProducer ep = new ExceptionProducer();
+		//	ep.setException(t);
+		//	return ep;
+		//}
+		
+	}
+	/*
+    Producer around() :
+		execution(protected Producer Dispatch.findProducer(..))
+		{
+		//try {
+		return proceed();
+	//} catch (Throwable t) {
+	//	ExceptionProducer ep = new ExceptionProducer();
+	//	ep.setException(t);
+	//	return ep;
+	//}
+	    	
+	}
+	*/
+    	
+	void around(Template tpl) :
+		execution(public void Template+.layout*()) && this(tpl)
+	{
+		//try {
+			proceed(tpl);
+		//} catch (Throwable t) {
+		//	ExceptionProducer ep = new ExceptionProducer();
+		//	ep.setException(t);
+		//	tpl.always(ep);
+		//}
+	}
+}

Modified: labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/templating/DefaultTemplate.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/templating/DefaultTemplate.java?rev=793007&r1=793006&r2=793007&view=diff
==============================================================================
--- labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/templating/DefaultTemplate.java (original)
+++ labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/templating/DefaultTemplate.java Fri Jul 10 16:09:23 2009
@@ -18,8 +18,10 @@
 
 import java.io.IOException;
 import java.io.OutputStreamWriter;
+import java.lang.reflect.Method;
 
 import org.apache.magma.website.HtmlProducer;
+import org.apache.magma.website.WebHandler;
 
 
 public class DefaultTemplate extends Template {
@@ -54,8 +56,25 @@
 	@Override
 	protected void openWrapper(String zone, HtmlProducer producer, OutputStreamWriter osw) throws IOException {
 		String clazz = "";
-		if (zone.equals("Right") || zone.equals("Left")) clazz = " boxes";
-		osw.write("<div id=\"" + producer.getCreatingHandler().getClass().getSimpleName() + "-" + producer.getCreatingMethod().getName() + "\" class=\"" + producer.getCreatingHandler().getClass().getSimpleName() + clazz + "\">");
+		String generatedId = "";
+		WebHandler handler = producer.getCreatingHandler();
+		if (handler != null) {
+			generatedId += handler.getClass().getSimpleName() + "-";
+			clazz += handler.getClass().getSimpleName() + " ";
+		}
+		Method method = producer.getCreatingMethod();
+		if (method != null) {
+			generatedId += method.getName();
+		} else if (handler != null) {
+			generatedId = generatedId.substring(0, generatedId.length() - 1);
+		}
+		
+		
+		if (zone.equals("Right") || zone.equals("Left")) clazz += "boxes ";
+		
+		
+		
+		osw.write("<div id=\"" + generatedId + "\" class=\"" + clazz + "\">");
 		osw.write("<div>");
 	}
 	

Added: labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/ExceptionProducer.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/ExceptionProducer.java?rev=793007&view=auto
==============================================================================
--- labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/ExceptionProducer.java (added)
+++ labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/ExceptionProducer.java Fri Jul 10 16:09:23 2009
@@ -0,0 +1,54 @@
+package org.apache.magma.website.utils;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.Writer;
+
+import org.apache.magma.basics.LocalizableString;
+import org.apache.magma.settings.Settings;
+import org.apache.magma.website.Head;
+import org.apache.magma.website.HtmlProducer;
+
+public class ExceptionProducer extends HtmlProducer {
+
+	private Throwable exception = null;
+	
+	@Override
+	public void head(Head head) {
+		head.addCss("magma:/common/exceptions.css");
+	}
+
+	@Override
+	public void produce(Writer writer) throws IOException {
+		writer.append("<div class=\"MagmaException\">");
+		writer.append("<h3>");
+		writer.append(new LocalizableString("An error has occurred"));
+		writer.append("</h3>");
+		writer.append("<p>");
+		writer.append(new LocalizableString("We are working to resolve the problem you encountered."));
+		writer.append("</p>");
+		if (Settings.isDeveloperEnv()) {
+			writer.append("<div class=\"stacktrace\">\n");			
+		} else {
+			writer.append("<!--\n");
+		}
+		PrintWriter pw = new PrintWriter(writer);
+		exception.printStackTrace(pw);
+		pw.flush();
+		if (Settings.isDeveloperEnv()) {
+			writer.append("\n</div>");			
+		} else {
+			writer.append("\n-->");
+		}		
+		writer.append("</div>");			
+	}
+
+	public Throwable getException() {
+		return exception;
+	}
+
+	public void setException(Throwable exc) {
+		this.exception = exc;
+	}
+
+}

Added: labs/magma/trunk/foundation-website/src/main/resources/org/apache/magma/website/exceptions.css
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/resources/org/apache/magma/website/exceptions.css?rev=793007&view=auto
==============================================================================
--- labs/magma/trunk/foundation-website/src/main/resources/org/apache/magma/website/exceptions.css (added)
+++ labs/magma/trunk/foundation-website/src/main/resources/org/apache/magma/website/exceptions.css Fri Jul 10 16:09:23 2009
@@ -0,0 +1,24 @@
+.MagmaException {
+	color: black;
+	border: 1px solid red;
+	background: #FFEEEE;
+}
+.MagmaException .stacktrace {
+	height: 1em;
+	overflow: hidden;
+	font-size: x-small;
+	border: 1px solid gray;
+	text-align: left;
+	text-decoration: none;
+	color: black;
+}
+
+.MagmaException .stacktrace:hover {
+	position: absolute;
+	background: #FFEEEE;
+	font-size: x-small;
+	white-space: pre;
+	z-index: 3000;
+	height: auto;
+	width: auto;
+}
\ 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