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/10/21 23:51:19 UTC

svn commit: r706789 - in /labs/magma/trunk/website-administration-inline/src/main: java/org/apache/magma/website/admin/ resources/org/apache/magma/website/admin/

Author: simoneg
Date: Tue Oct 21 14:51:19 2008
New Revision: 706789

URL: http://svn.apache.org/viewvc?rev=706789&view=rev
Log:
Fixes some small bugs, makes it more customizable

Modified:
    labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/AddInlineMenuMethod.aj
    labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/AddMenuToDefaultTemplate.aj
    labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InlineMenuHelper.java
    labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InlinedAdminTemplate.java
    labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InterceptWebMethods.aj
    labs/magma/trunk/website-administration-inline/src/main/resources/org/apache/magma/website/admin/inlineMenu.css
    labs/magma/trunk/website-administration-inline/src/main/resources/org/apache/magma/website/admin/inlineMenu.js
    labs/magma/trunk/website-administration-inline/src/main/resources/org/apache/magma/website/admin/inlinedAdminTemplate.css

Modified: labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/AddInlineMenuMethod.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/AddInlineMenuMethod.aj?rev=706789&r1=706788&r2=706789&view=diff
==============================================================================
--- labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/AddInlineMenuMethod.aj (original)
+++ labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/AddInlineMenuMethod.aj Tue Oct 21 14:51:19 2008
@@ -1,15 +1,28 @@
 package org.apache.magma.website.admin;
 
+import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
+
 import org.apache.magma.website.admin.AdminWebHandler;
 import java.util.Map;
 import org.apache.magma.website.HtmlProducer;
 import org.apache.magma.website.RootWebHandler;
