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]