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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to