+import org.apache.magma.website.WebHandler;
 
 public aspect AddInlineMenuMethod {
 
-	public HtmlProducer AdminWebHandler.hiddenInlineMenu(Map<Object, List<AdminAction>> founds) {
-		return new InlineMenuProducer(founds);
+	public HtmlProducer AdminWebHandler.hiddenInlineMenu(Map<Object, Set<AdminAction>> founds) {
+		Map<Object, List<AdminAction>> filteredactions = new HashMap<Object, List<AdminAction>>();
+		for (Iterator<Map.Entry<Object, Set<AdminAction>>> iterator = founds.entrySet().iterator(); iterator.hasNext();) {
+			Map.Entry<Object, Set<AdminAction>> obj = iterator.next();
+			List<AdminAction> actions = filterActions(obj.getValue(), true);
+			if (actions.size() > 0) {
+				filteredactions.put(obj.getKey(), actions);
+			}		
+		}
+		return new InlineMenuProducer(filteredactions);			
 	}
 	
 	public AdminWebHandler RootWebHandler.handleInlineAdministration() {

Modified: labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/AddMenuToDefaultTemplate.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/AddMenuToDefaultTemplate.aj?rev=706789&r1=706788&r2=706789&view=diff
==============================================================================
--- labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/AddMenuToDefaultTemplate.aj (original)
+++ labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/AddMenuToDefaultTemplate.aj Tue Oct 21 14:51:19 2008
@@ -1,5 +1,6 @@
 package org.apache.magma.website.admin;
 
+import org.apache.magma.website.RootWebHandler;
 import org.apache.magma.website.templating.DefaultTemplate;
 import org.apache.magma.website.templating.Template;
 
@@ -7,9 +8,11 @@
 
 	after(Template tpl) : 
 		execution(void DefaultTemplate.layoutFooter()) && within(DefaultTemplate)
-		&& this(tpl)
-		&& if(AdminWebHandler.isAdministrator()) {
-		tpl.always(tpl.root().handleAdministration().doMenu());
+		&& this(tpl) {
+		AdminWebHandler awe = RootWebHandler.getInstance().handleAdministration();
+		if (awe.isAdministrator()) {
+			tpl.always(awe.doMenu());
+		}
 	}
 	
 }

Modified: labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InlineMenuHelper.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InlineMenuHelper.java?rev=706789&r1=706788&r2=706789&view=diff
==============================================================================
--- labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InlineMenuHelper.java (original)
+++ labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InlineMenuHelper.java Tue Oct 21 14:51:19 2008
@@ -6,9 +6,12 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.magma.website.HtmlProducer;
+import org.apache.magma.website.WebHandler;
+
 public class InlineMenuHelper {
 
-	public static void findActions(Iterable<Object> args, Map<Object, List<AdminAction>> founds) {
+	public static void findActions(Iterable<Object> args, Map<Object, Set<AdminAction>> founds) {
 		for (Object arg : args) {
 			if (arg == null) continue;
 			if (arg instanceof Collection) {
@@ -19,7 +22,7 @@
 		}		
 	}
 
-	public static void findActionsForCollection(Collection<?> arg, Map<Object, List<AdminAction>> founds) {
+	public static void findActionsForCollection(Collection<?> arg, Map<Object, Set<AdminAction>> founds) {
 		Class<?> bound = null;
 		int i = 0;
 		for (Object content : arg) {
@@ -37,22 +40,21 @@
 		if (bound != null) {
 			Set<AdminAction> scanFor = AdminWebHandler.scanFor(bound);
 			if (scanFor != null && scanFor.size() > 0) {
-				List<AdminAction> actions = AdminWebHandler.filterActions(scanFor, false);
-				if (actions.size() > 0) {
-					founds.put(bound, actions);
-				}
+				founds.put(bound, scanFor);
 			}			
 		}
 	}
 
-	public static void findActions(Object bean, Map<Object, List<AdminAction>> founds) {
+	public static void findActions(Object bean, Map<Object, Set<AdminAction>> founds) {
 		Set<AdminAction> scanFor = AdminWebHandler.scanFor(bean.getClass());
 		if (scanFor != null && scanFor.size() > 0) {
-			List<AdminAction> actions = AdminWebHandler.filterActions(scanFor, true);
-			if (actions.size() > 0) {
-				founds.put(bean, actions);
-			}
+			founds.put(bean, scanFor);
 		}
 	}
+	
+	public static boolean isFromAdmin(HtmlProducer producer) {
+		return producer.isFrom(AdminWebHandler.class);
+	}
+
 
 }
\ No newline at end of file

Modified: labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InlinedAdminTemplate.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InlinedAdminTemplate.java?rev=706789&r1=706788&r2=706789&view=diff
==============================================================================
--- labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InlinedAdminTemplate.java (original)
+++ labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InlinedAdminTemplate.java Tue Oct 21 14:51:19 2008
@@ -6,4 +6,9 @@
 		super.fileName = "inlinedAdminTemplate.html";
 	}
 	
+	
+	@Override
+	public void layoutRight() {
+		always(root().handleInlineAdministration().doSideBox(null));
+	}
 }

Modified: labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InterceptWebMethods.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InterceptWebMethods.aj?rev=706789&r1=706788&r2=706789&view=diff
==============================================================================
--- labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InterceptWebMethods.aj (original)
+++ labs/magma/trunk/website-administration-inline/src/main/java/org/apache/magma/website/admin/InterceptWebMethods.aj Tue Oct 21 14:51:19 2008
@@ -28,9 +28,11 @@
 		(domethod() || handlemethod())  
 		{
 		Object ret = proceed();
-		if(!AdminWebHandler.isAdministrator()) return ret;
+		AdminWebHandler awe = RootWebHandler.getInstance().handleAdministration();
+		if (!awe.isAdministrator()) return ret;
 		if (ret == null) return ret;
 		if (ret instanceof HtmlProducer) {
+			if (InlineMenuHelper.isFromAdmin((HtmlProducer)ret)) return ret;
 			/*
 			Class<?> c = String.class;
 			if (((HtmlProducer)ret).getBasePath().equals("simone")) return ret;
@@ -39,7 +41,7 @@
 			Object[] args = thisJoinPoint.getArgs();
 			args = args.clone();
 			if (args == null) return ret;
-			Map<Object, List<AdminAction>> founds = new HashMap<Object, List<AdminAction>>();
+			Map<Object, Set<AdminAction>> founds = new HashMap<Object, Set<AdminAction>>();
 			InlineMenuHelper.findActions(Arrays.asList(args), founds);
 			if (ret instanceof ParametrizableProducer) {
 				ProducerParameters params = ((ParametrizableProducer)ret).getParameters();
@@ -47,10 +49,7 @@
 				InlineMenuHelper.findActions(parameters.values(), founds);	
 			}
 			if (founds.size() > 0) {
-				return new CompoundHtmlProducer(
-							(HtmlProducer)ret, 
-							RootWebHandler.getInstance().handleAdministration().hiddenInlineMenu(founds));
-						
+				return new CompoundHtmlProducer((HtmlProducer)ret, awe.hiddenInlineMenu(founds));
 			}
 		}
 		return ret;

Modified: labs/magma/trunk/website-administration-inline/src/main/resources/org/apache/magma/website/admin/inlineMenu.css
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-administration-inline/src/main/resources/org/apache/magma/website/admin/inlineMenu.css?rev=706789&r1=706788&r2=706789&view=diff
==============================================================================
--- labs/magma/trunk/website-administration-inline/src/main/resources/org/apache/magma/website/admin/inlineMenu.css (original)
+++ labs/magma/trunk/website-administration-inline/src/main/resources/org/apache/magma/website/admin/inlineMenu.css Tue Oct 21 14:51:19 2008
@@ -52,9 +52,11 @@
 
 .MagmaAdminLowHilite {
 	background: green;
+	font-size: 1px;
 }
 
 .MagmaAdminStrongHilite {
+	font-size: 1px;
 	background: #99FF99;
 	border: 1px solid #77DD77; 
 }

Modified: labs/magma/trunk/website-administration-inline/src/main/resources/org/apache/magma/website/admin/inlineMenu.js
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-administration-inline/src/main/resources/org/apache/magma/website/admin/inlineMenu.js?rev=706789&r1=706788&r2=706789&view=diff
==============================================================================
--- labs/magma/trunk/website-administration-inline/src/main/resources/org/apache/magma/website/admin/inlineMenu.js (original)
+++ labs/magma/trunk/website-administration-inline/src/main/resources/org/apache/magma/website/admin/inlineMenu.js Tue Oct 21 14:51:19 2008
@@ -22,69 +22,76 @@
 
 function hiliteBoxFor(div, menu) {
 	var hilite = new Array();
+	for (var i = 0; i < 5; i++) {
+		hilite[i] = document.createElement('div');
+	}
+	
+	hilite[4].onclick = function() { display(menu) };
+	hilite[4].onmouseover = function() { bolderHilite(hilite) };
+	
+	for (var i = 0; i < hilite.length; i++) {
+		hilite[i].style.position = "absolute";
+		hilite[i].style.zIndex = "100";
+		document.body.appendChild(hilite[i]);
+	}
+	
+	div.onmouseover = function() { bolderHilite(hilite); };
+
+	reposition(hilite, div);
+	setTimeout(function() { reposition(hilite, div) }, 500);
+	setInterval(function() { reposition(hilite, div) }, 1500);		
+	lighterHilite(hilite);
+	
+	menu.onmouseover = function() { display(menu) };
+	
+	var links = menu.getElementsByTagName("a");
+	for (var i = 0; i < links.length; i++) {
+		links[i].onclick = function() { popup(this.href, div); return false; };
+	} 
+	
+	return hilite;
+}
+
+function reposition(hilite, div) {
 	var pos = findPos(div);
 	
-	var acd = document.createElement("div");
+	var acd = hilite[0];
 	acd.style.left = pos[0] + "px";
 	acd.style.top = pos[1] + "px";
 	acd.style.width = "1px";
 	acd.style.height = div.offsetHeight + "px";
-	hilite[0] = acd;
-	
-	acd = document.createElement("div");
+
+	acd = hilite[1];
 	acd.style.left = pos[0] + "px";
 	acd.style.top = pos[1] + "px";
 	acd.style.width = div.offsetWidth + "px";
 	acd.style.height = "1px";
-	hilite[1] = acd;
 	
-	acd = document.createElement("div");
+	acd = hilite[2];
 	acd.style.left = (pos[0] + div.offsetWidth)  + "px";
 	acd.style.top = pos[1] + "px";
 	acd.style.width = "1px";
 	acd.style.height = div.offsetHeight + "px";
-	hilite[2] = acd;
 		
-	acd = document.createElement("div");
+	acd = hilite[3];
 	acd.style.left = pos[0] + "px";
 	acd.style.top = (pos[1] + div.offsetHeight) + "px";
 	acd.style.width = div.offsetWidth + "px";
 	acd.style.height = "1px";
-	hilite[3] = acd;
 
-	acd = document.createElement("div");
+	acd = hilite[4];
 	acd.style.left = pos[0] + "px";
 	acd.style.top = pos[1] + "px";
 	acd.style.width = "16px";
 	acd.style.height = "16px";
-	hilite[4] = acd;
-	acd.onclick = function() { display(menu) };
-	acd.onmouseover = function() { bolderHilite(hilite) };
-	
-	for (var i = 0; i < hilite.length; i++) {
-		hilite[i].style.position = "absolute";
-		hilite[i].style.zIndex = "100";
-		document.body.appendChild(hilite[i]);
-	}
-	
-	div.onmouseover = function() { bolderHilite(hilite); };
-		
-	lighterHilite(hilite);
-	
-	menu.onmouseover = function() { display(menu) };
-	
-	var links = menu.getElementsByTagName("a");
-	for (var i = 0; i < links.length; i++) {
-		links[i].onclick = function() { popup(this.href, div); return false; };
-	} 
-	
-	return hilite;
 }
 
+
 function lighterHilite(hilite) {
 	for (var i = 0; i < hilite.length; i++) {
 		hilite[i].className = "MagmaAdminLowHilite";
 	}
+	hilite[hilite.length - 1].className += " MagmaAdminContextMenuBox";
 }
 
 function bolderHilite(hilite) {
@@ -93,6 +100,7 @@
 	for (var i = 0; i < hilite.length; i++) {
 		hilite[i].className = "MagmaAdminStrongHilite";
 	}
+	hilite[hilite.length - 1].className += " MagmaAdminContextMenuBox";
 }
 
 function display(div) {

Modified: labs/magma/trunk/website-administration-inline/src/main/resources/org/apache/magma/website/admin/inlinedAdminTemplate.css
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-administration-inline/src/main/resources/org/apache/magma/website/admin/inlinedAdminTemplate.css?rev=706789&r1=706788&r2=706789&view=diff
==============================================================================
--- labs/magma/trunk/website-administration-inline/src/main/resources/org/apache/magma/website/admin/inlinedAdminTemplate.css (original)
+++ labs/magma/trunk/website-administration-inline/src/main/resources/org/apache/magma/website/admin/inlinedAdminTemplate.css Tue Oct 21 14:51:19 2008
@@ -23,6 +23,9 @@
 	border: 1px solid gray;
 	padding: 5px;
 	background:#eaf0f2;
+	float: left;
+	margin: 10px;
+	width: 100%;
 }
 
 #MagmaAdminSideMenu {



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