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 2008/11/28 14:24:30 UTC

svn commit: r721483 - in /labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin: AdminWebHandler.java UseAdminTemplate.aj

Author: simoneg
Date: Fri Nov 28 05:24:30 2008
New Revision: 721483

URL: http://svn.apache.org/viewvc?rev=721483&view=rev
Log:
Tricky solution for missing menu elements

Modified:
    labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin/AdminWebHandler.java
    labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin/UseAdminTemplate.aj

Modified: labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin/AdminWebHandler.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin/AdminWebHandler.java?rev=721483&r1=721482&r2=721483&view=diff
==============================================================================
--- labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin/AdminWebHandler.java (original)
+++ labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin/AdminWebHandler.java Fri Nov 28 05:24:30 2008
@@ -155,8 +155,14 @@
 	
 	public HtmlProducer doSideBox(Object bean) {
 		if (bean == null) return null;
-		List<AdminAction> beanactions = filterActions(scanFor(bean.getClass()), true);
-		return new AdminSideMenuProducer(beanactions, bean);
+		if (bean instanceof Class) {
+			Class<?> clzz = (Class<?>) bean;
+			List<AdminAction> classactions = filterActions(scanFor(clzz), false);
+			return new AdminSideMenuProducer(classactions, clzz);
+		} else {
+			List<AdminAction> beanactions = filterActions(scanFor(bean.getClass()), true);
+			return new AdminSideMenuProducer(beanactions, bean);
+		}
 	}
 	
 }

Modified: labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin/UseAdminTemplate.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin/UseAdminTemplate.aj?rev=721483&r1=721482&r2=721483&view=diff
==============================================================================
--- labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin/UseAdminTemplate.aj (original)
+++ labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin/UseAdminTemplate.aj Fri Nov 28 05:24:30 2008
@@ -1,8 +1,11 @@
 package org.apache.magma.website.admin;
 
+import java.lang.reflect.Method;
+
 import org.apache.magma.website.WebHandler;
 import org.apache.magma.website.HandlerSetup;
 import org.apache.magma.website.Templatable;
+import org.aspectj.lang.reflect.MethodSignature;
 
 public aspect UseAdminTemplate percflow(HandlerSetup.inRequest()) {
 
@@ -10,6 +13,7 @@
 
 	private WebHandler subHandler = null;
 	private Object bean = null;
+	private Class<?> clazz = null;
 	
     after(WebHandler h) returning (Templatable t) : execution(* AdminWebHandler+.*(..)) && (HandlerSetup.doMethod(h) || HandlerSetup.subHandle(h) || HandlerSetup.hiddenMethod(h)) {
     	if (t == null) return;
@@ -17,6 +21,13 @@
     	if (t instanceof WebHandler) {
     		subHandler = (WebHandler)t;
     	}
+    	try {
+	    	Method meth = ((MethodSignature)thisJoinPointStaticPart.getSignature()).getMethod();
+	    	Manages man = meth.getAnnotation(Manages.class);
+	    	if (man != null) {
+	    		clazz = man.value();
+	    	}
+    	} catch (Throwable tr) {}
     }
     
     before(WebHandler h, Object bean) : execution(* WebHandler+.*(..)) && args(bean) && (HandlerSetup.doMethod(h) || HandlerSetup.subHandle(h) || HandlerSetup.hiddenMethod(h)) {
@@ -26,10 +37,12 @@
     }
     
     Object around(Object bean) : execution(* AdminWebHandler.doSideBox(..)) && args(bean) {
-    	if (this.bean == null) {
-    		return proceed(bean);
-    	} else {
+    	if (this.bean != null) {
     		return proceed(this.bean);
+    	} else if (this.clazz != null) {
+    		return proceed(this.clazz);
+    	} else {
+    		return proceed(bean);
     	}
     }
     



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org