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