Author: michiel
Date: 2009-11-12 00:15:22 +0100 (Thu, 12 Nov 2009)
New Revision: 39654

Added:
   
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/inheritance.svg.jsp
   mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.jspx
   mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.svg.jsp
Log:
a few simple jsps to show the current object model

Added: 
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/inheritance.svg.jsp
===================================================================
--- 
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/inheritance.svg.jsp
                         (rev 0)
+++ 
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/inheritance.svg.jsp
 2009-11-11 23:15:22 UTC (rev 39654)
@@ -0,0 +1,50 @@
+<%@ taglib uri="http://www.mmbase.org/mmbase-taglib-2.0"; prefix="mm"
+%><%...@page import="org.mmbase.bridge.*,java.util.*"
+%><mm:escaper id="svg" type="graphviz">
+     <mm:param name="command">dot</mm:param>
+ </mm:escaper
+><mm:content type="image/svg+xml" postprocessor="svg">
+<mm:import externid="nodemanager" jspvar="nodemanager" />
+<mm:import id="baseurl" jspvar="url"><mm:url page="inheritance.svg.jsp" 
/></mm:import>
+<mm:cloud jspvar="cloud">
+
+Digraph MMBase {
+       edge [fontsize=2,labelfontsize=2];
+       node [fontsize=2];
+       nodesep=0.2;
+
+  <%
+      Set<String> set = new HashSet<String>();
+      if (nodemanager != null) {
+        set.add(nodemanager);
+        NodeManager nm = cloud.getNodeManager(nodemanager);
+        while(true) {
+        try {
+          NodeManager p  = nm.getParent();
+          out.println(p.getName()  + " [URL=\"" + url + "?nodemanager=" + 
p.getName() + "\"];");
+          out.println(nm.getName() + "->" + p.getName() + ";");
+          nm = p;
+        } catch (NotFoundException nfe) {
+          break;
+        }
+        }
+      }
+      int size = -1;
+      while (size < set.size()) {
+         size = set.size();
+         for (NodeManager nm : cloud.getNodeManagers()) {
+         try {
+            NodeManager parent = nm.getParent();
+            if (!set.contains(nm.getName()) && (set.contains(parent.getName()) 
|| nodemanager == null)) {
+               out.println(nm.getName()  + " [URL=\"" + url + "?nodemanager=" 
+ nm.getName() + "\"];");
+               out.println(nm.getName() + "->" + parent.getName() + ";");
+               set.add(nm.getName());
+            }
+         } catch(NotFoundException nfe) {
+         }
+        }
+     }
+  %>
+}
+  </mm:cloud>
+</mm:content>

Added: 
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.jspx
===================================================================
--- mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.jspx  
                        (rev 0)
+++ mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.jspx  
2009-11-11 23:15:22 UTC (rev 39654)
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<div
+    class="mm_c c_core b_model 
${requestScope['org.mmbase.componentClassName']}"
+    id="${requestScope['org.mmbase.componentId']}"
+    xmlns="http://www.w3.org/1999/xhtml";
+    xmlns:c="http://java.sun.com/jsp/jstl/core";
+    xmlns:fn="http://java.sun.com/jsp/jstl/functions";
+    xmlns:jsp="http://java.sun.com/JSP/Page";
+    xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0";>
+  <jsp:output omit-xml-declaration="true" />
+  <mm:import externid="nodemanager" />
+  <h2>Object model</h2>
+  <p>This page needs <a href="http://www.graphviz.org";>graphviz</a> on the 
server and <a 
href="http://en.wikipedia.org/wiki/Scalable_Vector_Graphics";>SVG</a> in the 
browser</p>
+
+  <h3>Possible relations</h3>
+  <mm:link page="/mmbase/components/core/model.svg.jsp" 
referids="nodemanager?">
+    <object data="${_}" type="image/svg+xml" width="100%" />
+  </mm:link>
+
+  <h3>Inheritance</h3>
+  <mm:link page="/mmbase/components/core/inheritance.svg.jsp" 
referids="nodemanager?">
+    <object data="${_}" type="image/svg+xml" width="100%" />
+  </mm:link>
+</div>

Added: 
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.svg.jsp
===================================================================
--- 
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.svg.jsp   
                            (rev 0)
+++ 
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.svg.jsp   
    2009-11-11 23:15:22 UTC (rev 39654)
@@ -0,0 +1,59 @@
+<%@ taglib uri="http://www.mmbase.org/mmbase-taglib-2.0"; prefix="mm"
+%><%...@page import="org.mmbase.bridge.*,java.util.*"
+%><mm:escaper id="svg" type="graphviz">
+     <mm:param name="command">dot</mm:param>
+ </mm:escaper
+><mm:content type="image/svg+xml" postprocessor="svg">
+<mm:import externid="nodemanager" jspvar="nodemanager" />
+<mm:import id="baseurl" jspvar="url"><mm:url page="model.svg.jsp" 
/></mm:import>
+<mm:cloud jspvar="cloud">
+
+Digraph MMBase {
+       edge [fontsize=2,labelfontsize=2];
+       node [fontsize=2];
+       nodesep=0.2;
+
+  <%
+      Set<String> set = new HashSet<String>();
+      if (nodemanager != null) {
+        set.add(nodemanager);
+      }
+      int size = -1;
+      while (size < set.size()) {
+         size = set.size();
+         for (RelationManager rm : cloud.getRelationManagers()) {
+            if (set.contains(rm.getSourceManager().getName()) || 
set.contains(rm.getDestinationManager().getName()) || nodemanager == null) {
+                set.add(rm.getSourceManager().getName());
+                set.add(rm.getDestinationManager().getName());
+            }
+         }
+      }
+      if (nodemanager != null) {
+         for (String nm : set) {
+            out.println(nm  + " [URL=\"" + url + "?nodemanager=" + nm + 
"\"];");
+         }
+      } else {
+         for (NodeManager nm : cloud.getNodeManagers()) {
+            out.println(nm.getName() + " [URL=\"" + url + "?nodemanager=" + 
nm.getName() + "\"];");
+        }
+      }
+  %>
+
+  splines=true;
+  edge [style=dashed];
+
+  <jsp:scriptlet>
+       for (RelationManager rm : cloud.getRelationManagers()) {
+     if (set.contains(rm.getSourceManager().getName()) || 
set.contains(rm.getDestinationManager().getName())) {
+            out.print(rm.getSourceManager().getName() + "->" + 
rm.getDestinationManager().getName());
+            String role = rm.getForwardRole();
+            if (! "related".equals(role)) {
+                out.print(" [label=" + role + "]");
+            }
+            out.println(";");
+     }
+       }
+  </jsp:scriptlet>
+}
+  </mm:cloud>
+</mm:content>

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to